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.