From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by walapai.inria.fr (8.13.6/8.13.6) with ESMTP id pBB9arhj009725 for ; Sun, 11 Dec 2011 10:36:53 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvoAAKh45E5KfVM2kGdsb2JhbABDhDdQpW8IIgEBAQEJCQ0HFAQhgXIBAQEEDAYCDw8BDQEbEQsCAwwGAwILDQICBRYLAgIJAwIBAgEREQEFARwTCAIQDodomCYKixxIgmuDfD2IcQIFDIEoiSOBFgSUcYVLgTSGcj2Dew X-IronPort-AV: E=Sophos;i="4.71,334,1320620400"; d="scan'208";a="122901761" Received: from mail-ee0-f54.google.com ([74.125.83.54]) by mail4-smtp-sop.national.inria.fr with ESMTP/TLS/RC4-SHA; 11 Dec 2011 10:36:47 +0100 Received: by eekc50 with SMTP id c50so2996557eek.27 for ; Sun, 11 Dec 2011 01:36:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:x-enigmail-version:content-type :content-transfer-encoding; bh=V7oEn5loBfrNhvRxub3IIv3Aq4861eDTevOINMZPt7g=; b=s3owOMwC9owwKd42tx7dGlAZHZr+sML0nogtblbqR+hdovk3Vb0WB8wj+N1pIPkWg3 oSIzKOawQwC5i7arYOGDrWzRcjU+uPZr/uzOjJp8Lu1NERN6s5mY5m0eMI8fN69AlneD lzjAAgfRXuc3mUWI7rn7Y3vXmOedW2usFYvc0= Received: by 10.14.16.165 with SMTP id h37mr1926250eeh.115.1323596206829; Sun, 11 Dec 2011 01:36:46 -0800 (PST) Received: from [192.168.1.101] ([79.114.97.29]) by mx.google.com with ESMTPS id z54sm58401305eeh.5.2011.12.11.01.36.44 (version=SSLv3 cipher=OTHER); Sun, 11 Dec 2011 01:36:45 -0800 (PST) Message-ID: <4EE479AB.2010302@gmail.com> Date: Sun, 11 Dec 2011 11:36:43 +0200 From: =?UTF-8?B?VMO2csO2ayBFZHdpbg==?= User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.24) Gecko/20111114 Icedove/3.1.16 MIME-Version: 1.0 To: caml-list@inria.fr References: <55531934-37A5-4CC5-AB67-20CE4CCE8269@googlemail.com> <4EE37070.4010702@inria.fr> <1323541702.32136.8.camel@aurora> <1323550544.32136.19.camel@aurora> <4EE47208.1090506@glondu.net> In-Reply-To: <4EE47208.1090506@glondu.net> X-Enigmail-Version: 1.1.2 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: Re: [Caml-list] Camlp4/p5 type reflection [was: OCaml maintenance status / community fork (again)] On 12/11/2011 11:04 AM, Stéphane Glondu wrote: > Le 11/12/2011 00:34, Gabriel Scherer a écrit : >> The original Camlp4 tool was mostly developped by Daniel de >> Rauglaudre. >> [...] >> (I'm thinking of >> eg. Martin Jambon, which had extensive Camlp4 extensions, and the Coq >> team which has user-defined notations using Camlp4 and, huh, I really >> don't want to know the details); basically they didn't upgrade to >> 3.10 -- instead of porting the extensions, as was originally hoped. >> [...] >> Daniel, which apparently did not agree with some of the changes made, >> relatively suddenly restarted developpment of "his" branch of Camlp4, >> taken from the old sources, before refactoring. This was done as >> a separate project, outside the OCaml distribution (apparently Daniel >> and the OCaml team prefer not to work together). >> [...] >> Camlp4 is a piece of devil beauty. It does incredibly clever things, >> and is incredibly complex inside: Daniel is clearly a remarkable >> hacker, but his code is not easy to understand. I know that >> maintaining the whole thing is very hard; and that is the reason why >> Camlp4 tends to have problems to bump from one version to another, >> when non-neglectible syntaxic changes are made to the language. >> [...] >> (And I'm not sure it's a good idea to move Camlp4 out of the >> distribution as long as we don't have a viable alternative proposal >> and some users have started moving to it. Camlp4 will still need to be >> supported by someone anyway, and it needs to evolve in lockstep with >> OCaml language changes.) > > Coq has been adapted to work with both camlp4 and camlp5. In my > experience, Daniel has been much more responsive on camlp5 matters than > the OCaml team on camlp4 matters. And Xavier's mail suggests that camlp4 > is a maintenance burden for the OCaml team. > > Why is it such a bad idea to drop camlp4 out of the distribution, and > just let camlp5 live? My feeling is that people using camlp5 care about > it, but people using camlp4 do so just because it's in the official > distribution and wouldn't care switching to camlp5 (or stop using this > kind of syntax extension) if camlp4 was officially deprecated in favor > of camlp5. At worst, someone will start maintaining camlp4 independently. > > Daniel already maintains and develops camlp5. I guess Jérémie would also > volunteer to join him (but he already offered to maintain camlp4 > independently). In Debian, there are currently 49 packages depending on > camlp4, and 7 depending on camlp5. That also increases incentive / > possible help for maintaining it. There's another use of camlp4 besides syntax extensions: better syntax errors, and the alternate syntax. While learning OCaml I've used camlp4o quite a few times to figure out what is wrong with the code, as ocamlc just gives you a location and "Syntax error", In fact learning the alternate syntax, and using camlp4r was easier for me, because the syntax errors were closer to the actual place of the error. With the original syntax the errors are often reported late, for example a typo of ";" instead of ";;" can cause syntax errors to be reported in what you'd consider to be another function. Eventually I learned how the original syntax works, but I still find camlp4o to be a time saver sometimes. If camlp4 is dropped from the core distribution can these improved syntax error messages be merged into the core parser? Also what will happen with the alternate syntax? Best regards, --Edwin