From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by yquem.inria.fr (Postfix) with ESMTP id F2151BC58 for ; Thu, 24 Jun 2010 22:57:33 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ar8CALZjI0zRVaG2mGdsb2JhbACDHZwVCBUBAQEBAQgJDAcRIrEgiECIY4EpgwhwBA X-IronPort-AV: E=Sophos;i="4.53,476,1272837600"; d="scan'208";a="62082436" Received: from mail-gx0-f182.google.com ([209.85.161.182]) by mail1-smtp-roc.national.inria.fr with ESMTP; 24 Jun 2010 22:57:33 +0200 Received: by gxk3 with SMTP id 3so2165027gxk.27 for ; Thu, 24 Jun 2010 13:57:32 -0700 (PDT) Received: by 10.150.173.37 with SMTP id v37mr9053598ybe.379.1277413052139; Thu, 24 Jun 2010 13:57:32 -0700 (PDT) MIME-Version: 1.0 Sender: hcarty@mulethief.com Received: by 10.150.192.2 with HTTP; Thu, 24 Jun 2010 13:57:12 -0700 (PDT) In-Reply-To: <20100624224944.91886zxkgzxq78iw@webmail.imag.fr> References: <4C232778.2020605@imag.fr> <4C2399B0.4060503@ens-lyon.org> <20100624205906.48451eor602oaf3u@webmail.imag.fr> <20100624224944.91886zxkgzxq78iw@webmail.imag.fr> From: "Hezekiah M. Carty" Date: Thu, 24 Jun 2010 16:57:12 -0400 X-Google-Sender-Auth: rkHJKxz1wC84O2t6mb70_KdjPdk Message-ID: Subject: Re: [Caml-list] OCaml 3.12.0+beta1 To: Florent Ouchet Cc: caml users Content-Type: text/plain; charset=UTF-8 X-Spam: no; 0.00; ocaml:01 ocaml:01 avoided:01 syntax:01 wrote:01 compile:01 caml-list:01 modules:02 match:02 underscore:02 imag:02 incomplete:03 module:03 let:03 compiled:04 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? Hez