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