This release revives the multi-processing support introduced by A Portable Multiprocessor Interface for Standard ML of New Jersey, Morrisett + Tolmach 1992 31p which then quietly bitrotted for nearly twenty years. The new version is untested but cleaner, thanks in part to use of modern Posix Threads support, which was unavailable in 1992. The new version should properly handle hostthreads which do I/O and other blocking syscalls — something which the original version did not address.
This posix-threads support should allow some CPU-intensive tasks to speed up by a factor of two to four or so, but is mainly intended to support a clean implementation of threadkit ("CML") access to blocking I/O. (Also Gtk and similar libraries.)
The notion is to keep GUI response snappy by having slow tasks like socket I/O and matrix inversion done in sacrificial worker hostthreads, while the threadkit GUI code (and similar non-CPU-intensive application code) runs full speed in the main hostthread. (For more information see src/A.HOSTTHREAD-SUPPORT.OVERVIEW in the sourcetree.)