Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[Caml-list] OCaml release 3.10.0

6 views
Skip to first unread message

Xavier Leroy

unread,
May 18, 2007, 4:33:56 AM5/18/07
to Caml List
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.

_______________________________________________
Caml-list mailing list. Subscription management:
http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
Archives: http://caml.inria.fr
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs

Joel Reymont

unread,
May 18, 2007, 4:42:21 AM5/18/07
to OCaml List
Does it mean sources can be retrieved from CVS and just built,
without needing the 3.10 release tag?

I tried it this morning and fastbuild.sh failed first and worked
after the 3.10 CVS tag was applied.

On May 18, 2007, at 9:32 AM, Xavier Leroy wrote:

> I'm happy to announce the release of version 3.10.0 of Objective Caml
> (the "ascension day" release).

--
http://wagerlabs.com/

Hendrik Tews

unread,
May 18, 2007, 4:54:33 AM5/18/07
to caml...@yquem.inria.fr
Xavier Leroy <Xavier...@inria.fr> writes:

* 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.)

I can't find the Camlp4 documentation, where is it?

Bye,

Hendrik

Xavier Leroy

unread,
May 18, 2007, 5:02:53 AM5/18/07
to Joel Reymont
> Does it mean sources can be retrieved from CVS and just built, without
> needing the 3.10 release tag?

No. The CVS trunk is most probably broken, as all recent bug-fixing
was done within the release branch.

A quick guide to tags and branches in the OCaml CVS:

- Releases have tags of the form "ocamlNNNN", e.g. "ocaml3100" for 3.10.0

- Release branches (where bug-fixing takes place) have tags of the form
"releaseNNN", e.g. "release310" for the 3.10 branch

As of today, if you're tracking the CVS, I recommend using the branch
"release310", or "release309" if you need the old Camlp4.

- Xavier Leroy

Xavier Leroy

unread,
May 18, 2007, 5:03:35 AM5/18/07
to Hendrik Tews
> I can't find the Camlp4 documentation, where is it?

In preparation, thank you very much for your patience.

- Xavier Leroy

Aleksey Nogin

unread,
May 22, 2007, 1:18:13 PM5/22/07
to Caml List
I have built the source and binary (i386) RPMs of OCaml 3.10.0 for Red
Hat Enterprise Linux 4 and 5 and for Fedora 2-6. See
http://rpm.nogin.org/ocaml.html for the listing of the RPMs.

All packages are signed with my GPG key; the public key is available at
http://rpmbin.nogin.org/GPG-PUBKEY.txt

You can also download the latest RPMs of OCaml and OMake via yum/up2date
- just point your client to the appropriate URL from the following list:

http://rpmbin.nogin.org/MetaPRL/fedora-6/
http://rpmbin.nogin.org/MetaPRL/fedora-5/
http://rpmbin.nogin.org/MetaPRL/fedora-4/
http://rpmbin.nogin.org/MetaPRL/fedora-3/
http://rpmbin.nogin.org/MetaPRL/fedora-2/

http://rpmbin.nogin.org/MetaPRL/RHEL-5/
http://rpmbin.nogin.org/MetaPRL/RHEL-4/

A sample /etc/yum.repos.d/Nogin.repo for RHEL5 (i386) is attached below.

Aleksey

--
Aleksey Nogin, Research Scientist
Advanced Technologies Department, Information & System Sciences Lab
HRL Laboratories, LLC, Malibu, CA

Nogin.repo
0 new messages