SML/NJ 110.73 NEWS

Standard ML of New Jersey
Version 110.73 NEWS
May 16, 2011

SML/NJ HOME:
  `http://www.smlnj.org/index.html`
FILES:
  `http://smlnj.cs.uchicago.edu/dist/working/110.73/`

### Summary:

SML/NJ 110.73 provides a number of new library features, including a new library for working with HTML 4, as well as many bug fixes.

### Details:

CM:
  - Added boolean literals (true and false) to the conditional-expression syntax in CM. Thus, you can write

    > #if true structure Foo #endif

    in a CM file. This change is meant to make it easier to use autoconf to configure the build process of an SML application.
ML-Yacc:
  - Fixed ml-yacc examples to respect the changed signatures with respect to TextIO.inputLine.

SML/NJ Library:
  - Added findExe function to PathUtil module.
  - Modified the implementation of GetOpt.usageInfo so that if the help string has embedded newlines, then the extra lines are properly indented.
  - Changed the interface of JSONStreamParser to support both parsing files and TextIO.instreams.
  - Added HTML4 library.
  - Fixed bug in hashed cons library (bug #55).
  - Added array iterators to DynamicArray module.
Concurrent ML:
  - The paths used to specify the CML versions of libraries in a CM file have been rationalized (bug #68)

    > $cml/basis.cm -- the CML version of $/basis.cm $cml/cml.cm -- core CML features $cml/cml-lib.cm -- CML library code $cml/trace-cml.cm -- TraceCML library for debugging $cml/smlnj-lib.cm -- CML version of the $/smlnj-lib.cm library $cml/inet-lib.cm -- CML version of the $/inet-lib.cm library $cml/unix-lib.cm -- CML version of the $/unix-lib.cm library

    Note that the old naming scheme is still supported, but may be removed in some future version.
  - Added Barriers module to CML.
  - Fixed the Win32 socket and polling implementation to work correctly with CML. Signature of poll was wrong and didn't handle sockets at all.
MLRISC:
  - Added support for the RTDSC and RTDSCP instructions to the amd64 code generator.

Bugs:

  Here is a list of tracked bugs fixed by this release, please see the bug tracker for more details.

  38 | CM bug in calling ML-Lex/Yacc in Windows
  39 | SML/NJ doesn't build on NetBSD out of the box
  49 | Slight syntactic difference between ml-lex and ml-ulex in backward compatibility mode
  50 | CM can't invoke ml-yacc or ml-lex on Windows
  55 | HashCons equality test doesn't work because tags aren't incremented
  56 | CM still can't invoke ml-yacc on Windows
  59 | Non-blocking socket functions broken
  61 | Problem with quoting, CM, and Windows
  63 | Comments not lexed correctly in mlyacc grammar files
  67 | Installation fails on mac OSX (10.7, Lion)
  68 | CM anchors for CML need rationalization
  69 | String.scan function missing from basis library
  70 | confusing error message when trying to install on 64-bit Linux without 32-bit support

  The following unnumbered bugs were also fixed:

  - Changed the Win32 implementation of validArc to support directories with extended characters (umlauts, etc.).
  - Fixed Real.toString and Real.fmt to include sign for negative zero.
  - Fixed the bug with Win32 calls to OS.Process.system not quoting the string.