<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">Am 30.07.2018 um 19:55 schrieb J.
      Gareth Moreton:<br>
    </div>
    <blockquote type="cite"
      cite="mid:1803.1532973353@web-cluster.fastnet.co.uk">
      <meta http-equiv="content-type" content="text/html; charset=utf-8">
      <div>
        <style> BODY { font-family:Arial, Helvetica, sans-serif;font-size:12px; }</style>Correct
        me if I'm mistaken, but I believe one shortcoming with the Free
        Pascal Compiler, despite its speed, is that it isn't
        multi-threaded.  It can't compile multiple independent units at
        once, and probably won't be able to for a while due to the use
        of global variables in the node builder.  When it comes to
        building Lazarus and the compiler, this is gotten around by the
        Makefiles running several instances of the compiler on different
        processes, building independent packages that can later be
        linked.</div>
      <div><br>
      </div>
      <div>I personally think that if the compiler can be made
        multi-threaded, then projects like OpenSceneGraph might see a
        huge improvement in compile times if the compiler is smart
        enough to identify units that don't depend on each other and
        compile them in parallel.  I'm not sure how cross-compatible it
        can be made, since different platforms approach multithreading
        in different ways and I've noticed that the compiler tends to
        avoid using SysUtils and Classes and the like (so no using
        TThread for now).<br>
      </div>
      <div><br>
      </div>
    </blockquote>
    TThread is not a necessity. It's functionality and the
    synchronization primitives are based on what TThreadManager
    provides. This manager resides in the System unit and is accessible
    through functions like BeginThread and such. Please note however
    that this might need an external thread manager on certain platforms
    (e.g. Unix-like systems) and the idea on those platforms is for the
    compiler *not* to rely on the C-library.<br>
    <br>
    Regards,<br>
    Sven<br>
  </body>
</html>