<!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>