Date: Wed, 9 Dec 1998 14:31:07 +0100
From: Xavier Leroy <Xavier.Leroy@inria.fr>
To: caml-list@inria.fr
Subject: Objective Caml 2.01 released
Objective Caml 2.01 has just been released -- right in time for Christmas.
This is a bug-fix release that corrects all known 2.00 bugs, and adds
some convenience features (see below for a complete list of changes)
as well as a couple of new ports (Linux/StrongARM, IRIX/-n32).
It is available from the usual places:
http://caml.inria.fr/pub/old_caml_site/ocaml/distrib.html
ftp://ftp.inria.fr/lang/caml-light/
For general info on Objective Caml, see http://caml.inria.fr/pub/old_caml_site/ocaml/
Please direct queries and bug reports to caml-light@inria.fr
and general discussions to the mailing-list caml-list@inria.fr or the
comp.lang.ml newsgroup.
- Xavier Leroy, for the Objective Caml team.
Objective Caml 2.01:
--------------------
* Typing:
- Added warning for expressions of the form "a; b" where a does not have
type "unit"; catches silly mistake such as
"record.lbl = newval; ..." instead of "record.lbl <- newval; ...".
- Typing bug in "let module" fixed.
* Compilation:
- Fixed bug in compilation of recursive and mutually recursive classes.
- Option -w to turn specific warnings on/off.
- Option -cc to choose the C compiler used with ocamlc -custom and ocamlopt.
* Bytecode compiler and bytecode interpreter:
- Intel x86: removed asm declaration causing "fixed or forbidden register
spilled" error with egcs and gcc 2.8 (but not with gcc 2.7, go figure).
- Revised handling of debugging information, allows faster linking with -g.
* Native-code compiler:
- Fixed bugs in integer constant propagation.
- Out-of-bound accesses in array and strings now raise an Invalid_argument
exception (like the bytecode system) instead of stopping the program.
- Corrected scheduling of bound checks.
- Port to the StrongARM under Linux (e.g. Corel Netwinder).
- I386: fixed bug in profiled code (ocamlopt -p).
- Mips: switched to -n32 model under IRIX; dropped the Ultrix port.
- Sparc: simplified the addressing modes, allows for better scheduling.
- Fixed calling convention bug for Pervasives.modf.
* Toplevel:
- #trace works again.
- ocamlmktop: use matching ocamlc, not any ocamlc from the search path.
* Memory management:
- Fixed bug in heap expansion that could cause the GC to loop.
* C interface:
- New macros CAMLparam... and CAMLlocal... to simplify the handling
of local roots in C code.
- Simplified procedure for allocating and filling Caml blocks from C.
- Declaration of string_length in <caml/mlvalues.h>.
* Standard library:
- Module Format: added {get,set}_all_formatter_output_functions,
formatter_of_out_channel, and the control sequence @<n> in printf.
- Module List: added mem_assoc, mem_assq, remove, removeq.
- Module Pervasives: added float_of_int (synonymous for float),
int_of_float (truncate), int_of_char (Char.code), char_of_int (Char.chr),
bool_of_string.
- Module String: added contains, contains_from, rcontains_from.
* Unix library:
- Unix.lockf: added F_RLOCK, F_TRLOCK; use POSIX locks whenever available.
- Unix.tc{get,set}attr: added non-standard speeds 57600, 115200, 230400.
- Unix.chroot: added.
* Threads:
- Bytecode threads: improved speed of I/O scheduling.
- Native threads: fixed a bug involving signals and exceptions
generated from C.
* The "str" library:
- Added Str.string_partial_match.
- Bumped size of internal stack.
* ocamlyacc: emit correct '# lineno' directive for prelude part of .mly file.
* Emacs editing mode: updated with Jacques Garrigue's newest code.
* Windows port:
- Added support for the "-cclib -lfoo" option (instead of
-cclib /full/path/libfoo.lib as before).
- Threads: fixed a bug at initialization time.
* Macintosh port: source code for Macintosh application merged in.
This archive was generated by hypermail 2b29 : Sun Jan 02 2000 - 11:58:17 MET