Extensions

A strictly compliant compiler must behave exactly as specified in this document and in Andrew Appel’s book, and as demonstrated by the samples exhibited in this document.

Nevertheless, you are entirely free to extend your compiler as you wish, as long as this extension is enabled by a non standard option.

Examples of extensions

ANSI Colors

Do not do that by default, in particular without checking if the output isatty, as the correction program will not appreciate.

Language Extensions

If for instance you intend to support loop-expression, the construct must be rejected as a syntax error if the corresponding option was not specified.

In any case, if you don’t implement an extension that was suggested (such as --hir-use-ix), then you must not accept the option. If the compiler accepts an option, then the effect of this option will be checked. For instance, if your compiler accepts --hir-use-ix but does not implement it, then be sure to get 0 on these tests.