caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Gerd Stolpmann <info@gerd-stolpmann.de>
To: Gabriel Scherer <gabriel.scherer@gmail.com>
Cc: "Stéphane Glondu" <steph@glondu.net>,
	"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 12:23:53 +0100	[thread overview]
Message-ID: <1323602633.6079.49.camel@samsung> (raw)
In-Reply-To: <CAPFanBHchv1+_k5P-+s4QTZPRRnj_tuy8HAOKZYxWsOrVNy_fw@mail.gmail.com>

Many people are still frustrated with the camlp4/p5 situation. IMHO, we
should give up on camlp4 inside the distribution, and only implement a
few of its features in the regular parser:

- Antiquotation syntax (i.e. << >> expressions) because this makes it
  very easy to incorporate foreign syntax elements. Of course, we
  would also need the ability to recursively invoke the ocaml parser
  for parts of the antiquoted expression (this would also open the
  door for transformations of the AST).

- A simple macro language (ifdef at least), for the cases antiquotations
  would be too complex.

That means we would give up on arbitrary syntax extensions in the core
distribution. There could be still camlp4 or p5 as a separate add-on,
but it will be a second-class citizen, and it would be clear that it is
a bit behind with the newest syntactical features. Also, it could be
developed outside the core team.

Gerd


Am Sonntag, den 11.12.2011, 11:29 +0100 schrieb Gabriel Scherer:
> > 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
> >
> 
> 




  reply	other threads:[~2011-12-11 11:26 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
2011-12-11 11:23                   ` Gerd Stolpmann [this message]
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=1323602633.6079.49.camel@samsung \
    --to=info@gerd-stolpmann.de \
    --cc=Xavier.Leroy@inria.fr \
    --cc=caml-list@inria.fr \
    --cc=gabriel.scherer@gmail.com \
    --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;
as well as URLs for NNTP newsgroup(s).