[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: pkgsrc/lang/polyml
Module Name: pkgsrc
Committed By: asau
Date: Mon Oct 8 14:26:03 UTC 2012
Update to Poly/ML 5.5
Changes in Poly/ML Version 5.5
Major New Features
Storage management rewrite. The storage management system
has been almost completely rewritten. The garbage collector
is parallelised and a new mechanism has been introduced to
adjust the size of the heap. When space is very short an
extra pass may be triggered that merges immutable cells with
the same contents. Thanks to Tobias Nipkow and the Technical
University of Munich for support for this work.
PolyML.shareCommonData has been parallelised and now uses a
dynamic stack to avoid a possible segfault if the C stack
overflows with deep data structures.
There is now support for 64-bit on Windows using either
mingw or Visual Studio.
Added a PolyML.Statistics structure to extract information
about the current ML program or that running in another
The standard "text" and "data" areas are now used for
exported object files. In particular this removes the need
for --segprot when linking the object files on Mac OS X with
libffi is now used for foreign function interface
(CInterface). Among other things this allows the full range
of types to be use on X86/64. A version of libffi is
included in the source but those packaging Poly/ML may
prefer to use the --with-system-libffi option to the
configure script to use the version installed on the
Withdrawn support for native-code on PPC and Sparc. The
configure script will now fall back to the interpreted
version on these platforms.
Minor Additions and Changes
Added G, M, K suffix to RTS arguments for --maxheap and --minheap.
Some changes to where "op" is allowed to conform more
closely to the Definition.
--debug and --logfile options. These allow fine control of
debugging information within the run-time system.
Added --error-exit option to terminate the top-level loop if
any command raises an exception.
Added PolyML.IntInf with gcd and lcm functions to use GMP's
gcd function if available.
Added PolyML.Compiler.allocationProfiling to work with
PolyML.profiling 4. This causes each full GC to print a
profile indicating where the currently live data has been
Removed NetDB structure from the library since this was in
an early draft of the basis library but not in the final book.
Added PolyML.Codetree structure within PolyML. This allows
ML code to build intermediate code data structures and
generate machine code from them.
Added "--use FILENAME" command line argument to run a command
from a file before starting the main Read-Eval-Print loop.
Fixes related to Word32 on X86-64 and Word.~>>.
Vol allocation locking issue
Floating point box issue
Fix some functions in the Windows structure to match the
Basis Library definition
Fix a possible crash if a GC happened while another thread
was in foreign code.
Fix error in printer function for a datatype where the
effect of PolyML.print_depth depended on the posiition
of a constructor in the datatype.
Fix bug with flexible record handling.
Fix Real.fmt and Real.toString to conform to the Basis
Fix Real.abs with nan argument.
Fix IEEEReal.toString for nan argument.
Fix code-generator bug which resulted in incorrect result
Fix bug the produced Subscript exceptions in stream IO.
To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 pkgsrc/lang/polyml/Makefile
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Main Index |
Thread Index |