<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hi,<br>
    <br>
    I'm really looking forward to seeing modules support, this is
    something that I've been thinking about for a while now, and I think
    it really makes a lot of sense.<br>
    <br>
    (When you see some big projects getting significant speedups from
    'unity' header compilation setups, and programmers then being unable
    to use stuff like static functions and anonymous namespaces that
    really seems like a big step backward!)<br>
    <br>
    Just to add my 2 centimes, though:<br>
    <br>
      * I think that 'import' is misleading. (Since functionality is
    actually more similar to existing include mechanism, no namespace
    added, everything imported including macros, and so on. Main
    difference being really that current compilation state is not passed
    to the include.) Sticking with 'include', and no code changes, seems
    fine to me!<br>
    <br>
     * Watch out for proposed syntax changes distracting from the real
    story here. (See, for example the discussion at<a rel="nofollow"
      href="http://llvm.org/devmtg/2012-11/Gregor-Modules.pdf">
      http://forum.dlang.org/thread/k87qtm$2eu1$1@digitalmars.com</a>.)<br>
    <br>
     * I see the real story here as being essentially in two parts:<br>
      - Compiler and linker optimisation: i.e. for code set up a certain
    way it is possible to get very significant build speedups<br>
      - Code quality improvements: I think that it is actually good
    coding style to setup headers in this way, and it will be cool to
    have some way to enforce this<br>
    <br>
    I actually then want to use this kind of mechanism for pretty much
    _every_ header in our source tree.<br>
    <br>
    In terms of setup, in the ideal case, all I would need to do would
    be to stick something like '#pragma is_independent_header' or
    '#pragma is_modular_header' at the top of each header.<br>
    The idea being that I basically want to declare, when I write the
    header, that this header is designed not to depend on any previous
    compilation state, and that any changes to the way the header
    compiles based on previous compilation state are undesirable.<br>
    <br>
    Best regards,<br>
    <br>
    Thomas<br>
    <br>
  </body>
</html>