Objective Caml 1.03

Xavier Leroy (xleroy@pauillac.inria.fr)
Tue, 29 Oct 1996 16:18:10 +0100 (MET)

From: Xavier Leroy <xleroy@pauillac.inria.fr>
Message-Id: <199610291518.QAA05680@pauillac.inria.fr>
Subject: Objective Caml 1.03
To: caml-list@pauillac.inria.fr
Date: Tue, 29 Oct 1996 16:18:10 +0100 (MET)

Release 1.03 of Objective Caml is now available.
This is mostly a bug-fix release that corrects the main problems
reported with 1.02. See the end of this message for a detailed list
of changes.

The complete sources, binaries for Windows, and diffs from 1.00 are
available by anonymous FTP at ftp://ftp.inria.fr/lang/caml-light.

See http://pauillac.inria.fr/ocaml/ for documentation and general info
about Objective Caml

- Xavier Leroy

Objective Caml 1.03:
--------------------

* Typing:
- bug with type names escaping their scope via unification with
non-generalized type variables '_a completely fixed;
- fixed bug in occur check : it was too restrictive;
- fixed bug of coercion operators;
- check that no two types of the same name are generated in a module
(there was no check for classes);
- "#install_printer" works again;
- fixed bug in printing of subtyping errors;
- in class interfaces, construct "method m" (without type) change
the status of method m from abstract to concrete;
- in a recursive definition of class interfaces, a class can now
inherit from a previous class;
- typing of a method make use of an eventual previously given type
of this method, yielding clearer type errors.

* Compilation (ocamlc and ocamlopt):
- fixed bug in compilation of classes.

* Native-code compilation:
- optimization of functions taking tuples of arguments;
- code emitter for the Motorola 680x0 processors (retrocomputing week);
- Alpha/OSF1: generate frame descriptors, avoids crashes when e.g.
exp() or log() cause a domain error; fixed bug with
String.length "literal";
- Sparc, Mips, HPPA: removed marking of scanned stack frames
(benefits do not outweight cost).

* Standard library:
- Arg.parse now prints documentation for command-line options;
- I/O buffers (types in_channel and out_channel) now heap-allocated,
avoids crashing when closing a channel several times;
- Overflow bug in compare fixed;
- GC bug in raising Sys_error from I/O functions fixed;
- Parsing.symbol_start works even for epsilon productions.

* Foreign interface: main() in C now working, fixed bug in library
order at link time.

* Thread library: guard against calling thread functions before Thread.create.

* Unix library: fixed getsockopt, setsockopt, open_process_{in,out}.

* Perl-free, cpp-free, cholesterol-free installation procedure.