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 MAA31652 for caml-redistribution; Fri, 5 Mar 1999 12:01:04 +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 LAA15163 for ; Fri, 5 Mar 1999 11:41:13 +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 LAA16040 for ; Fri, 5 Mar 1999 11:41:12 +0100 (MET) Received: (from xleroy@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id LAA24592; Fri, 5 Mar 1999 11:41:12 +0100 (MET) Message-ID: <19990305114112.34610@pauillac.inria.fr> Date: Fri, 5 Mar 1999 11:41:12 +0100 From: Xavier Leroy To: caml-list@inria.fr Subject: Objective Caml 2.02 Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.89.1 Sender: weis Version 2.02 of Objective Caml is now available. In addition to minor bug fixes, this release adds some new library functions and a number of simple optimizations in the native-code compiler that reduce both execution time and code size. Sources, documentation and binaries for Linux/RedHat and Windows are available from: http://caml.inria.fr/ocaml/distrib.html ftp://ftp.inria.fr/lang/caml-light/ For general info on Objective Caml, see http://caml.inria.fr/ocaml/ Please direct queries and bug reports to caml-light@inria.fr and general discussions to the mailing-list caml-list@inria.fr or the comp.lang.ml newsgroup. - Xavier Leroy, for the Objective Caml team. Objective Caml 2.02: -------------------- * Type system: - Check that all components of a signature have unique names. - Fixed bug in signature matching involving a type component and a module component, both sharing an abstract type. - Bug involving recursive classes constrained by a class type fixed. - Fixed bugs in printing class types and in printing unification errors. * Compilation: - Changed compilation scheme for "{r with lbl = e}" when r has many fields so as to avoid code size explosion. * Native-code compiler: - Better constant propagation in boolean expressions and in conditionals. - Removal of unused arguments during function inlining. - Eliminated redundant tagging/untagging in bit shifts. - Static allocation of closures for functions without free variables, reduces the size of initialization code. - Revised compilation scheme for definitions at top level of compilation units, so that top level functions have no free variables. - Coalesced multiple allocations of heap blocks inside one expression (e.g. x :: y :: z allocates the two conses in one step). - Ix86: better handling of large integer constants in instruction selection. - MIPS: fixed wrong asm generated for String.length "literal". * Standard library: - Added the "ignore" primitive function, which just throws away its argument and returns "()". It allows to write "ignore(f x); y" if "f x" doesn't have type unit and you don't want the warning caused by "f x; y". - Added the "Buffer" module (extensible string buffers). - Module Format: added formatting to buffers and to strings. - Added "mem" functions (membership test) to Hashtbl and Map. - Module List: added find, filter, partition. Renamed remove and removeq to remove_assoc and remove_assq. - Module Marshal: fixed bug in marshaling functions when passed functional values defined by mutual recursion with other functions. - Module Printf: added Printf.bprintf (print to extensible buffer); added %i format as synonymous for %d (as per the docs). - Module Sort: added Sort.array (Quicksort). * Runtime system: - New callback functions for callbacks with arbitrary many arguments and for catching Caml exceptions escaping from a callback. * The ocamldep dependency generator: now performs full parsing of the sources, taking into account the scope of module bindings. * The ocamlyacc parser generator: fixed sentinel error causing wrong tables to be generated in some cases. * The str library: - Added split_delim, full_split as variants of split that control more precisely what happens to delimiters. - Added replace_matched for separate matching and replacement operations. * The graphics library: - Bypass color lookup for 16 bpp and 32 bpp direct-color displays. - Larger color cache. * The thread library: - Bytecode threads: more clever use of non-blocking I/O, makes I/O operations faster. - POSIX threads: gcc-ism removed, should now compile on any ANSI C compiler. - Both: avoid memory leak in the Event module when a communication offer is never selected. * The Unix library: - Fixed inversion of ctime and mtime in Unix.stat, Unix.fstat, Unix.lstat. - Unix.establish_connection: properly reclaim socket if connect fails. * The DBM library: no longer crashes when calling Dbm.close twice. * Emacs mode: - Updated with Garrigue and Zimmerman's latest version. - Now include an "ocamltags" script for using etags on OCaml sources. * Win32 port: - Fixed end-of-line bug in ocamlcp causing problems with generated sources.