Major New Features
- Addition of IDE interface support.
- Changes to pretty-printing and equality. These are now inherited
across module boundaries. Addition of PolyML.addPrettyPrinter
to install a new-style pretty printer.
- Reworked implementation of signatures reducing the memory
requirements when a named signature is used in multiple places.
- Improvements to printing of types and error messages.
Minor Additions and Changes
- Support for out-of-tree builds
- Added finalisation for foreign-function interface (CInterface)
- Removed remaining support for ML90
- Added PolyML.sourceLocation pseudo-function that returns the current
source location, PolyML.raiseWithLocation that raises an exception
with an explicit location and PolyML.exceptionLocation that returns
the location where an exception was raised.
- Added PolyML.Compiler.reportUnreferencedIds switch to enable reporting
of unreferenced identifiers.
- Added breakEx and clearEx to debugger functions.
These enter the debugger when the code raises a given exception.
- Improvement to resonsiveness to pipes especially in Windows.
- Added X86-64 version of Word32 structure. 64-bit machines
do not require 32-bit values to be "boxed".
Bug Fixes
- Now builds on Mac OS X 10.6 (Snow Leopard)
- Fix multi-threading on Sparc but now only supports v9 processors.
- Fix timing-related crash when Poly/ML exits
- Fix string argument to OS.SysErr exception
- Fix to OS.FileSys.mkDir in Windows
- Fix to pow(~1, n) where n is even
- Various fixes to conform more closely to the standard.