S M L / N J 1 1 0 . 4 7 N E W S August 4, 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.47/ Summary: The most important and noticable changes in 110.47 concern preliminary implementations of the NLFFI foreign-function interface under Mac OS X (PowerPC) and Win32 (x86). There are also a number of important bug fixes. -------------------------------------------------------------------------- Details: NLFFI: ------ - preliminary support for Mac OS X added - preliminary support for Win32 added (untested; currently can only interface with C functions using the stdcall calling conventions) - function arguments that are C unions are now handled - various minor bug fixes to ml-nlffigen - preliminary documentation for nlffi and ml-nlffigen (currently only describes the output of ml-nlffigen; see src/ml-nlffi-lib/Doc/manual/nlffi.tex) Compilation Manager: -------------------- - made "make" commend in CM's "make" tool configurable - added option (default: on) for passing the name of the SML/NJ's "bin" directory to "make"; This can be used by the Makefile to, e.g., pick the "right" version of ml-nlffigen. Basis: ------ - Changed the implementation of structure Unix so that the same stream is returned every time one of the {text,bin}{In,Out}streamOf functions is invoked on the same proc. (NOTE: This is not what the spec says, so it will probably change again. Don't rely on it!) Windows port: ------------- - bug fixes: * NULL test in gmtime and localtime * toSeconds -> toMilliseconds in win32-process.sml (Basis implementation) Installer: ---------- - eliminated some shell syntax not understood by /bin/sh under Solaris Compiler internals: ------------------- - low-level support for choosing C calling conventions by twiddling the type of of the rawccall primop (see src/compiler/Semant/types/cproto.sml for details) - use paramAlloc to report c-calls with too many arguments (for PPC version where parameter area is pre-allocated) - added ccall_maxargspace to machspec (to implement the above) MLRISC: ------- - redesigned c-calls interface - c-calls implementation for ppc-macosx added - Added these instructions to the PowerPC architecture: LWARX, STWCX, LBZU(X), LHZU(X), LWZU(X), STWU(X), STFDU, STFSU, etc. (Instruction encodings not added yet, though.) - loop-structure.sml has been rewritten