ocaml/Changes

173 lines
5.5 KiB
Plaintext

Objective Caml 1.00:
--------------------
* Merge of Jerome Vouillon and Didier Remy's object-oriented
extensions.
* All libraries: all "new" functions renamed to "create" because "new"
is now a reserved keyword.
* Compilation of "or" patterns (pat1 | pat2) completely revised to
avoid code size explosion.
* Compiler support for preprocessing source files (-pp flag).
* Library construction: flag -linkall to force linking of all units in
a library.
* Native-code compiler: port to the Sparc under NetBSD.
* Toplevel: fixed bug when tracing several times the same function
under different names.
* New format for marshaling arbitrary data structures, allows
marshaling to/from strings.
* Standard library: new module Genlex (configurable lexer for streams)
* Thread library: much better support for I/O and blocking system calls.
* Graphics library: faster reclaimation of unused pixmaps.
* Unix library: new functions {set,clear}_nonblock, {set,clear}_close_on_exec,
{set,get}itimer, inet_addr_any, {get,set}sockopt.
* Dynlink library: added support for linking libraries (.cma files).
Caml Special Light 1.15:
------------------------
* Caml Special Light now runs under Windows NT and 95. Many thanks to
Kevin Gallo (Microsoft Research) who contributed his initial port.
* csllex now generates tables for a table-driven automaton.
The resulting lexers are smaller and run faster.
* Completely automatic configuration script.
* Typing: more stringent checking of module type definitions against
manifest module type specifications.
* Toplevel: recursive definitions of values now working.
* Native-code compiler, all platforms:
toplevel "let"s with refutable patterns now working;
fixed bug in assignment to float record fields;
direct support for floating-point negation and absolute value.
* Native-code compiler, x86: fixed bug with tail calls (with more than
4 arguments) from a function with a one-word stack frame.
* Native-code compiler, Sparc: problem with -compact fixed.
* Thread library: support for non-blocking writes; scheduler revised.
* Unix library: bug in gethostbyaddr fixed; bounds checking for read,
write, etc.
Caml Special Light 1.14:
------------------------
* cslopt ported to the PowerPC/RS6000 architecture. Better support for
AIX in the bytecode system as well.
* cslopt, all platforms: fixed bug in live range splitting around catch/exit.
* cslopt for the Intel (floating-point wars, chapter 4):
implemented Ershov's algorithm to minimize floating-point stack usage;
out-of-order pops fixed.
* Several bug fixes in callbacks and signals.
Caml Special Light 1.13:
------------------------
* Pattern-matching compilation revised to factor out accesses inside
matched structures.
* Callbacks and signals now supported in cslopt.
Signals are only detected at allocation points, though.
Added callback functions with 2 and 3 arguments.
* More explicit error messages when a native-code program aborts due
to array or string bound violations.
* In patterns, "C _" allowed even if the constructor C has several arguments.
* && and || allowed as alternate syntax for & and or.
* cslopt for the Intel: code generation for floating-point
operations entirely redone for the third time (a pox on whomever at
Intel decided to organize the floating-point registers as a stack).
* cslopt for the Sparc: don't use Sparc V8 smul and sdiv instructions,
emulation on V7 processors is abysmal.
Caml Special Light 1.12:
------------------------
* Fixed an embarrassing bug with references to floats.
Caml Special Light 1.11:
------------------------
* Streams and stream parsers a la Caml Light are back (thanks to
Daniel de Rauglaudre).
* User-level concurrent threads, with low-level shared memory primitives
(locks and conditions) as well as channel-based communication primitives
with first-class synchronous events, in the style of Reppy's CML.
* The native-code compiler has been ported to the HP PA-RISC processor
running under NextStep (sorry, no HPUX, its linker keeps dumping
core on me).
* References not captured in a function are optimized into variables.
* Fixed several bugs related to exceptions.
* Floats behave a little more as specified in the IEEE standard
(believe it or not, but x < y is not the negation of x >= y).
* Lower memory consumption for the native-code compiler.
Caml Special Light 1.10:
------------------------
* Many bug fixes (too many to list here).
* Module language: introduction of a "with module" notation over
signatures for concise sharing of all type components of a signature;
better support for concrete types in signatures.
* Native-code compiler: the Intel 386 version has been ported to
NextStep and FreeBSD, and generates better code (especially for
floats)
* Tools and libraries: the Caml Light profiler and library for
arbitrary-precision arithmetic have been ported (thanks to John
Malecki and Victor Manuel Gulias Fernandez); better docs for the Unix
and regexp libraries.
Caml Special Light 1.07:
------------------------
* Syntax: optional ;; allowed in compilation units and structures
(back by popular demand)
* cslopt:
generic handling of float arrays fixed
direct function application when the function expr is not a path fixed
compilation of "let rec" over values fixed
multiple definitions of a value name in a module correctly handled
no calls to ranlib in Solaris
* csltop: #trace now working
* Standard library: added List.memq; documentation of Array fixed.
Caml Special Light 1.06:
------------------------
* First public release.