caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Alain Frisch <alain@frisch.fr>
To: caml-list <caml-list@inria.fr>
Cc: wg-camlp4@lists.ocaml.org, Leo P White <lpw25@cam.ac.uk>,
	 Anil Madhavapeddy <avsm2@cl.cam.ac.uk>
Subject: [Caml-list] Working Group: the future of syntax extensions in OCaml, after camlp4
Date: Thu, 24 Jan 2013 15:31:01 +0100	[thread overview]
Message-ID: <510145A5.6030807@frisch.fr> (raw)

Dear caml-list,

There is a growing opinion that camlp4 is overly complex considering the 
benefits it brings to OCaml developers.  I would personally go as far as 
to say that the future of OCaml and the OCaml community would be 
brighter if camlp4 could be removed from our "basic ecosystem".  In 
particular, most of the current uses of camlp4 to create syntax 
extensions could probably be replaced by the new "-ppx" technology (see 
below) and small extensions to the compilers.

A lot needs to happens for this camlp4-free OCaml ecosystem to become a 
reality and we have to come up with a solid transition plan.  A new 
community-driven working group, chaired by Leo White and me, is being 
set up today to elaborate this plan.  If this topic is of interest to 
you, please join our mailing list:

   http://lists.ocaml.org/listinfo/wg-camlp4


Some of the most important tasks for our new working group will be:

  - Gather information from the community about the use of camlp4.
    (Please consider sharing information about your use of camlp4
    and camlp4-based extensions, even if you don't plan to participate
    to the working group discussions!)

  - Finalize support for -ppx and make technical proposals for
    extensions of the OCaml compilers in order to enable a transition of
    camlp4-based extensions to -ppx (in particular, we need to come up
    with a concrete syntax for generic extension points in the grammar).

  - Write some "canonical" examples of extensions based on -ppx and
    provide information and support to developers of extensions for
    switching from camlp4 to -ppx.

  - Discuss integration of -ppx with existing tools (findlib, build
    systems, etc).

  - Find a solution in the community for the future of camlp4
    (in particular, discuss how / how long / by who it will be
    maintained).

  - Discuss longer-terms plans beyond -ppx, including extra language
    support, to facilitate light syntactic meta-programming for OCaml
    (Leo has some clever ideas!).



The discussion on the mailing list will start in a few days, to give 
some time for interested people to join.  In the meanwhile, Leo has 
written a blog post to get the discussion started:

  http://www.lpw25.net/2013/01/23/camlp4-alternative-part-1.html

You can also read about -ppx:

  http://www.lexifi.com/blog/syntax-extensions-without-camlp4
  http://www.lexifi.com/blog/syntax-extensions-without-camlp4-lets-do-it

Some projects have already started to replace camlp4 by -ppx:

   bisect (supports both camlp4 and ppx since version 1.3)
   sedlex (unicode-friendly lexer generator, successor of ulex)
   omonad (syntax for monadic code, similar to pa_monad)


Many thanks to Anil Madhavapeddy and to OCamlLabs for setting up the 
working group and its mailing list!


Alain

             reply	other threads:[~2013-01-24 14:31 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-24 14:31 Alain Frisch [this message]
2013-01-24 15:52 ` Török Edwin
2013-01-24 15:56   ` Ashish Agarwal
2013-01-24 16:03   ` Esther Baruk
2013-01-24 15:57 ` Daniel Bünzli
2013-01-24 16:24   ` AW: " Gerd Stolpmann
2013-01-28 12:15     ` Alain Frisch
2013-01-28 12:17       ` [wg-camlp4] " Alain Frisch
2013-02-03 14:01       ` AW: " Jon Harrop
2013-02-03 14:38         ` Simon Cruanes
2013-01-24 16:16 ` rixed
2013-01-24 17:08   ` Alain Frisch
2013-01-24 18:06     ` Jacques Carette

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=510145A5.6030807@frisch.fr \
    --to=alain@frisch.fr \
    --cc=avsm2@cl.cam.ac.uk \
    --cc=caml-list@inria.fr \
    --cc=lpw25@cam.ac.uk \
    --cc=wg-camlp4@lists.ocaml.org \
    /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).