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 mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by sympa.inria.fr (Postfix) with ESMTPS id 405DF7ED7A for ; Tue, 18 Sep 2012 21:11:40 +0200 (CEST) Received-SPF: None (mail1-smtp-roc.national.inria.fr: no sender authenticity information available from domain of bobzhang1988@gmail.com) identity=pra; client-ip=209.85.223.182; receiver=mail1-smtp-roc.national.inria.fr; envelope-from="bobzhang1988@gmail.com"; x-sender="bobzhang1988@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail1-smtp-roc.national.inria.fr: domain of bobzhang1988@gmail.com designates 209.85.223.182 as permitted sender) identity=mailfrom; client-ip=209.85.223.182; receiver=mail1-smtp-roc.national.inria.fr; envelope-from="bobzhang1988@gmail.com"; x-sender="bobzhang1988@gmail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail1-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-ie0-f182.google.com) identity=helo; client-ip=209.85.223.182; receiver=mail1-smtp-roc.national.inria.fr; envelope-from="bobzhang1988@gmail.com"; x-sender="postmaster@mail-ie0-f182.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AsABACzGWFDRVd+2m2dsb2JhbABFvDoIIwEBAQEBCAkLCRQngiUUAgkjARsdAQMSEF0BEQEFASIbDA6HTgEDDAubWgkDjCWCc4UlChknDVmIdAEFDJF/A5VjjkIWKYQi X-IronPort-AV: E=Sophos;i="4.80,444,1344204000"; d="scan'208";a="173710258" Received: from mail-ie0-f182.google.com ([209.85.223.182]) by mail1-smtp-roc.national.inria.fr with ESMTP/TLS/RC4-SHA; 18 Sep 2012 21:11:39 +0200 Received: by iea17 with SMTP id 17so442972iea.27 for ; Tue, 18 Sep 2012 12:11:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:cc:content-type; bh=0Ei1JqNT1HsqL6rEKZAhcqf6orDBGvAfwJiWQytNPy4=; b=qb+i9NXOuGfG8eZl4DdrxjKTFAM0P/POyYpPSv+omrSQsE6Qo2YUVBSnMOyFZgOsnn KAc9a/TN5IIZp1+CcvYbDsHPocSBRZ6Ch31CL9SnEw+HogiZuv1w1+JPUFDcuoUzRLx9 8FezRse22SoW3LpXp2NZXgo29mk1rE7/lLmZCaBPg7UdWHbTdcS6rFHMiTD8e999+oj6 +cUoAhJPjHxVm8zJ73UBEdb8P40/RsNjBNQklG1pRHDLq5q/GmyDz0C72QphQEigAs2V yar87T3fA7VhRy59BgrddW8CXbcFdPHYgiu3C0SbNL1f6+FP+mUYSF0aPjs/FHjMOz3Q wpFA== MIME-Version: 1.0 Received: by 10.50.41.132 with SMTP id f4mr656088igl.39.1347995498085; Tue, 18 Sep 2012 12:11:38 -0700 (PDT) Received: by 10.64.70.2 with HTTP; Tue, 18 Sep 2012 12:11:38 -0700 (PDT) Date: Tue, 18 Sep 2012 15:11:38 -0400 Message-ID: From: bob zhang To: Caml List Cc: Steve Zdancewic Content-Type: multipart/alternative; boundary=14dae9340f65d27bba04c9fea8c3 Subject: [Caml-list] Call for collaboration on the future of camlp4 --14dae9340f65d27bba04c9fea8c3 Content-Type: text/plain; charset=ISO-8859-1 Dear OCaml programmers, Last week, I give a talk about the future of Camlp4 in the ML workshop, the slides are here http://www.lexifi.com/ml2012/slides_panel_hongbo.pdf(some are already done, some are work in progress). For a long time, in the caml community, thanks to the talented work of Daniel and Michel, we know there is a very very powerful tool called *camlp4*, if there are some bolierpolate code you write here and there, someone will tell you "hey, you can do it in camlp4" though he may not know how to do it in camlp4. But it's a bit embarassing that camlp4 did not evolve very well(partly due to the fragmentation of camlp[4,5]), another fact is that camlp4 is not *designed*, it's like a prototype that works but not carefully designed, and it does not provide anything out of the box and itself was written in a verbose way. It's time to bring the powerful tool back, my advisor Steve and I started a new project Fan, which is mainly to evolve the camlp4 macro system to be more expressive and more powerful, push the Camlp4 to the next level. For me, I am a long-term Lisp programmer, I appreciated the value of macros, I would really be happy to see we could make a such powerful macro systems. Here is my repo https://bitbucket.org/HongboZhang/camlp4 I already finished some cool staff, to mention just a few: 1. A very robust bootstrapping system, previously it takes me 20 minutes to ver*ify my patches to camlp4 can reach a fixpoint or not, but now you can compile your modification within seconds, and reach a fixpoint under 2 minutes, this accelerate the development cycles immediately.* * 2. Now you can customize your lexer now, previously it's impossible( and a number of bug fixes) you can do deep anti-quotation like * * <:expr< <:expr< $($(deepantiquot)) >> >> * 3. Linking the compiler and a number of cool features (see the slides) 4. A macro which write macros to scrap all the bolierpolate code for generic programming, now you can customize your deriving stuff in ten lines (previously thousands of lines of code to write camlp4 plugin) 5. A number of mini-DSLs and more to be expected I love macros, I would commit to the project for a long time(probably my Ph.D term), I promise that I would write the documentation to make users happy( I am also writing a book about macros, it's un-readable though). And I am really happy to co-laborate with anyone who love camlp4. Syntax matters, if you see that coffescript is now already a success, camlp4 or Fan is actually more expressive than that, Dear ocaml programmers, let us find a way to make ocaml more beautiful. I am also open minded to any discussion about the future of camlp4 Many thanks (sorry for my bad English) -- Regards -- Bob --14dae9340f65d27bba04c9fea8c3 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Dear OCaml programmers,
=A0 =A0Last week, I give a talk about the futur= e of Camlp4 in the ML workshop, the slides are here http://www.lexifi.com/ml2012/slid= es_panel_hongbo.pdf (some are already done, some are work in progress).=
=A0 =A0For a long time, in the caml community, thanks to the talented = work of Daniel and Michel, =A0we know there is a very very powerful tool ca= lled *camlp4*, if there are some bolierpolate code you write here and there= , someone will tell you "hey, you can do it in camlp4" though he = may not know how to do it in camlp4.=A0
=A0 =A0But it's a bit=A0embarassing that camlp4 did not evolve ver= y well(partly due to the fragmentation of camlp[4,5]), another fact is that= camlp4 is not *designed*, it's like a prototype that works but not car= efully designed, and it does not provide anything out of the box =A0and its= elf was written in a verbose way.
=A0 =A0It's time to bring the powerful tool back, my advisor Steve= and I started a new project Fan, which is mainly to evolve the camlp4 macr= o system to be more expressive and more powerful, push the Camlp4 to the ne= xt level. For me, I am a long-term Lisp programmer, I appreciated the value= of macros, I would really be happy to see we could make a such powerful ma= cro systems.
=A0 =A0= I already finished some cool staff, =A0to mention just a few:
=A0= =A01. A very robust bootstrapping system, previously it takes me 20 minute= s to verify my patches to camlp4 can reach a fixpoint or not, but now yo= u can compile your modification within seconds, and reach a fixpoint under = 2 minutes, this accelerate the development cycles immediately.
=A0 =A02. Now you can customize your lexer now, previously it's= impossible( and a number of bug fixes) you can do deep anti-quotation like= =A0
=A0 <:expr< <:expr< $($(deepantiquot)) >= ;> >>=A0
=A0 =A03. Linking the compiler and a number of cool features (see the = slides)
=A0 =A04. A macro which write macros to scrap all the bol= ierpolate code for generic programming, now you can customize your deriving= stuff =A0in ten lines (previously thousands of lines of code to write caml= p4 plugin)
=A0 =A0 5. A number of mini-DSLs =A0and more to be expected
= =A0 =A0I love macros, I would commit to the project for a long time(probabl= y my Ph.D term), I promise that I would write the documentation to make use= rs happy( I am also writing a book about macros, it's un-readable thoug= h). And I am really happy to co-laborate with anyone who love camlp4.=A0
=A0 =A0Syntax matters, if you see that coffescript is now already a su= ccess, camlp4 or Fan is actually more expressive than that, Dear ocaml prog= rammers, let us find a way to make ocaml more beautiful. I am also open min= ded to any discussion about the future of camlp4
=A0 =A0Many thanks (sorry for my bad English)
--
Regards=
-- Bob
--14dae9340f65d27bba04c9fea8c3--