Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
OCaml 3.12.0+beta1
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2010-06-24 (20:57)
From: Hezekiah M. Carty <hcarty@a...>
Subject: Re: [Caml-list] OCaml 3.12.0+beta1
On Thu, Jun 24, 2010 at 4:49 PM, Florent Ouchet <> wrote:
> This specific ( { ; _} ) forward compatibility with ocaml <3.12 is possible
> for a little cost. It's just about removing the extra underscore characters.
> Anyway if the preprocessing script does not come out of the ocaml 3.12 box,
> I will have to do it. Other developers may have to so as well.
> Mainly because this coverage check is a must-do and because I do not want to
> force a general update to OCaml 3.12 when that can be avoided. The coverage
> check has to be done only once, at "developer's" side, using 3.12. Once the
> changes are done, stripped code can easily be compiled using older versions
> of OCaml, at "user's" side.

The trailing _ in a record match is not required.  It is allowed in
3.12, and in combination with an optional warning flag it can be used
to check for incomplete record matches.  Why is any preprocessing
needed?  If an application is written to require OCaml 3.12.x or
later, why would you expect it to compile with an earlier version?

How is this a bigger "backward compatibility" break than first-class
modules or the "let open Module in" syntax?