SML/NJ 110.39 NEWS

    			S  M  L   /   N  J

                      1  1  0  .  3  9      N  E  W  S

      		         February 15, 2002

    			      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:
  Important bug fixes, improvements to libraries, FFI generator, and installer.

### Details:

#### MLRISC:

- Important bug fixes. (Isabelle now compiles again on the x86.)
- Compilers that generate assembly code may produce global labels whose value is resolved at link time. The various peephole optimization modules did not take this in account.
  TODO: The Labels.addrOf function should really return an option type so that clients are forced to deal with this issue, rather than an exception being raised.
- Some internal reorganization.
- c-calls API changed: accept a client-callback for allocating extra stack space. TODO: x86 version currently ignores it.
- Fixed bug in sparc-ccalls.

#### Basis:

- Added missing implementations for List.collate and Option.app.

#### SML/NJ library:

- Added priority queue implementation to smlnj-lib.cm.

#### FFI:

Various improvements to ml-nlffigen:

- improved name encoding scheme that avoids most "global" gensym counters
- don't write over files unless their contents would change
- implemented a "repository" mechanism for dealing with "incomplete pointers" that are to be shared between different runs of ml-nlffigen
- "-match" option requires an exact match now
- improved internal datastructures, resulting in slight speedup
- bug fixes

#### Compiler/CM:

- A new PID (persistent ID) generation scheme is place. This fixes the long-standing (but little-known) problem that it was possible to defeat ML's type abstractions because types in different compilation units could be mistaken for one another.
  See the HISTORY file and click here for more information.

#### Installer:

- Installation instructions added (file INSTALL).
- Syntax in config/targets changed.
- Installer automatically satisfies inter-target dependencies.
- Build hash-cons-lib.cm if smlnj-lib was selected.
- Installer can run in "quiet" mode.
- Bug fixes.

#### REPL:

- Added functions CM.State.showBindings and EnvRef.listBoundSymbols for exploring available toplevel bindings.

#### Misc:

- GenSML.gen now makes generation of topl-level "local" optional (because it is not Standard ML).
- bug fixes in "nowhere" tool