Premiere MAJ pour 3.00
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@3075 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02master
parent
4143a8675a
commit
5ed995f789
98
Changes
98
Changes
|
@ -1,3 +1,101 @@
|
|||
Objective Caml 3.00:
|
||||
--------------------
|
||||
|
||||
Language:
|
||||
- OCaml/OLabl merger:
|
||||
* Support for labeled and optional arguments for functions and classes.
|
||||
* Support for variant types (sum types compared by structure).
|
||||
See tutorial (chapter 2 of the OCaml manual) for more infos.
|
||||
- Added exception renaming in structures (exception E = F).
|
||||
|
||||
Both compilers:
|
||||
- Option -labels to select commuting label mode (labels are mandatory,
|
||||
but labeled arguments can be passed in a different order than in
|
||||
the definition of the function; in default mode, labels are optional,
|
||||
but no argument reordering is possible).
|
||||
- Libraries (.cma and .cmxa files) now "remember" C libraries given
|
||||
at library construction time, and add them back at link time.
|
||||
Allows linking with e.g. just unix.cma instead of
|
||||
unix.cma -custom -cclib -lunix
|
||||
- Revised printing of error messages, now use Format.fprintf; no visible
|
||||
difference for users, but could facilitate internationalization later.
|
||||
- Fixed bug in unboxing of records containing only floats.
|
||||
- Fixed typing bug involving applicative functors as components of modules.
|
||||
- Better error message for inconsistencies between compiled interfaces.
|
||||
|
||||
Bytecode compiler:
|
||||
- New "modular" format for bytecode executables; no visible differences
|
||||
for users, but will facilitate further extensions later.
|
||||
- Revised treatment of signals.
|
||||
|
||||
Native-code compiler:
|
||||
- Profiling support on x86 under FreeBSD
|
||||
- Open-coding and unboxing optimizations for the new integer types
|
||||
int32, int64, nativeint, and for bigarrays.
|
||||
- Fixed instruction selection bug with "raise" appearing in arguments
|
||||
of strict operators, e.g. "1 + raise E".
|
||||
- Better error message when linking incomplete/incorrectly ordered set
|
||||
of .cmx files.
|
||||
- Optimized scanning of global roots during GC, can reduce total running
|
||||
time by up to 5% on GC-intensive programs.
|
||||
|
||||
Interactive toplevel:
|
||||
- Better printing of exceptions, including arguments, when possible.
|
||||
- Fixed rare GC bug occurring during interpretation of scripts.
|
||||
- Added consistency checks between interfaces and implementations
|
||||
during #load.
|
||||
|
||||
Run-time system:
|
||||
- Added support for "custom" heap blocks (heap blocks carrying
|
||||
C functions for finalization, comparison, hashing, serialization
|
||||
and deserialization).
|
||||
- Support for finalization functions written in Caml.
|
||||
|
||||
Standard library:
|
||||
- New modules Int32, Int64, Nativeint for 32-bit, 64-bit and
|
||||
platform-native integers
|
||||
- Module Gc: added Gc.finalise to attach Caml finalisation functions to
|
||||
arbitrary heap-allocated data.
|
||||
- Module Hashtbl: do not bomb when resizing very large table.
|
||||
- Module Lazy: raise Lazy.Undefined when a lazy evaluation needs itself.
|
||||
- Module List: fixed bug in List.rev_map2.
|
||||
- Module Map: added mapi (iteration with key and data).
|
||||
- Module Set: added iterators for_all, exists, filter, partition.
|
||||
- Module Sort: ???
|
||||
- Module Stack: added Stack.top
|
||||
- Module String: fixed boundary condition on String.rindex_from
|
||||
- Added labels on function arguments where appropriate.
|
||||
|
||||
New or updated ports:
|
||||
- Alpha/Digital Unix: lifted 256M limitation on total memory space
|
||||
induced by -taso
|
||||
- Port to AIX 4.3 on PowerPC
|
||||
- Port to HPUX 11 on HPPA
|
||||
- Deprecated 680x0 / SunOS port
|
||||
|
||||
New libraries and tools:
|
||||
- ocamlbrowser: graphical browser for OCaml sources and compiled interfaces,
|
||||
supports cross-referencing, editing, running the toplevel.
|
||||
- LablTK: GUI toolkit based on TK, using labeled and optional arguments,
|
||||
easier to use than CamlTK.
|
||||
- Bigarray: large, multi-dimensional numerical arrays, facilitate
|
||||
interfacing with C/Fortran numerical code, efficient support for
|
||||
advanced array operations such as slicing and memory-mapping of files.
|
||||
|
||||
Other libraries:
|
||||
- Bytecode threads: timer-based preemption was broken, works back again;
|
||||
fixed bug in Pervasives.input_line; exported Thread.yield.
|
||||
- System threads: several GC / reentrancy bugs fixed in buffered I/O
|
||||
and Unix I/O; revised Thread.join implementation for strict POSIX
|
||||
conformance; exported Thread.yield.
|
||||
- Graphics: added support for double buffering; added rmoveto, rlineto.
|
||||
- Num: fixed bug in Num.float_of_num.
|
||||
- Str: worked around potential symbol conflicts with C standard library.
|
||||
|
||||
Macintosh port:
|
||||
- Implemented the Unix and Thread libraries.
|
||||
|
||||
|
||||
Objective Caml 2.04:
|
||||
--------------------
|
||||
|
||||
|
|
Loading…
Reference in New Issue