From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=AWL autolearn=disabled version=3.1.3 Received: from discorde.inria.fr (discorde.inria.fr [192.93.2.38]) by yquem.inria.fr (Postfix) with ESMTP id D166DBC0A for ; Fri, 18 May 2007 10:32:48 +0200 (CEST) Received: from smtp6-g19.free.fr (smtp6-g19.free.fr [212.27.42.36]) by discorde.inria.fr (8.13.6/8.13.6) with ESMTP id l4I8WmUF008806 for ; Fri, 18 May 2007 10:32:48 +0200 Received: from [192.168.1.2] (che78-2-82-237-71-191.fbx.proxad.net [82.237.71.191]) by smtp6-g19.free.fr (Postfix) with ESMTP id 30560AEFFD for ; Fri, 18 May 2007 10:32:48 +0200 (CEST) Message-ID: <464D64AF.3000406@inria.fr> Date: Fri, 18 May 2007 10:32:47 +0200 From: Xavier Leroy User-Agent: Mozilla Thunderbird 1.0.2 (X11/20050317) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Caml List Subject: OCaml release 3.10.0 X-Enigmail-Version: 0.91.0.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Miltered: at discorde with ID 464D64B0.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; ocaml:01 syntax:01 val:01 stack:01 uncaught:01 native-code:01 macos:01 powerpc:01 toolchain:01 toolchain:01 camlp:01 modular:01 syntax:01 ocaml:01 compilation:01 I'm happy to announce the release of version 3.10.0 of Objective Caml (the "ascension day" release). The main novelties in this release include: * Instance variables in classes can be declared virtual and implemented in subclasses. Syntax is val virtual v : t. * Printing of stack backtraces on uncaught exceptions, previously available only for bytecode-compiled programs, is now supported for native-code programs as well. (Supported on Intel/AMD and PPC, in 32 and 64 bits). * New ports: MacOS X, PowerPC, 64 bits; Microsoft Windows 64 bits (x64) using the Microsoft PSDK toolchain; Microsoft Windows 32 bits using the Visual Studio 2005 toolchain. * The Camlp4 preprocessor was partially reimplemented and offers a new, more modular API for syntax extensions. (Users of third-party syntax extensions may wish to stay with OCaml 3.09 until these extensions are ported to the new API.) * A new experimental tool, ocamlbuild: a compilation manager that automates the building of OCaml applications and libraries. A more detailed list of changes is appended. Sources, documentation and Windows binary distributions are available from the usual place: http://caml.inria.fr/ocaml/release.html MacOS X binaries are not yet available. Enjoy, - Xavier Leroy ---------------------------------------------------------------------- Objective Caml 3.10.0: ---------------------- (Changes that can break existing programs are marked with a "*" ) Language features: - Added virtual instance variables in classes "val virtual v : t" * Changed the behaviour of instance variable overriding; the new definition replaces the old one, rather than creating a new variable. New tools: - ocamlbuild: compilation manager for OCaml applications and libraries. See draft documentation at http://gallium.inria.fr/~pouillar/ * Camlp4: heavily revised implementation, new API. New ports: - MacOS X PowerPC 64 bits. - MS Windows 64 bits (x64) using the Microsoft PSDK toolchain. - MS Windows 32 bits using the Visual Studio 2005 toolchain. Compilers: - Faster type-checking of functor applications. - Referencing an interface compiled with -rectypes from a module not compiled with -rectypes is now an error. - Revised the "fragile matching" warning. Native-code compiler: - Print a stack backtrace on an uncaught exception. (Compile and link with ocamlopt -g; execute with OCAMLRUNPARAM=b.) Supported on Intel/AMD in 32 and 64 bits, PPC in 32 and 64 bits. - Stack overflow detection on MS Windows 32 bits (courtesy O. Andrieu). - Stack overflow detection on MacOS X PPC and Intel. - Intel/AMD 64 bits: generate position-independent code by default. - Fixed bug involving -for-pack and missing .cmx files (PR#4124). - Fixed bug causing duplication of literals (PR#4152). Run-time system: - C/Caml interface functions take "char const *" arguments instead of "char *" when appropriate. - Faster string comparisons (fast case if strings are ==). Standard library: - Refined typing of format strings (type format6). - Printf, Format: new function ifprintf that consumes its arguments and prints nothing (useful to print conditionally). - Scanf: new function format_from_string to convert a string to a format string; new %r conversion to accomodate user defined scanners. - Filename: improved Win32 implementation of Filename.quote. - List: List.nth now tail-recursive. - Sys: added Sys.is_directory. Some functions (e.g. Sys.command) that could incorrectly raise Sys_io_blocked now raise Sys_error as intended. Other libraries: - Bigarray: mmap_file takes an optional argument specifying the start position of the data in the mapped file. - Dynlink: now defines only two modules, Dynlink and Dynlinkaux (internal), reducing risks of name conflicts with user modules. - Labltk under Win32: now uses Tcl/Tk 8.4 instead of 8.3 by default. - VM threads: improved performance of I/O operations (less polling). - Unix: new function Unix.isatty. - Unix emulation under Win32: fixed incorrect error reporting in several functions (PR#4097); better handling of channels opened on sockets (PR#4098); fixed GC bug in Unix.system (PR#4112). Documentation generator (OCamldoc): - correctly handle '?' in value names (PR#4215) - new option -hide-warnings not to print ocamldoc warnings Lexer generator (ocamllex): improved error reporting. License: fixed a typo in the "special exception" to the LGPL.