[Oberon] Conditional compilation using IF const THEN
Andreas Pirklbauer
andreas_pirklbauer at yahoo.com
Sun Aug 12 16:16:40 CEST 2018
> I know the *system* is not the same, but at least your compiled code is.
> The overhead of the empty call and return is pretty low, at least in
> a non-cached system. :)
As a further refinement, one could reduce the “overhead" down
to a single function call in the IF itself:
IF Out.Debug() THEN … debug code … END
instead of
IF debug THEN … debug code … END
Of course, the debug code is still sitting there, as are the strings
used by it, but it is never executed if Out.Debug() returns FALSE;
which one can achieve by replacing the (dynamically-loaded)
Out module with a stub version in production..
The purist will of course not be satisfied with all these
shenanigans discussed here.
Apart from compiler directives (which one can have different
opinions about - see Tony Hoare’s comment), I don’t know
of any truly satisfactory and/or “clean” solution to this.
More information about the Oberon
mailing list