we should not be incestuous
Henry Cejtin
henry@sourcelight.com
Mon, 18 Jun 2001 19:21:59 -0500
In some senses, the fact that the compiler accepts things in the basis
library makes the basis library part of the language. I completely agree
with your suck-#1 (too much flexibility in the basis library spec means
portable code is impossible to write), but that isn't the same thing as the
compiler referring to MLton.???. I don't see any solution to this suck-#1,
but for suck-#2, I would think that the right thing to do is to have a
signature for implementation dependent things, and a structure which
implements it for each compiler. Note, the signature is invariant. The main
point is that the source for this structure should ALWAYS be viewed as part
of the source. Currently it is essentially omitted in the MLton case. That
is, I think, bad.
You are right that the CM file support is another extension. Recall that I
argued instead for a way of specifying files specific to MLton and having
another program to turn them into CM files. (This because I don't like CM
file format.)
The advantage of putting stuff in CM files is that it is clearly NOT part of
standard ML. I agree, that this may not be huge, but I think that the
advantage of making it clear what non-standard stuff must be provided is VERY
huge.
The MLton.random thing still confuses me: why should this be part of MLton.
You can just write it using the basis library.
Any way, that is my take on it.