From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id 9FCBC7EEAF for ; Thu, 24 Jan 2013 15:31:01 +0100 (CET) Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of alain@frisch.fr) identity=pra; client-ip=193.252.23.211; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="alain@frisch.fr"; x-sender="alain@frisch.fr"; x-conformance=sidf_compatible Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of alain@frisch.fr) identity=mailfrom; client-ip=193.252.23.211; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="alain@frisch.fr"; x-sender="alain@frisch.fr"; x-conformance=sidf_compatible Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@msa.smtpout.orange.fr) identity=helo; client-ip=193.252.23.211; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="alain@frisch.fr"; x-sender="postmaster@msa.smtpout.orange.fr"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AogAAOtDAVHB/BfTlGdsb2JhbABEgzi7Jg4BAQEBCQsJCRQDJIIgBgEBNTYKATwWGAMCAQIBFQE1DQEHAQEQB4gDCL4AkHsDi1KHB4EFgi6BHIRPboxo X-IPAS-Result: AogAAOtDAVHB/BfTlGdsb2JhbABEgzi7Jg4BAQEBCQsJCRQDJIIgBgEBNTYKATwWGAMCAQIBFQE1DQEHAQEQB4gDCL4AkHsDi1KHB4EFgi6BHIRPboxo X-IronPort-AV: E=Sophos;i="4.84,529,1355094000"; d="scan'208";a="103624" Received: from msa02.smtpout.orange.fr (HELO msa.smtpout.orange.fr) ([193.252.23.211]) by mail2-smtp-roc.national.inria.fr with ESMTP; 24 Jan 2013 15:31:01 +0100 Received: from [192.168.1.105] ([90.2.82.74]) by mwinf5d07 with ME id rqX01k00V1cCdve03qX0Xj; Thu, 24 Jan 2013 15:31:00 +0100 Message-ID: <510145A5.6030807@frisch.fr> Date: Thu, 24 Jan 2013 15:31:01 +0100 From: Alain Frisch User-Agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:17.0) Gecko/20130107 Thunderbird/17.0.2 MIME-Version: 1.0 To: caml-list CC: wg-camlp4@lists.ocaml.org, Leo P White , Anil Madhavapeddy Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: [Caml-list] Working Group: the future of syntax extensions in OCaml, after camlp4 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