			S  M  L   /   N  J

                  1  1  0  .  3  4      N  E  W  S
			
  		           June 10, 2001

			      WARNING

  	This version is intended for compiler hackers. The 
	version ought to be stable, however we have not run
	our full regression testing.

        http://cm.bell-labs.com/cm/cs/what/smlnj/index.html


Summary:

  A long-standing signal-handling bug has been fixed.

  As a result, CML finally works again, and so does eXene.

  NLFFI has been further revised and improved.  It now supports
  the Sparc architecture in addition to x86/Linux.

  There are various bugfixes and some organizational changes.

		--------------------------------

NLFFI:

  * The types in the public interface to the "C" module have been
    simplified: the annoying 'f type parameter has been dropped in
    most places.  This requires some cheating under the hood, but
    fortunately the cheat is a provably safe cheat.

  * Various bugs in ml-nlffigen have been fixed so that it should be
    more robust now.

  * C functions and function types that use variable-length argument
    lists are no longer rejected.  Instead, ml-nlffigen will produce
    ML code that lets you call the function with just its mandatory
    arguments.  This means that ml-nlffigen will not bail out just
    because there is one odd occurence of a varargs function somewhere
    in one big .h-file.

  * Default names for files are now derived from the C files's basename
    so that ml-nlffigen will always place them in the current directory.

  * Default names for generated ML identifiers are also derived from
    the C file's basename.

  * Sparc architecture supported now.

  * Support for x86/win32 mostly in place.  (All missing pieces are
    in the runtime system.)

CM:

  * CM can now generate "index files" which are human-readable
    files that list on a per-.cm-file basis each toplevel symbol
    defined or imported.
  * some internal improvements in the tools subsystem
  * "lambdasplit" parameter for class "sml" to control the cross-module
    inliner
  * documentation updates
  * bug fixes

runtime:

  * A serious signal handling problem that affected CML has been fixed.
  * Support for dlopen/dlsym on Sparc/Solaris added.

CML:

  * Compiles under the new CM.
  * Libraries and anchors for version 110.34 and later are organized
    as follows:

      $cml/cml.cm            Main CML library.
      $cml/basis.cm          CML's version of $/basis.cm.
      $cml/cml-internal.cm   Internal helper library.
      $cml/core-cml.cm       Internal helper library.
      $cml-lib/trace-cml.cm  Tracing facility.
      $cml-lib/smlnj-lib.cm  CML's version of $/smlnj-lib.cm

eXene:

  * Compiles under the new CM.
  * The library's name for version 110.34 is $/eXene.cm.

scripts:

  * The config/install.sh script has been updated to support the installation
    of CML and eXene under the New World Order (aka new CM).

compiler:

  * bug fixes
  * cross-module inliner now in the compilation pipeline by default
    (By default it is still turned off. But it can be enabled either
     globally or selectively by using CM's new "lambdasplit" parameter.)

MLRISC:

  * Sparc implementation of c-calls API.  (This is used by NLFFI.)
    (Caveat: Register assignments in the Sparc backend of SML/NJ
     still need to be redone.  In particular, the ASM temp register
     must not be %o2.  It is unlikely but not impossible that the
     current situation leads to certain subtle code-generation bugs.)
  * Support for "stdcall" calling convention in x86 version of c-calls.

CKIT:

  * structure Error exported from ckit-lib.cm
