"InternalError: equality - Overloadset
found raised while compiling"
This message was produced when compiling certain combinations of overloaded functions and
equality.
Failed to compile properly on RedHat 6.2 and
other recent versions of Linux
The SRPM version of the 4.0 beta release would compile on RedHat 6.2, provided a few
changes were made to the sources but the resulting binary crashed.
StringCvt.padLeft and padRight crashed when
applied to single character strings
These functions caused a page fault when applied to strings containing a single character.
Introduced the POLYPATH environment variable to allow
databases to be found using a path.
When searching for a database, whether given on the command line or to find the parent of
a child database, poly searches using the path given in the POLYPATH environment variable.
On most platforms it defaults to ".:/usr/lib/poly:./usr/local/lib/poly"
meaning that when searching for a database called "dbase" it will first look in
the current directory and if that fails look for /usr/lib/poly/dbase and finally
/usr/local/lib/poly/dbase before giving up. Setting the POLYPATH to an explicit path
allows the user to specify where databases are to be found.
As a result of this change poly now defaults to searching for a database called ML_dbase in the path if no database is given on the command line. The restriction that a child database can only be created if the parent path name is fully specified has been removed.
Removed discgarb and changeParent.
The discgarb and changeParent programs have been removed and the functionality
incorporated into the poly program. New options have been added to poly. The
'-d' option compacts a database in the manner of discgarb. An additional option '-c'
can be used to run the common-expression elimination
phase. The '-p' option changes the parent of a database as with changeParent.
The old behaviour can be retained by creating links to the poly binary called discgarb and
changeParent and invoking the binary through these names.
Changed TextIO.stdOut to use line buffering.
In Beta 4.0 this was unbuffered.
Added interruptConsoleProcesses to the Process structure.
Process.interruptConsoleProcesses() causes all console process to be sent the
SML90.Interrupt exception. Usually there will only be one console process, the
top-level loop which runs the compiler and executes the code.
Features and changes in this release.
The revised definition of Standard ML (ML97) introduced a number of changes. Poly/ML now implements this version of the language. Some of the old (ML90) features are available by setting PolyML.Compiler.ml90 to true. The major changes include value polymorphism, which removes the need for imperative type variables and changes to the way structure sharing is handled. Type abbreviations in signatures and datatype replication are also included.
The Standard Basis Library is a suite of modules which provides a standard set of functions for many purposes as well as access to many operating system facilities.
Linux: supports larger database size.
Values are printed in alphabetical order.
Various code-generator changes and fixes.
Windows: the console is replaced by a Windows-style console.
Signal structure allows signals to be handled or blocked.
Last updated: 10 October 2000 by David Matthews.