S M L / N J 1 1 0 . 4 4 N E W S November 6, 2003 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: htpt://smlnj.cs.uchicago.edu/dist/working/110.44/ Summary: Again, there are a number of important bug fixes and updates, mostly to the Basis library and the installer. -------------------------------------------------------------------------- Details: ======== Basis: ------ - fixed bugs and improved code for Real.{from,to}LargeInt - fixed bug in Posix.ProcEnv.times - changed inputLine functions to return an option - implemented native int32->real64 conversion - slices implemented according to spec - Time.{from,to}NanoSeconds added to Time - made SOCKET API match the spec - OS-specific details of socket implementation moved into separate files (this makes it possible to share the bulk of the code between Unix and Win32) - added signature SYNCHRONOUS_SOCKET to Basis - precision of real64 is 53 (not 52) - added openVector, nullRd, and nullWr to PRIM_IO Installer: ---------- - new installer (which is mostly written in SML) is no longer optional (old installer has been removed) - the ML code of the installer is now in its own library and gets compiled by CMB.make; the installer script simply invokes sml -m $smlnj/installer.cm (the ML code does not have to be compiled as part of the installation process) - minor improvements and bugfixes - sense environment variable CM_DIR_ARC that lets one override the default name for CM meta-data (default is .cm -- see CM section) - sense value of INSTALLDIR environment variable and behave accordingly - "dont_move_libraries" directive eliminated from config/targets (This was a legacy mechanism which turned out to be broken anyway.) Scripts: -------- - changed default @SMLalloc parameter for x86/celeron to 64k - made .bat-files Win95-compatible CM: --- - default name of meta-data directory changed from CM to .cm - a different name can be chosen at installation time - added missing wrapper for privilege "primitive" in $smlnj/viscomp/core.cm CML: ---- - tracked Basis changes (non-blocking Socket functions are left out since they are redundant: CML_SOCKET is defined in terms of SYNCHRONOUS_SOCKET) - make use of non-blocking socket functions from Basis; CML socket implementation is now OS-independent Interactive loop: ----------------- - added hook to prettyprinter so it can invoke the autoloader if a qid to be printed is not currently bound in the toplevel environment; this eliminates many instances where the prettyprinter used to print "?" in front of a name MLRISC: ------- - minor bug fixes runtime: -------- - works with Mac OS X 10.3 (Panther)