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 documented
- other 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