Re: Objective Caml 1.00

Xavier Leroy (xleroy@pauillac.inria.fr)
Fri, 10 May 1996 13:43:32 +0200 (MET DST)

From: Xavier Leroy <xleroy@pauillac.inria.fr>
Message-Id: <199605101143.NAA17437@pauillac.inria.fr>
Subject: Re: Objective Caml 1.00
To: raffalli@cs.chalmers.se (Christophe Raffalli)
Date: Fri, 10 May 1996 13:43:32 +0200 (MET DST)
In-Reply-To: <199605091630.SAA19527@lips.cs.chalmers.se> from "Christophe Raffalli" at May 9, 96 06:30:50 pm

> As "Upward compatibility with Caml Special Light is very high", I wonder if
> Objectif Caml will replace CSL or if newer versions of CSL will continue to
> come. Should every user of CSL move to Objective Caml ?

Objective Caml should really be viewed as the latest release of
CSL. It could very well have been called CSL 1.20. It's just that we
werent' completely happy with the name "Caml Special Light" (too long,
not catchy enough), and wanted to emphasize the new object stuff.

The only incompatibility between Objective Caml and Caml Special Light
is that there are a few extra reserved keywords in Objective Caml,
such as "new", "class", "inherit" and "constraint". Unfortunately,
several library functions were called "new" (e.g. Hashtbl.new) and had
to be renamed (e.g. Hashtbl.create).

The Objective Caml distribution contains a script (in tools/csl2ocaml)
to help convert to Objective Caml. It renames the library functions
and warns for each use of one of the now-reserved keywords as variable
names.

You may also have to change your Makefiles, because the compilers have
been renamed as well (cslc -> ocamlc, etc), but this is not even
necessary with a few extra symbolic links.

Apart from this, all CSL code should run in Objective Caml without
further modification.

Other improvements and bug fixes between CSL 1.15 and Objective Caml
1.00 include:

* 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).

> A more general question is:
>
> What is the future of the Caml family which now include :
> Caml-light (and two exotic compiler: camlot and camloo)
> Caml-Special-light
> Chameaux
> Objective Caml
> ... others ?

I can't say for those I'm not responsible for (camlot, camloo,
chamau); maybe their authors will like to comment.

Caml Special Light is completely superseded by Objective Caml, and no
new version of CSL will be released. All developments will continue on
Objective Caml. So, everybody is encouraged to switch from CSL to
Objective Caml just as they would switch to the latest release of CSL.

To support the use of Caml Light in programming courses, Caml Light is
still being maintained, though not actively developed. We make
bug-fix releases of Caml Light from time to time (though at a
considerably slower pace than Objective Caml releases), but no major
changes are forthcoming.

> The best way to answer would be to post regularly (once a month ?)
> on the mailing list a newsletter (You could call it "Some news from
> the Caravan" :-), telling us what's happening in the Caravan of CAML
> people.

I'm afraid there is not enough material for monthly publishing...
But don't hesitate to ask for clarification if our plans are not clear
enough.

- Xavier Leroy