next up previous
Next: About this document Up: Appendix Previous: An implementation note on

GNU make and preprocessor

We changed the build environment to support ``.Java'' files, which are preprocessed by the cpp preprocessor into ``.java'' files.

This might be a controversial undertaking; C and C++ have often been criticized for encouraging programmers to make overly liberal use of the preprocessor, which can decrease the readability of code. We believe that the preprocessor should be used sparingly, in the spirit of Java.

We use it to avoid having to hardcode package and import names, for assertions (since the compiler will not eliminate function calls if debug is disabled), and for conversion macros (such as extracting an integer value from an array of bytes) since the Java compiler does not inline these functions.



Jay Lepreau
Tue Jun 2 05:48:49 MDT 1998