From: Gabriel Scherer <gabriel.scherer@gmail.com>
To: "Stéphane Glondu" <steph@glondu.net>
Cc: "Wojciech Meyer" <wojciech.meyer@googlemail.com>,
"Jérémie Dimino" <jeremie@dimino.org>,
caml-list@inria.fr, "Xavier Leroy" <Xavier.Leroy@inria.fr>
Subject: Re: [Caml-list] Camlp4/p5 type reflection [was: OCaml maintenance status / community fork (again)]
Date: Sun, 11 Dec 2011 11:29:58 +0100 [thread overview]
Message-ID: <CAPFanBHchv1+_k5P-+s4QTZPRRnj_tuy8HAOKZYxWsOrVNy_fw@mail.gmail.com> (raw)
In-Reply-To: <4EE47208.1090506@glondu.net>
> 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?
First of all, I don't have a strong opinion here: I just voiced
doubt. My reasoning for going so goes along two lines of argument:
1. I'm not exactly sure how Camlp4 being in or out of the distribution
will change the maintainance burden. The main maintainance
difficulty with camlp{4,5} is that it needs to evolve its own
parser in parallel with the 'official' one (that's by design), with
changes to the language syntax. You need to change Camlp{4,5} when
Ocaml 3.N+1 introduces a new syntax, or it won't be usable on OCaml
3.N+1 code.
There are already users relying on Camlp{4,5}, and those user
generally wish to use the new, exciting features of the next
version. If they can't, they will complex, regardless of whether
their preprocessor is in or out the distribution. That means that
when the OCaml team is about to release a new version with
syntactic changes, they have to worry about the preprocessor
anyway, or make users unhappy.
So there is a "preprocessor burden" on the OCaml team, independently
of where the code is maintained and located. If the change means
"make it easier to distribute camlp4 fixes without bumping OCaml's
version number", why not. If it means "now we won't care about
Camlp4 state before releasing a new versions", this may mean
a degradation in the life of Camlp4 users. I doubt that's the idea.
Being in or out the distribution also wouldn't change much, I think,
the possibility of external contributions. In my experience Nicolas
Pouillard and now Xavier Clerc have a good track record of
integrating external contributions (I have sent one or two bugfixes
on the tracker), and I'm confident they would be able to work with
Jérémie Dimino if he wished to contribute to camlp4's evolution more
frequently.
2. I suppose -- purely personal guess -- the intention being the
consortium's suggestion is to try to move away slowly from
Camlp{4,5}, towards alternatives such as Alain Frisch's
"annotations" proposal. As I said previously, I would personally
welcome such a move, but I don't see said alternatives released
yet. I haven't had the opportunity to play with alternate tools,
have an idea of how a transition would work out, see if the
documentation is reasonably complete, etc.
It would make more sense, in my opinion, to downplay camlp{4,5}
*once* we have played with alternatives and are confident that they
are mature enough to make a transition.
Please also remember that the consortium members represent
relatively large, well-educated, experienced players in the OCaml
community. It probably wouldn't bother them much if, say,
ocamlbuild, ocamldoc, or ocamldbg where taken out of the official
distribution. They have important tooling in place and would adapt
relatively easily. The end user or OCaml beginner may not adapt to
such changes that easily. Now this is a matter where distributions,
such as Debian, can be of great help, by providing "complete"
packages regardless of what is or isn't in the official
distribution. However, I have handled just enough users reports
wondering why they didn't have "camlp4o" available, or
graphics.cma, or whatever, to know that this can also be a barrier
to use and adoption.
Again, no strong opinion. I will welcome any change that strenghten
the OCaml language. If you think distributing camlp4 out of the
distribution would ease the live of OCaml developpers and maintainers,
at no cost to the users, nor complicating the distribution side, then
all is good. I just feel that it may be a bit too soon.
On Sun, Dec 11, 2011 at 10:04 AM, Stéphane Glondu <steph@glondu.net> 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.
>
>
> Cheers,
>
> --
> Stéphane
>
next prev parent reply other threads:[~2011-12-11 10:30 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
2011-12-11 10:29 ` Gabriel Scherer [this message]
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=CAPFanBHchv1+_k5P-+s4QTZPRRnj_tuy8HAOKZYxWsOrVNy_fw@mail.gmail.com \
--to=gabriel.scherer@gmail.com \
--cc=Xavier.Leroy@inria.fr \
--cc=caml-list@inria.fr \
--cc=jeremie@dimino.org \
--cc=steph@glondu.net \
--cc=wojciech.meyer@googlemail.com \
/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