From: "Markus Mottl" <markus.mottl@gmail.com>
To: "Martin Jambon" <martin.jambon@ens-lyon.org>
Cc: skaller <skaller@users.sourceforge.net>,
"Diego Olivier FERNANDEZ PONS" <diego.fernandez_pons@etu.upmc.fr>,
caml-list@inria.fr
Subject: Re: new+old Camlp4 (was Re: [Caml-list] Bug in ocamlyacc)
Date: Wed, 25 Apr 2007 13:11:13 -0400 [thread overview]
Message-ID: <f8560b80704251011n6a24fc9aq69a6fff46427c143@mail.gmail.com> (raw)
In-Reply-To: <Pine.LNX.4.58.0704241231220.19902@localhost>
On 4/24/07, Martin Jambon <martin.jambon@ens-lyon.org> wrote:
> 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
And:
3) Documentation for the new camlp4 is almost non-existent.
> 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 am not so concerned about the 3.09 compiler not working with the new
macro syntax, because presumably people will upgrade somewhat quickly
anyway. Unless... they depend on old syntax extensions that have not
been rewritten yet.
Very substantial parts of our code base depend on non-trivial Camlp4
macros, and it is a lot of tedious work to rewrite those. Even though
it's a huge PITA, we could live with the lack of backwards
compatibility as long as there were at least sufficient documentation
to support a quick transition. I am also currently working on a new
non-trivial extension, and haven't started writing the macro part yet
in the hope that documentation will soon be available to improve my
productivity.
It seems reasonable to predict that many people won't (be able to)
upgrade to 3.10 for the reasons explained by Martin. I can't imagine
that INRIA wants to make a release that has a hard time of being
accepted by the community. This would be a waste of INRIA's
resources, too.
I'd therefore strongly suggest that INRIA plan more carefully how to
make the next release. From my point of view, the best way would be
to provide sufficient documentation in advance to allow Camlp4
developers to rewrite their macros in time. It would be a great
advantage, too, if the old Camlp4 supported any new syntax (not
extensions, just the base language; there are probably very few
changes anyway) so that people have at least a short reprieve during
which they can just use an old camlp4 installation before they are
forced to upgrade their macros for future OCaml-releases.
> 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.
Indeed...
> 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]"
Sounds reasonable.
> * It means two versions of camlp4 would be distributed and installed with
> ocaml 3.10.
This would surely be helpful, but I don't think that this is
absolutely necessary. It isn't horribly hard to have two
OCaml-installations, and refer to the old camlp4 where necessary.
> * 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.
Maintaining a second OCaml-installation would certainly be a bigger
problem if the macro code itself refers to a lot of external packages
(this may be rare), which may then need to be maintained in a
separation installation, too.
It would surely be most helpful for the community if both good
documentation were available, and a backwards compatible camlp4
version were provided. If there are limited resources at INRIA that
prevent solving both problems, my preference is that they be invested
in the former rather than the latter...
Regards,
Markus
--
Markus Mottl http://www.ocaml.info markus.mottl@gmail.com
next prev parent reply other threads:[~2007-04-25 17:11 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-04-23 22:03 Bug in ocamlyacc David Allsopp
2007-04-24 5:29 ` [Caml-list] " skaller
2007-04-24 10:23 ` Diego Olivier FERNANDEZ PONS
2007-04-24 12:06 ` ls-ocaml-developer-2006
2007-04-24 18:25 ` skaller
2007-04-24 20:17 ` new+old Camlp4 (was Re: [Caml-list] Bug in ocamlyacc) Martin Jambon
2007-04-24 21:38 ` Yaron Minsky
2007-04-24 22:53 ` new+old Camlp4 ls-ocaml-developer-2006
2007-04-25 1:03 ` new+old Camlp4 (was Re: [Caml-list] Bug in ocamlyacc) skaller
2007-04-25 2:29 ` Daniel de Rauglaudre
2007-04-25 17:11 ` Markus Mottl [this message]
2007-04-26 3:00 ` skaller
2007-04-27 9:15 ` new+old Camlp4 Xavier Leroy
2007-04-27 13:43 ` Markus Mottl
2007-05-02 8:03 ` [Caml-list] " Hendrik Tews
2007-04-24 14:32 ` [Caml-list] Bug in ocamlyacc Francois Pottier
2007-04-24 18:59 ` skaller
2007-04-24 19:59 ` Francois Pottier
2007-04-27 15:56 ` brogoff
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=f8560b80704251011n6a24fc9aq69a6fff46427c143@mail.gmail.com \
--to=markus.mottl@gmail.com \
--cc=caml-list@inria.fr \
--cc=diego.fernandez_pons@etu.upmc.fr \
--cc=martin.jambon@ens-lyon.org \
--cc=skaller@users.sourceforge.net \
/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