[ocaml-infra] Fwd: [Caml-list] Working Group: the future of syntax extensions in OCaml, after camlp4
Anil Madhavapeddy
anil at recoil.org
Thu Jan 24 14:56:06 GMT 2013
This is going to be the first of several working groups (to be opened one at a time to avoid overload). Others are wg-parallel (multicore/distributed programming), wg-build (build systems), and anything else proposed by the community.
The intention behind a working group is something that needs people across the community to work on, but that has a specific end goal when it can be wrapped up. Each WG is chaired by a couple of people who can arbitrate as needed.
Therefore, platform and infrastructure won't be working groups: they are ongoing efforts.
Firstly, is there agreement on this approach, and secondly, what's the best way to reflect this on ocaml.org?
-anil
Begin forwarded message:
> From: Alain Frisch <alain at frisch.fr>
> Subject: [Caml-list] Working Group: the future of syntax extensions in OCaml, after camlp4
> Date: 24 January 2013 14:31:01 GMT
> To: caml-list <caml-list at inria.fr>
> Cc: wg-camlp4 at lists.ocaml.org, Leo P White <lpw25 at cam.ac.uk>, Anil Madhavapeddy <avsm2 at cl.cam.ac.uk>
>
> 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
>
> --
> Caml-list mailing list. Subscription management and archives:
> https://sympa.inria.fr/sympa/arc/caml-list
> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
> Bug reports: http://caml.inria.fr/bin/caml-bugs
>
More information about the Infrastructure
mailing list