[MLton] mlnlffigen is awesome (was: bootstrap problem)

Vesa Karvonen vesa.karvonen@cs.helsinki.fi
Thu, 18 Aug 2005 22:20:15 +0300


Quoting Matthew Fluet <fluet@cs.cornell.edu>:
[...]
> Alternatively, we could provide a -mlb-path-map <file> flag to the
> compiler (which would augment (and take precedence over)
> /usr/lib/mlton/mlb-path-map and .mlton/mlb-path-map), in which case
> someone could distribute their specialized path map along with their code,
> and simply use the Makefile to ensure compatibility.

I think that this would make sense. It would probably make it
reasonably convenient to have multiple builds (e.g. debug,
release (with assertions, logging, etc... selectively turned
off)).

-Vesa Karvonen

P.S. I know some may have objections to turning debugging
features off in release builds. I personally sometimes use lots
of (expensive) assertions and I would prefer to be able to turn
them off without having to modify the source code. The assertions
serve as contracts (as in Design by Contract) and can be valuable
when code is read, modified and debugged, but the performance
penalty may be untolerable. Of course, it is better to enforce
contracts using the type system, when it is possible and not too
difficult nor too verbose.