1.3.1/S5 (2008/04/28) Merged changes from 1.3.1, plus: Interpreter: - Implemented RFC: Optional else branch. - Fixed and simplified definition of matching for RFC: Higher-order functors. 1.3.1 (2008/04/28) Building: - Removed some shell-specific stuff from Makefile. - Added preliminary support for SML#. - Use @SMLcmdname option for SML/NJ instead of hacking. - Avoid name clash with SML/NJ lib >110.66. Documentation: - Added man page. 1.3.0/S4 (2007/03/22) Merged changes from 1.3, plus: Interpreter: - Implemented RFC: Views. - Implemented RFC: Nested matches. - Implemented RFC: Transformation patterns. - Generalised RFC: Match guards to Pattern guards. - Implemented RFC: Higher-order functors. - Implemented RFC: Nested signatures. - Implemented RFC: Local modules. - Implemented RFC: First-class modules. - Extended RFC: Optional bars to cover semicolons as well. Documentation: - Added Appendix B documenting all extensions. 1.3 (2007/03/22) Interpreter: - Fixed computation of tynames on a static basis. - Output abstract syntax tree in parsing mode. - Output type and signature environments in evaluation mode. - Reorganised directory structure. - Some clean-ups. Documentation: - Updated a few out-of-sync sections. - Added typo in definition of cut-down operator (Section 7.2) to issues list. Test files: - Extended "sharing" and "where". - Updated conformance table. Building: - Support for Poly/ML 5.0. - Support for Alice ML 1.4. - Support for ML Kit 4.3.0. - Support for incremental batch compilation with Moscow ML and Alice ML. - Target to build generic monolithic source file. - Work around calls to Unsafe structure in later versions of ML-Lex. 1.2.4/S3 (2006/09/10) Interpreter: - Modified RFC: Line comments to use (*) as delimiter. - Extended RFC: Optional bar in matches to support datatype declarations and specifications. 1.2.4/S2 (2006/08/14) Documentation: - Clarified license. 1.2.4 (2006/08/14) Documentation: - Clarified license. 1.2.3/S2 (2006/07/18): Merged changes from 1.2.3. 1.2.3 (2006/07/18): Interpreter: - Fixed check for duplicate variables in records and layered patterns. - Added missing check for undetermined types in functor declarations. - Overhaul of line/column computation and management of source file names. Documentation: - Added principal typing problem with functors to issue list. Test files: - Added "fun-partial", "functor-poly" and "functor-poly2". - Updated conformance table. Building: - Improvements to Makefile. - Adapt to Basis library changes in newer versions of SML/NJ. - Adapt to ML-Lex in newer version of MLton that fix the token position bug. - Fixed time stamps for generated files. 1.2.2/S2 (2006/01/02): Interpreter: - Implemented RFC: Do declarations. - Extended RFC: Record extension to support record type extension and freely placed ellipses. - Fixed bug in record type field lookup. 1.2.2/S1 (2005/12/12): Interpreter: - Implemented RFC: Syntax fixes. - Implemented RFC: Semantic fixes. - Implemented RFC: Line comments. - Implemented RFC: Extended literal syntax. - Implemented RFC: Record punning. - Implemented RFC: Record extension. - Implemented RFC: Record update. - Implemented RFC: Disjunctive patterns. - Implemented RFC: Conjunctive patterns. - Implemented RFC: Match guards. - Implemented RFC: Optional bar in matches. - Implemented RFC: Simplified recursive bindings. - Implemented RFC: Strengthened value restriction. - Implemented RFC: Degraded abstype. - Implemented RFC: Proper scoping for transparent type specifications. - Implemented RFC: Withtype specifications. - Implemented RFC: Remove "and" in type realisations. 1.2.2 (2005/12/09): Interpreter: - Simplified implementation of pattern checker. Test files: - Added "fun-infix". Building: - Fixed problem with sed under Mac OS. 1.2.1 (2005/07/27): Interpreter: - Fixed bug in implementation of rule 35. - Fixed bug in check for redundant match rules. Basis: - Fixed Substring.splitr. - Fixed border cases in OS.Path.{toString,joinBaseExt,mkAbsolute,mkRelative}. 1.2 (2005/02/04): Interpreter: - Refactored code to avoid cross-module recursion issues and make experiments with extensions more convenient: semantic objects are now collected in one structure for each part of the semantics; type variable scoping and closure computation (expansiveness check) are separated from elaboration module. - Made checking of syntactic restrictions a separate pass. This renders parsing and evaluation-only functionality more accurate, though it complicates things significantly, since it requires complete binding analysis. - Added missing check for bound variables in signature realisation. - Fixed precedence of environments for open declarations. - Fixed implementation of Abs operator for abstype. - Treat empty lines in sessions properly. - Print type name set T of inferred basis in elaboration mode. - Fixed parenthesisation in pretty printing type applications. Basis: - More correct path resolution for use function. - Added checkFloat to REAL signature so that bootstrapping actually works again. - Fixed ArraySlice.copy for overlapping ranges (test was the wrong way round). - Fixed ArraySlice.foldr[i]. - Fixed Char.isSpace. - Fixed octal escapes in Char.fromCString. - Updated treatment of trailing gap escapes in Char.scan. - Updated scanning of hex prefix in Word.scan. - Fixed traversal order in Vector.map. Documentation: - Updated. - Added typo in rule 28 to issue list. Test files: - Added "generalise". - Extended "poly-exception". Building: - Fixed building with Moscow ML and some versions of SML/NJ. - Fixed building on Windows. - Fixed bootstrapping. 1.1.2 (2005/01/14): Interpreter: - Fix parsing of sequential and sharing specs. - Add arity checks missing in rules 64 and 78 of the Definition. - Implement tyname equality as bool. Basis: - Fixed StringCvt.pad{Left,Right}. Workarounds: - Workaround for lack of ListPair.*Eq functions. - Workaround for type change in OS.Path.mkRelative. Documentation: - Add parsing ambiguity for sharing specs to issue list. - Add missing side conditions in rules 64 and 78 to issue list. - Added version history to appendix. Test files: - Added "poly-exception", "tyvar-shadowing", "where2". - Extended "id" and "valrec". - Updated conformance table (MLton 20041109, SML/NJ 110.52, Alice 1.0). 1.1.1 (2004/04/17): Interpreter: - Disallow undetermined types (a.k.a. "free type variables") on toplevel. - Implement accurate scope checking for type names. - Fixed soundness bug wrt undetermined types in type scheme generalisation test. - Reject out-of-range real constants. - Accept multiple line input. - Output file name and line/columns with error messages. - Improved pretty printing. Basis: - Sync'ed with updates to the specification: overloaded ~ on words, added Word.{from,to}Large[X], removed Substring.all, changed TextIO.inputLine, changed Byte.unpackString[Vec]. - Fixed String.isSubstring. - Fixed String.fields. - Fixed Vector.foldri. Workarounds: - Workaround for Mosml's broken real arithmetic (could raise Div). - Workarounds to adapt to recent changes in the Basis spec (fix-Word.sml, fix-TextIO.sml). Makefile: - Support for working versions of SML/NJ with new CM. - Support for newest MLton. Test files: - Added "abstype2", "dec-strdec", "flexrecord2", "tyname", "undetermined2", "undetermined3". - Split conformance table into different classes of deviation and updated to most recent compiler versions. 1.1 (2002/07/26): Basis: - Adapted signatures to latest version of the Basis spec. - Implemented library functions added to existing structures. - Adapted functions with changed semantics. - Implemented all signatures and structures dealing with array and vector slices. - Implemented Text structure, along with previously missing CharVector and CharArray structures. - Implemented previously missing Byte structure. - Removed SML90 structure and signature. - Opaque signature constraints where the spec uses them (with some necessary exceptions). - Implemented previously missing Bool.{scan,fromString}. - Implemented previously missing Real.{pos,neg}Inf. - Handle exceptions from Char.chr correctly. - Fixed generation of \^X-escapes in Char.toString. - Fixed treatment of gap escapes in Char.scan. (See http://SML.sourceforge.net/Basis/history.html for a list of changes to the Basis specification.) Test files: - Added "replication". - Updated conformance table (MLton 20020410). SML/NJ Workaround: - Forgot to propagate 1.0.1 fixes in basis/Char to fix-Char. 1.0.1 (2001/10/11): Some fixes in the Basis: - Ascii and Unicode escapes in Char.scan[C] (and thus Char.from[C]String, String.fromString). - Octal escapes in Char.toCString (and thus String.toCString). - Possible NaN's in Real.scan for mantissa 0 and large exponents. Documentation: - Added issue of obligatory formatting characters to Appendix. - Some minor additions/clarifications in Appendix. Test files: - Added "redundant". - Removed carriage returns from "asterisk", "semicolon" and "typespec". - Small additions to "semicolon" and "valrec". 1.0 (2001/10/04): Initial public release.