Preprocessor directive syntax changed

In version 1.3x, the preprocessor directives start with a (#) sharp character, to be compliant with standard preprocessors (like cpp). This caused too many conflicts with standard language comments that use the same character:
#include "myheader.4gl"
# This is a comment
In version 2.0x, the preprocessor directives start with an ampersand character (&):
&include "myheader.4gl"
FUNCTION debug( msg )
  DEFINE msg STRING
&ifdef DEBUG
  DISPLAY msg 
&endif
END FUNCTION

The preprocessor is now integrated in the compiler, to achieve faster compilation.

Important: To simplify the migration, the # sharp character is still supported when using the -p fglpp option of compiler. However, you should review your source code and use the & character instead; # sharp will be desupported in a future version.