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)