Subject: Objective Caml 2.99 released
Date: Fri, 17 Dec 1999 18:50:21 +0100
From: Jacques Garrigue <Jacques.Garrigue@inria.fr>
We are happy to announce
Objective Caml version 2.99 (The Merger)
This release is the result of merging Objective Label features inside
Objective Caml. It contains very few bug fixes and many new
features. As the version number suggests, this is a beta release.
This does not mean that we are aware of any bug, but if you are
satisfied with 2.04 you may prefer to wait for 3.00.
* labeled arguments
They help you document your code.
You may choose to use the compatible syntax (by default), which
allows labels but require them to be present in applications, or
the stricter olabl-like syntax.
* optional arguments
They are available in both modes, and allow to define multiple
call patterns for functions.
* polymorphic variants
They allow the reuse of the same variant tag in multiple
contexts/types and provide a refined type checking.
New tools and libraries:
* ocaml2to3: a script converting ocaml 2 files to the new lexing rules.
This only means adding spaces around colons, and converting
question marks `?' to double ones `??'.
* ocamlbrowser: an "integrated programming environment". This contains
a library browser, a type-checking editor, and an Objective Caml shell.
* labltk: another version of the ocamltk Tcl/Tk interface. It allows
for a more natural syntax, using optional arguments.
OCamlBrowser and LablTk are not available on windows and Mac for this
This merger does not mean that Objective Caml became Objective Label.
Only part of Objective Label features were included in this release.
Others, like polymorphic methods, may follow later, but nothing is
Sources, documentation and binaries for Linux/RedHat and Windows are
For general info on Objective Caml, see http://caml.inria.fr/pub/old_caml_site/ocaml/
Please direct queries to email@example.com, bug reports to
firstname.lastname@example.org/pub/old_caml_site, and general discussions to the mailing-list
email@example.com or the comp.lang.ml newsgroup.
- Jacques Garrigue et Xavier Leroy, for the Objective Caml team.
List of changes for Objective Label users
* polymorphic methods and covariant subtyping of constructors are
* you must use the "-modern -w s" flags to have the compiler and
toplevel behave more like Objective Label.
* syntax of optional arguments with default value changed. One writes
?(:arg = default) or ?(arg:x = default) in place of
?:arg [< default >] or ?arg:x [< default >]
Also you can now write (:arg : typ) to annotate a labeled argument
with a type expression.
* semantics of optional arguments changed. They are only discarded
when a non-labeled argument appearing after them in the function type
is applied. This means that any function have to rewritten to
have a non-labeled argument in last position.
* LablTk changed quite a bit. Outside of the above optional
arguments problem, some other functions were homogeneized.
This archive was generated by hypermail 2b29 : Sun Jan 02 2000 - 11:58:29 MET