[comp.lang.misc] Standard ML: Status and Plans

nick%ed.cheops@its63b.ed.ac.uk (Nick Rothwell, Laboratory for Foundations of Computer Science,) (07/01/87)

		STANDARD ML: STATUS AND FUTURE PLANS
		~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This is a `circular' that I'm sending out in response to queries about the
status, and distribution, of Standard ML from Edinburgh. Anybody who wants
more specific information should mail me at the address below.

   For the past year or two we have been shipping copies of our Standard ML
system to interested parties. This is an interactive system which comprises
a program written in `C' (the interpreter) together with an image of the ML
compiler in a machine independent bytecode. This compiler supports the
Standard ML core language as well as the modules mechanism for program
separation and abstraction. Historically, this compiler was a `one-shot' effort
to get a transportable ML compiler running in the shortest time; it also served
as `guinea-pig' for the initial development of the modules facility for
supporting large scale program development. It has one or two known
shortcomings in the area of typechecking, mostly in the field of signature
matching, where our ideas about the semantics have only recently become clear.

   At the moment we are putting our effort into the final stages of the
development of a completely new Standard ML compiler. This compiler has been
developed over the last two years by Dave MacQueen at Bell Laboratories and
Andrew Appel at Princeton University. This compiler has been written from
scratch, and shares no code with previous implementations. In addition, it is
written in Standard ML itself, and has already successfully compiled itself.
It generates native code via a retargetable back end; code generators already
exists for the VAX and MC68020, and the modular structure of the compiler makes
targeting to new architectures straightforward.

   Researchers at Edinburgh are currently concentrating on performance aspects
of the compiler which, from our experience with the old compiler, we know to be
critical. In the last few months, experimentation with structure shared
typecheckers has yielded insights into the problems associated with fast
typechecking for large program structures (functors and signatures), and the
typechecker for the new compiler will of a totally novel design. In addition,
we are working on register allocation and code optimisation schemes which give
improved performance on non-stack orientated architectures (for example, RISC
machines). Other projects under way at Edinburgh include schemes to interface
ML to window managers, and a parser generating system which allows arbitrary
language fragments to be embedded in ML programs. This latter system will allow
a YACC-style parser generator to be implemented as a function from language
grammars to parsers, without the intermediate stage of generating source code
and compiling it.

   The target date for the first distributions of the new compiler is
September or October. In the meantime, we are still distributing our original
ML compiler, and will respond to comments and queries on the language or the
implementation, although we are reluctant to perform major bug fixes on the old
compiler unless a bug is serious and there is no reasonable work-round.

   If you wish to be kept informed of developments, send e-mail to the address
below.
-- 
Nick Rothwell,   Laboratory for Foundations of Computer Science,
                 University of Edinburgh.
                 ARPA:    nick%{cstvax,itspna}.ed.ac.uk@cs.ucl.ac.uk
                 JANET:   nick@uk.ac.ed.{cstvax,itspna}
                 UUCP:    <Atlantic Ocean>!mcvax!ukc!{cstvax,itspna}!nick
~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~
"Nothing's forgotten. Nothing is ever forgotten."   (Herne)