Objective Caml 2.99 released

From: Jacques Garrigue (Jacques.Garrigue@inria.fr)
Date: Fri Dec 17 1999 - 18:50:21 MET

To: caml-list@inria.fr
Subject: Objective Caml 2.99 released
Message-Id: <19991217185021D.garrigue@pauillac.inria.fr>
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.

New features:

  * 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
fixed yet.

Sources, documentation and binaries for Linux/RedHat and Windows are
available from:


For general info on Objective Caml, see http://caml.inria.fr/pub/old_caml_site/ocaml/

Please direct queries to caml-light@inria.fr, bug reports to
caml-bugs@caml.inria.fr/pub/old_caml_site, and general discussions to the mailing-list
caml-list@inria.fr 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
    not available.

  * 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