SML/NJ 0.93 for Linux 2.0 ELF

What is this?

It's a hacked version of SML/NJ 0.93 to run on x86 Linux 2.0 ELF systems.

... I see, should I be using this?

That depends. SML/NJ 110 fully supports the latest versions of Linux and is more up to date. If you are learning how to use SML, or want to develop a piece of new software then you should use this. In short, probably not.

So, Why did you bother then?

Here at the LFCS we have lots of spangly new Linux boxes and while SML/NJ 110 (and Harlequin's MLWorks) are very nifty, we still have a lot of software that works on SML/NJ 0.93 (that we can't be bothered to port). The only Linux version of SML/NJ until now was statically linked with an old version of libc, and thus had old syscalls, as well as using aout. If that means nothing to you, then this might: it is old and quite liable to break soon. We wanted better support for more up to date versions of Linux.

Aha! How did you do that then?

Peter Sestoft (sestoft@dina.kvl.dk) provided support for early versions of Linux (0.99.1). This support and the Solaris ELF support by Emden R. Gansner (erg@research.att.com) was used to create a patch for Linux 2.0 and ELF.

I started with Sanford Barr's patches (which were based on Mark Leone and Hermano Moura's 0.91 port to Linux) and then applied Peter Sestoft's patches. I then did what was necessary to get this patched version to work under Linux, including adding ELF support and some sytem calls.

A bit of testing later and the patches were integrated with the current 0.93 source tree, to provide a clean patch. All of this was then neatly packaged up in an SRPM (and hence RPMs). You should be able to install these on any modern Linux machine.

This support is intended for i386 systems only (though it should be easy to support, e.g. SPARC Linux machines with small amounts of hackery). Redhat 4.2, 5.1 and 5.2 systems were used for testing. This covers kernel 2.0.34-2.0.36, with libc version 5.3.12 (on 4.2) and glibc 2.0.7 on (5.1, 5.2). gcc 2.7.2.1 was used on RedHat 4.2 and 2.7.2.3 on RedHat 5.1/5.2.

What do I need to do to get it?

You have several options.

Patch

Can be found here,

RPMs

For RedHat 5.2 are available here.

SRPMs

Are available here.

Binaries

Gzipped binaries for RedHat 5.2 are available here.


Stuart Croy
Last modified: Mon Jul 12 13:03:04 BST 1999