<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
    <title></title>
  </head>

  <body>
    <p style="margin: 0px;"><span> </span></p>

    <p style="margin: 0px;"> </p>

    <div style="margin: 5px 0px 5px 0px;">
      Joerg Schuelke <joerg.schuelke@gmx.de> hat am 13. Mai 2011 um 02:07 geschrieben:<br/>
      <br/>
      > The thoughts about further improvement of the macro capabilities of the<br/>
      > compiler are now so far along that I can post this paper. But it is not<br/>
      > that short, about three pages.<br/>
      ><br/>
      > Why doing it? There are IDE Macros.<br/>
      >         People do not use all the same IDE, some do not use any. The<br/>
      >         IDE changes much quicker then a language. A strong separation<br/>
      >         between language and IDE is needed.<br/>
      ><br/>
      > Macros are ugly.<br/>
      >         Yes, thats true, but nevertheless they are useful in some<br/>
      >         contexts. Debugging macros from the C world are only one<br/>
      >         example. Repeated code pieces another.<br/>
      ><br/>
      > Macros slow down the compiling process. The expansion is ineffective.<br/>
      >         Thats true only if every identifier has to be checked out for<br/>
      >         possible macro expansion. Hashing the macro identifiers would<br/>
      >         help too.
    </div>

    <p style="margin: 0px;"> </p>
    Compiler errors in macros are often confusing/misleading, because the user does not see the expanded code. Same for debugger positions and handling.<br/>
    <br/>

    <p style="margin: 0px;">Macros can confuse other parsers. For example the fcl parser or the ones in IDEs. Especially imported macros from other units and conditional macros are not supported.</p>
      

    <p style="margin: 0px;">Code editing functions in IDEs are mislead by macros especially conditional macros. </p>
    <br/>

    <div style="margin: 5px 0px 5px 0px;">
      ><br/>
      > Thats Delphi inkompatible.<br/>
      >         A separate preprocessor run would solve the problem.
    </div>

    <p style="margin: 0px;"> </p>

    <p style="margin: 0px;">Mattias</p>

    <p style="margin: 0px;"> </p>
    <br/>
  </body>
</html>