While I am building our own compiler for DocInsight 3, I realized that the compiler directive $IF is really evil (compared to its occasional power). The usage of Declared/SizeOf/etc in the condition expression makes three stages lexing/parsing/compilation gone. It also seems impossible to benefit from parallel in multi-core machines. Typically, if you use $If Declared/SizeOf in type declaration, the Delphi IDE (or third-party utils) may not handle it properly as the IDE only parses a single unit to get its structure.

Comments