Discussion:
Status of SML
(too old to reply)
David Rush
2013-07-22 15:23:10 UTC
Permalink
I am searching around for a reference on SML's module system, and I am dismayed to find an apalling level of bit-rot in the various SML web sites (e.g. http://www.standardml.org, http://smlnj.org/sml97.html, ...) over the last few years while I wasn't looking. There are a lot of dead links - including the MIT Press link to the language standard. In short, I can't seem to find any kind of reference material for the language beyond the standard basis library.

Is SML truly dead now? If it isn't, can someone point me to a good reference on the module system?

TIA
david rush
Paul Rubin
2013-07-22 18:21:55 UTC
Permalink
Post by David Rush
Is SML truly dead now? If it isn't, can someone point me to a good
reference on the module system?
I don't think it's dead. CMU uses it. Robert Harper has an online
draft of a new book:

http://www.cs.cmu.edu/~rwh/smlbook/book.pdf

The pdf says 2011 but his homepage says 2013.
Florian Weimer
2013-07-22 22:11:53 UTC
Permalink
Post by David Rush
Is SML truly dead now?
Well ...
Post by David Rush
If it isn't, can someone point me to a good reference on the module
system?
The Definition of Standard ML is still in print, it seems.

The official SML module system is somewhat impractical for
programming-in-the-large because it assumes a single, sequentially
ordered program text. (The order of top-level definitions matters,
everything can be redefined.) This means that you also have to
consult your implementation manual to find out how it works around
this particular madness (if it does at all).
David Rush
2013-07-23 08:07:41 UTC
Permalink
Post by Florian Weimer
(SML) If it isn't, can someone point me to a good reference on the module
system?
The Definition of Standard ML is still in print, it seems.
Interesting. Would that be on Amazon? The links to it on standardml.org (via MIT Press) are dead ends.
Post by Florian Weimer
The official SML module system is somewhat impractical for
programming-in-the-large because it assumes a single, sequentially
ordered program text. (The order of top-level definitions matters,
everything can be redefined.)
I recall that, although SML/NJ's CM seemed ameliorated those problems for me back in the day. Plus, I never defined anything except signatures, structures, and functors at top-level :)
Post by Florian Weimer
This means that you also have to consult your implementation manual to find
out how it works around this particular madness (if it does at all).
I don't recall having problems with SML/NJ and MLTON, and given MoscowML's partial compliance I always attributed any difficulties to the implementation rather than the standard.

But thank you for the observation, at this point I am interested in it primarily for the implicit syntactic reflection available through SML's functors. It's a point of research

- d
Florian Weimer
2013-07-23 19:34:13 UTC
Permalink
Post by David Rush
Post by Florian Weimer
(SML) If it isn't, can someone point me to a good reference on the module
system?
The Definition of Standard ML is still in print, it seems.
Interesting. Would that be on Amazon? The links to it on
standardml.org (via MIT Press) are dead ends.
This link should work:

<http://mitpress.mit.edu/books/definition-standard-ml>
Post by David Rush
Post by Florian Weimer
The official SML module system is somewhat impractical for
programming-in-the-large because it assumes a single, sequentially
ordered program text. (The order of top-level definitions matters,
everything can be redefined.)
I recall that, although SML/NJ's CM seemed ameliorated those
problems for me back in the day. Plus, I never defined anything
except signatures, structures, and functors at top-level :)
Even those can be overriden with different definitions of the same
kind. Some program styles actually favor this feature.
Post by David Rush
But thank you for the observation, at this point I am interested in
it primarily for the implicit syntactic reflection available through
SML's functors. It's a point of research
What is syntactic reflection?

Functors are statically typed, so I don't think there's anything going
on in that direction.
David Rush
2013-07-25 20:41:25 UTC
Permalink
Post by Florian Weimer
Post by David Rush
it primarily for the implicit syntactic reflection available through
SML's functors. It's a point of research
What is syntactic reflection?
I am using a bit of private jargon, I will confess. I do not mean a java-style reflective system that allows you to introspect on the running code, but I mean that you can give the same program text different meanings when implemented through a functor.

This is very power - akin to Lisp's EVAL, but more structured - yet it is not highly constrained by the notions that lie behind most object/class systems.

- david rush
Florian Weimer
2013-07-31 19:24:18 UTC
Permalink
Post by David Rush
Post by Florian Weimer
Post by David Rush
it primarily for the implicit syntactic reflection available through
SML's functors. It's a point of research
What is syntactic reflection?
I am using a bit of private jargon, I will confess. I do not mean a
java-style reflective system that allows you to introspect on the
running code, but I mean that you can give the same program text
different meanings when implemented through a functor.
Isn't this usually called parametric polymorphism?

The meaning doesn't really change, but with functions as values, you
can plug in different behavior. And with SML, you don't even need
functors for that, although sometimes they are more convenient (and
sometimes, they really are not).

Loading...