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.0 required=5.0 tests=none autolearn=disabled version=3.1.3 Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id 2C616BC69 for ; Tue, 24 Apr 2007 22:17:47 +0200 (CEST) Received: from out4.smtp.messagingengine.com (out4.smtp.messagingengine.com [66.111.4.28]) by concorde.inria.fr (8.13.6/8.13.6) with ESMTP id l3OKHko0006468 for ; Tue, 24 Apr 2007 22:17:46 +0200 Received: from compute2.internal (compute2.internal [10.202.2.42]) by out1.messagingengine.com (Postfix) with ESMTP id D98B9218561; Tue, 24 Apr 2007 16:17:52 -0400 (EDT) Received: from heartbeat2.messagingengine.com ([10.202.2.161]) by compute2.internal (MEProxy); Tue, 24 Apr 2007 16:17:44 -0400 X-Sasl-enc: ubZlVYooE9tHebmBD1Za6OJ/I5HWgKcNB/syJB2abkYE 1177445863 Received: from munge.burnham.org (burnham.ljcrf.edu [192.231.106.2]) by mail.messagingengine.com (Postfix) with ESMTP id B71AD1B73C; Tue, 24 Apr 2007 16:17:43 -0400 (EDT) Date: Tue, 24 Apr 2007 13:17:31 -0700 (PDT) From: Martin Jambon X-X-Sender: martin@localhost To: skaller Cc: Diego Olivier FERNANDEZ PONS , caml-list@inria.fr Subject: new+old Camlp4 (was Re: [Caml-list] Bug in ocamlyacc) In-Reply-To: <1177439118.6172.18.camel@rosella.wigram> Message-ID: References: <001401c785f3$3af5e890$6a7ba8c0@treble> <1177392571.10100.46.camel@rosella.wigram> <20070424122338.ozkvhzfhckcskkc4@webmail.etu.upmc.fr> <1177439118.6172.18.camel@rosella.wigram> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Miltered: at concorde with ID 462E65EA.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; ens-lyon:01 camlp:01 bug:01 ocamlyacc:01 0200,:01 pons:01 camlyacc:01 camlp:01 ocaml:01 ocaml:01 unmanageable:01 syntax:01 non-trivial:01 syntax:01 preferrable:01 On Wed, 25 Apr 2007, skaller wrote: > On Tue, 2007-04-24 at 12:23 +0200, Diego Olivier FERNANDEZ PONS wrote: > > Bonjour, > > > > > I won't use Menhir for that reason either.[...] > > > > Come on, Skaller. You know as well as everyone that adding a tool that > > is not mature enough to the standard distribution is a bad idea. > > Not if it is optional, like the ocamlbuild tool for example. > > > Mehnir is clearly the "official" candidate for replacement of > > CamlYacc, without yet being mandatory. This gives you the time to > > port, criticize and ask for improvements. Look the mess that happened > > with CamlP4 which didn't follow this pattern. > > There do indeed appear to be some issues with camlp4. > However what was done was the 'right thing' despite that -- > IMHO of course. > > First: few would have tested it, given the incompatibilities, > it it were not forced onto the market. > > Second: Ocaml 3.10 is still in beta, and the author(s) of > camlp4 *needed* the feedback and participation from the community. > > Third: the community wanted a better camlp4: this is the price, > and I believe most people using camlp4 are willing to help > and get it working. I wanted to start this as dedicated thread, but let's do it now. The current situation with camlp4 3.10-beta is terrible. Not because the new camlp4 is not good or anything, but because it is not compatible with the old one and yet replaces it. Replacing the old one by the new one in the next release of OCaml is practically unmanageable because: 1) Source duplication is unavoidable 2) Upgrading to the new camlp4 is not automatic The direct consequences are that it will take time until all syntax extensions support camlp4/ocaml 3.10, and probably anything new will work with either ocaml 3.09 or 3.10, but not both. I started upgrading some of my non-trivial syntax extensions already. It's ok to translate a file once, but I'll be adding new features and I don't know if I should continue to support ocaml 3.09 or ocaml 3.10. Even though I want to support both, I can't because it takes twice the time and it's pretty boring. A smooth transition would be much preferrable. I acknowledge that I don't know how make it possible to use syntax extensions using the old and the new camlp4 on a same ocaml source file, but for those using only one extension or several extensions using the same version of camlp4, it would be convenient if it just works. It could go like "the old camlp4 is deprecated, and support will be dropped completely [one year after the first stable-and-documented release of camlp4 3.10]" * It means two versions of camlp4 would be distributed and installed with ocaml 3.10. * Command names for the new camlp4 would be distinct from the old camlp4. * Old programs would still compile and work without having to patch makefiles. * Upgraded programs could add new features only to the 3.10 version, while maintaining minimal support (bug fixes) for the 3.09 version, without forcing the camlp4 programmer to use ocaml 3.09 for testing. * New programs could support only the new camlp4. Does that make sense? Camlp4 is such a great tool, it would be sad to loose some users just because of compatibility uncertainties. Martin -- Martin Jambon http://martin.jambon.free.fr