ML Kit NEWS file **** ML Kit version 4.1.4 is released **** * mael 2004-06-09: Work initiated on pickling (serializing) compiler bases to disk so as to obtain a more flexible recompilation system that does not require users to compile all program code whenever the ML Kit interactive menu system is launched. * mael 2003-05-14: Added three new distinct region types to allow for generational garbage collection of regions with untagged pairs, untagged triples, and untagged references. Generational garbage collection with regions is not yet fully implemented. * mael 2003-05-13: Reals now only take up three words (instead of four) when tagging is enabled. * mael 2003-05-08: Fixed bug related to free type variables in type bindings. * mael 2003-02-18: Added support for inlining of functor applications. To specify that functor applications in a file should be inlined, one can now write inline specifications in pm-files using the syntax 'inline funapps in ... end'. Inlining of functor applications improves performance, because it triggers optimizations, such as function inlining, but it also slows down recompilation. * mael 2002-12-05: Fixed bug in opacity elimination (test/opaque3.sml). * mael 2002-12-05: Fixed bug concerning free type variables at top-level in local function (test/ftv.sml). **** ML Kit version 4.1.3 is released (internally) **** * mael 2002-11-08: Implemented uncurrying of functions. This optimization has an important impact on execution times of compiled programs. The optimization is safe-for space w.r.t. the region-based memory management. The optimization can be disabled with the option -no_uncurry. * mael 2002-11-05: Improved pattern-match compilation. The generated code now shares (in most cases) the extraction of values from the root node in a match. **** ML Kit version 4.1.2 is released (internally) **** * mael 2002-10-28: Started work on Barry - a Standard ML barifier (e.g., simplifier). Barry eliminates modules, pattern matching, complex derived forms, resolves infix resolution, and performs a series of optimisations. Barry is basically the frontend of the ML Kit with a pretty printer, which outputs intermediate language constructs in the ML Kit (LambdaExp fragments) as Standard ML code. See the file kit/README_BARRY. * mael 2002-10-25: Support for untagged representation of pairs when garbage collection is enabled. * mael 2002-09-20: Fixed bug caused by Timing.checkRealTimer raising exception Time on some systems when -timing flag is used. * mael 2002-09-17: Added FreeBSD support - patches contributed by Koshy A Joseph. **** ML Kit version 4.1.1 is released **** * mael 2002-08-25: Removed Posix support due to licensing problems with code from mlton. * mael 2002-08-25: Removed region type real. Added region type pair for implementation of almost tag-free garbage collection - not yet fully implemented. **** ML Kit version 4.1.0 is released **** * mael 2002-04-06: Manual improved -- the pdf-version of the manual now uses Type 1 fonts, exclusively. * mael 2001-12-16: Posix bug-fixes. Runtime system clean-up. Change of prim-function for interfacing with C. It is easier now to interface with C functions that take regions as arguments; a few macros help generate different code when profiling is enabled. * mael 2001-12-13: Ported Posix structure from MLton. Calls to C are in many cases simpler now because auto-conversion is extended to work with a larger set of types, including strings (and CharArrays). * mael 2001-11-25: Assembler in-lining of sub/update/size operations on bytetables (CharArray, Word8Array, CharVector, Word8Vector, String). * mael 2001-11-24: Better implementation of Array/Vector (constant subscripting/updating). * mael 2001-11-24: Better implementation of CharArray/Word8Array (basislib/ByteTable.sml); no ref-indirection. * mael 2001-11-24: Better implementation of strings/arrays/vectors by supporting large objects in the runtime system; values that do not fit in region pages are now allocated with malloc and placed in a list of large objects in the region descriptor for the region. Upon region de-allocation, the large objects are freed using free. * mael 2001-11-20: Better reporting of garbage collection statistics and fragmentation (runtime flag -verbose_gc, when gc is enabled). * mael 2001-11-15: Unboxing of datatypes. Previously, only a certain set of predefined types were implemented unboxed. Now, enumerations and many other simple datatypes, such as trees, are represented unboxed; file src/Compiler/Lambda/CompileDec.sml. * mael 2001-11-02: Bug fix involving Int32 operations in the presence of profiling and GC; file src/Compiler/Backend/FetchAndFlush.sml. * mael 2001-11-01: Added structures Pack32Little, Pack32Big, IntInf to basis library implementation; implementations are ported from SML/NJ. * mael 2001-10-30: Bug fix involving unboxing of function arguments in OptLambda.sml; see test file test/unbox.sml. * mael 2001-10-30: Bug fix involving manipulation of compiler bases when restricting interpretation bases in ManagerObjects.sml; see test file test/functor3.sml. * mael 2001-10-26: Bug fix involving recursive value bindings; see test programs test/valrecpat.sml, test/valrecpat1.sml, test/valrecpat2.sml, test/valrecpat3.sml, and test/valrecpat4.sml. * mael 2001-10-26: Bug fix involving polymorphism and parallel value bindings. Bug reported by Stephen Weeks; see test program test/weeks5.sml. * mael 2001-10-23: Bug fix in X86-backend; when tagging is enabled an Overflow exception was raised when the largest Word31-word appeared in a pattern. * nh 2001-10-20: The Garbage Collection algorithm now uses two stacks; one for infinite regions and one for finite regions. Each finite region is only traversed once and it is still a non-recursive algorithm. The stack size is determined dynamically. * mael 2001-10-14: It is now possible to disable region inference in the ML Kit by specifying the flag no_region_inference (or no_ri) on the command line. The flag has the effect that all infinite regions are collapsed with the top-level infinite regions (DropRegions.sml). The option has no effect on finite regions; and region parameters may still happen to be instantiated to either finite or infinite regions (the top-level ones). * mael 2001-09-30: Added regular expression support (structure RegExp) to the basis library. The implementation is based on an implementation by Ken Friis Larsen. See the file kit/basislib/REG_EXP.sml for details. * mael 2001-09-30: Program manager changes: (1) It is now possible for two files in different subdirectories to have the same name and be listed in the same pm-file. (2) Target-files generated when compiling a pm-file (i.e., uo-files for the bytecode backend and o-files for the native x86 backend) are now stored in a PM directory located in the same directory as the compiled pm-file is located; this change allows for a pm-file to refer to source files located in directories for which the user does not have write-permission. **** ML Kit version 4.0.0 is released **** * mael 2001-08-16: Fixed bug in separate compilation framework; match function in ClosConvEnv functor was non-exhaustive. * mael 2001-07-19: Added Interrupt exception to front end; it is now possible to handle an Interrupt exception raised by pressing Control-C. **** ML Kit version 3.9.1 is released **** * mael 2001-07-05: Bug fix: valrec may now overwrite identifier status. Bug reported by Johnny Andersen. * mael 2001-07-05: Quotation support. When the option -quotation is given to the compiler at startup, the datatype datatype 'a frag = QUOTE of string | ANTIQUOTE of 'a is available in the top-level environment. Moreover, the character ` cease to be allowed in symbolic identifiers. Values of the 'a frag datatype may be constructed using the quotation/antiquotation syntax: val s = "world" val a : string frag list = `hello ^s - goodbye` * mael 2001-07-05: An uncaught exception now causes the program to return -1 to the shell (instead of 0). Suggestion by Stephen Weeks. * mael 2001-07-05: Bug fix: The function OS.FileSys.tmpName now returns a file name for a file in /tmp/ (instead of in /etc/). Bug reported by Stephen Weeks. **** ML Kit version 3.9.0 is released **** * many bug fixes * replaced HP backend with x86 native backend * bytecode backend added as an alternative to the x86 native backend; primarily, the bytecode backend is added for portability and for use with the SMLserver project, which adds Standard ML language support to AOLserver -- a webserver from America Online * added support for reference tracing garbage collection * Word31, Word32, Word8, Int31 and Int32 structures added [1998-12-03] **** ML Kit version 3.0 is released **** * ... [1997] **** ML Kit version 2.0 is released **** * ... [1993] **** ML Kit version 1.0 is released ****