S M L / N J 1 1 0 . 5 0 N E W S October 28, 2004 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.50/ Summary: This release fixes important bugs and provides some additional functionality. -------------------------------------------------------------------------- Details: Basis: ------ - Added specialized implementation of Int31.fromString. MLRISC: ------- - Fixed bugs in x86/c-calls related to passing structs as arguments or results. - Fixed bug in x86 assembly syntax (FU?COMIP?). Libraries: ---------- - Minor enhancements to interfaces exported from the "controls" library. - Added libraries $smlnj-tdp/plugins.cm, $smlnj-tdp/back-trace.cm, and $smlnj-tdp/coverage.cm. This moves back-trace support out of the main compiler and into a library of trace/debug/profile plugins. The test-coverage plugin is new. Command-line: ------------- - Added flags "-e" and "-E" which print the names of environment variables that can be used to control internal settings. - Added support for tracing, debugging, and profiling (using stuff from $smlnj-tdp/plugins.cm) for stand-alone programs. (Stand-alone programs are those constructed using ml-build.) Runtime: -------- - Applied patch for setting rounding modes under Mac OS X. Compiler: --------- - PPC backend now silent (by default) even when it uses the "long form of branch". - Made the former backtrace-instrumentation pass more generic. - Some internal cleanup (consolidation of duplicated functionality). Compilation Manager: -------------------- - Direct support for lazy sml (keyword "lazy") via new toolclass "lazysml" and filename suffix ".lml". - Support for selectively setting arbitrary control flags on a per-sourcefile basis. - Fixed handling of CM keywords, thereby eliminating a bug with the shell tool. - CM now issues an "obsolete feature" warning when group files use the old "owner" syntax. Bootstrap compiler: ------------------- - Adde a "version tool" and some CM magic to have the file version.sml be auto-generated during CMB.make. - Moved version.sml (and above-mentioned magic) into its own library.