                             S  M  L   /   N  J

                       1  1  0  .  5  8      N  E  W  S

                                 March 3, 2006

                                    WARNING

            This working version is believed to be stable, but
            we have not run our full regression-test suite.

HOME:
  http://www.smlnj.org/index.html
FILES:
  http://smlnj.cs.uchicago.edu/dist/working/110.58/

## Summary:

Support for Intel Macs and x86-64 under Linux, a brand-new replacement for ml-lex, and other minor improvements as well as bugfixes.

## Details:

Lexer generator:
  - A new, much improved lexer generator tool has been developed by Aaron Turon and John Reppy. The new tool, called `lexgen`, can be used as a drop-in replacement for `ml-lex`.
  - The compilation manager is able to have lex specification files processed by either `lexgen` or the original `ml-lex`. For the time being, the latter is the default.
  - To change this aspect of CM's behavior, invoke `sml` (and related commands such as `ml-build`) using the `-Ccm.use-legacy-lex=false` command line switch. Alternatively, one can define an environment variable `CM_USE_LEGACY_LEX` and set it to `false`.
  - Binaries (bootfiles) shipped with this version have been compiled using `lexgen`.
Newly supported platforms:
  - SML/NJ builds and runs on Intel-based Macs running Mac OS X.
  - SML/NJ builds and runs on x86-64 systems using 32-bit mode.
  - SML/NJ should build and run on NetBSD 3.x (untested).
Platforms no longer supported:
  - Support for pre-2.2 Linux kernels has been dropped.
Runtime system:
  - Signal handling on x86/Linux has been cleaned up.
MLRISC:
  - Scripts for rebuilding MLRISC-generated files have been updated to reflect changes to CM.
Backend:
  - Darwin-specific Intel ABI (for foreign-function interface) implemented. The solution is temporary since it currently relies on the fact that the compiler itself does not use the FFI.
Compilation manager:
  - Improved CM-specific error reporting and handling.
Installation:
  - Enabling `$/html-lib.cm` in config/preloads now works.
CML:
  - `withNack` wrapped around a `never` event will now properly signal the negative acknowledgement.