From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from weis@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id XAA23361 for caml-redistribution; Fri, 17 Dec 1999 23:00:39 +0100 (MET) Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id SAA14109 for ; Fri, 17 Dec 1999 18:50:23 +0100 (MET) Received: from pauillac.inria.fr (pauillac.inria.fr [128.93.11.35]) by concorde.inria.fr (8.8.7/8.8.7) with ESMTP id SAA24295 for ; Fri, 17 Dec 1999 18:50:21 +0100 (MET) Received: from localhost (riesling.inria.fr [128.93.8.51]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id SAA07427 for ; Fri, 17 Dec 1999 18:50:21 +0100 (MET) To: caml-list@inria.fr Subject: Objective Caml 2.99 released Reply-To: Jacques.Garrigue@inria.fr X-Mailer: Mew version 1.93 on Emacs 20.4 / Mule 4.0 (HANANOEN) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-Id: <19991217185021D.garrigue@pauillac.inria.fr> Date: Fri, 17 Dec 1999 18:50:21 +0100 From: Jacques Garrigue X-Dispatcher: imput version 980905(IM100) Sender: weis 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 release. 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: http://caml.inria.fr/ocaml/distrib299.html ftp://ftp.inria.fr/lang/caml-light/ For general info on Objective Caml, see http://caml.inria.fr/ocaml/ Please direct queries to caml-light@inria.fr, bug reports to caml-bugs@caml.inria.fr, 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. Appendix: --------- 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.