Mailing list for all users of the OCaml language and system.
 help / color / mirror / Atom feed
From: "Török Edwin" <edwintorok@gmail.com>
To: caml-list@inria.fr
Subject: Re: [Caml-list] Camlp4/p5 type reflection [was: OCaml maintenance status / community fork (again)]
Date: Sun, 11 Dec 2011 11:36:43 +0200	[thread overview]
Message-ID: <4EE479AB.2010302@gmail.com> (raw)
In-Reply-To: <4EE47208.1090506@glondu.net>

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

  reply	other threads:[~2011-12-11  9:36 UTC|newest]

Thread overview: 78+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-08  9:10 [Caml-list] OCaml maintenance status / community fork (again) Benedikt Meurer
2011-12-08  9:54 ` Alain Frisch
2011-12-08 10:28   ` Benedikt Meurer
2011-12-08 10:46     ` Alain Frisch
2011-12-08 11:08       ` Benedikt Meurer
2011-12-08 16:42       ` Fabrice Le Fessant
2011-12-08 10:47     ` ivan chollet
2011-12-08 14:07       ` oliver
2011-12-08 11:11     ` Pierre-Alexandre Voye
2011-12-08 18:18       ` Török Edwin
2011-12-09 21:42         ` oliver
2011-12-08 10:16 ` Gabriel Scherer
2011-12-08 11:07 ` Stéphane Glondu
2011-12-09  2:11 ` Jacques Garrigue
2011-12-09 10:37   ` Jérémie Dimino
2011-12-09 11:03     ` Gabriel Scherer
2011-12-09 11:17       ` Stefano Zacchiroli
2011-12-09 11:50         ` Jonathan Protzenko
2011-12-09 12:36           ` Alain Frisch
2011-12-09 23:22         ` Goswin von Brederlow
2011-12-09 22:33       ` oliver
2011-12-09 14:24     ` Benedikt Meurer
2011-12-09 17:00       ` Mehdi Dogguy
2011-12-09 17:36         ` Benedikt Meurer
2011-12-09 17:45           ` Mehdi Dogguy
2011-12-09 23:24             ` Goswin von Brederlow
2011-12-10  9:31               ` Benedikt Meurer
2011-12-10 14:45 ` Xavier Leroy
2011-12-10 15:58   ` Benedikt Meurer
2011-12-12 10:21     ` Xavier Leroy
2011-12-12 10:59       ` Benedikt Meurer
2011-12-12 12:20         ` Mehdi Dogguy
2011-12-12 15:17           ` Goswin von Brederlow
2011-12-19  4:09           ` Romain Beauxis
2011-12-19 17:35             ` Alain Frisch
2011-12-12 12:57         ` Gerd Stolpmann
2011-12-10 17:06   ` Török Edwin
2011-12-10 18:28   ` Jérémie Dimino
2011-12-10 18:34     ` Wojciech Meyer
2011-12-10 19:10       ` Wojciech Meyer
2011-12-10 20:55         ` Jérémie Dimino
2011-12-10 21:40           ` [Caml-list] Camlp4/p5 type reflection [was: OCaml maintenance status / community fork (again)] Wojciech Meyer
2011-12-10 23:34             ` Gabriel Scherer
2011-12-11  0:47               ` [Caml-list] Camlp4/p5 type reflection [ Wojciech Meyer
2011-12-11 11:19                 ` Gabriel Scherer
2011-12-11 18:14                   ` Jérémie Dimino
2011-12-11  9:04               ` [Caml-list] Camlp4/p5 type reflection [was: OCaml maintenance status / community fork (again)] Stéphane Glondu
2011-12-11  9:36                 ` Török Edwin [this message]
2011-12-11 10:29                 ` Gabriel Scherer
2011-12-11 11:23                   ` Gerd Stolpmann
2011-12-11 11:38                     ` Gabriel Scherer
2011-12-11 10:20               ` Fabrice Le Fessant
2011-12-11 10:47                 ` Gabriel Scherer
2011-12-11 13:27               ` Alain Frisch
2011-12-11 13:35                 ` Gabriel Scherer
2011-12-11 13:42                   ` Alain Frisch
2011-12-11 13:36                 ` Arnaud Spiwack
2011-12-11 13:46                 ` Stéphane Glondu
2011-12-10 23:28   ` [Caml-list] OCaml maintenance status / community fork (again) Jesper Louis Andersen
2011-12-11 11:02     ` Gerd Stolpmann
2011-12-13 19:36       ` oliver
2011-12-14 12:13         ` Gerd Stolpmann
2011-12-16 10:03           ` Stéphane Glondu
2011-12-11 13:33   ` Goswin von Brederlow
2011-12-11 13:59     ` [Caml-list] Community distribution [was: OCaml maintenance status / community fork (again)] Benedikt Meurer
2011-12-12 17:48   ` [Caml-list] OCaml maintenance status / community fork (again) Stéphane Glondu
2011-12-13 20:39     ` [Caml-list] New experimental ARM backend [was: OCaml maintenance status / community fork (again)] Benedikt Meurer
2011-12-14  9:18       ` Mark Shinwell
2011-12-14 21:51         ` Benedikt Meurer
2011-12-18 11:57       ` [Caml-list] " Benedikt Meurer
2011-12-18 13:08         ` Benedikt Meurer
2011-12-18 14:50           ` Alexandre Pilkiewicz
2011-12-18 16:42             ` Benedikt Meurer
2011-12-18 17:23           ` Stéphane Glondu
2011-12-21 10:11             ` [Caml-list] " Benedikt Meurer
2011-12-18 13:16         ` [Caml-list] " Benedikt Meurer
2011-12-17 18:36   ` [Caml-list] OCaml maintenance status / community fork (again) Stéphane Glondu
2011-12-18  4:25     ` Till Varoquaux

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4EE479AB.2010302@gmail.com \
    --to=edwintorok@gmail.com \
    --cc=caml-list@inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox