From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by sympa.inria.fr (Postfix) with ESMTPS id 238A07ED26 for ; Mon, 18 Jun 2012 14:26:09 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AmkCACMd30/RVdW2kGdsb2JhbABFFoZcrmEIIgEBAQEJCQ0HFAQjghgBAQEDARICLAEbGAUBAwELBgULDS4hAQERAQUBHAYTCAwOh1oBAwYFC5oYCQOMIYJwhC0KGScNV4hxAQUMikphhjsDlSSKeQaDIT6EGw X-IronPort-AV: E=Sophos;i="4.75,791,1330902000"; d="scan'208";a="148005075" Received: from mail-yx0-f182.google.com ([209.85.213.182]) by mail4-smtp-sop.national.inria.fr with ESMTP/TLS/RC4-SHA; 18 Jun 2012 14:26:02 +0200 Received: by yenl8 with SMTP id l8so5388605yen.27 for ; Mon, 18 Jun 2012 05:26:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=zgPMd0Ot1vOsJqan2G9zJwNdFu5ArBe/HBcPTxEL03Q=; b=QcfaPSEYqaFWVEh2MoJeq0m4AVQh+B2BAwueo3DBRjIilrQc3HPuqdJzGYUte5qyCH SRm2rvvG/D8qzW3lst5AJEQFoUFW+YGmpmr4sqX68v/QFaHwrcypBm/Lz2CW3vpfhexm zDz0Y7HLNpgXA4HMtPuM7NJCEYl5Qm91LJrj0MrQp7L+pX6DURuqQ0zMwoOLFD3HwMdL nvsZ3kgVfveavsPl6LJmHwkTv+cw+OOFQ5I0mfhV+JahIDNcPPGOzgVSB5sPkZGAyIXa XpsSqbtNStr9HAE+Wv2bUwgK6f+/Jj8dBa74mKkNTGFxgNvlo2CddcSQHwStxBZs5WPw L2vQ== MIME-Version: 1.0 Received: by 10.50.87.138 with SMTP id ay10mr201044igb.43.1340022361445; Mon, 18 Jun 2012 05:26:01 -0700 (PDT) Received: by 10.64.39.78 with HTTP; Mon, 18 Jun 2012 05:26:01 -0700 (PDT) In-Reply-To: References: Date: Mon, 18 Jun 2012 08:26:01 -0400 Message-ID: From: bob zhang To: Wojciech Meyer Cc: Caml List Content-Type: multipart/alternative; boundary=e89a8f3ba673d8563e04c2be44b9 Subject: Re: [Caml-list] [ANN] FAN 0.1 [Ask for feedback] --e89a8f3ba673d8563e04c2be44b9 Content-Type: text/plain; charset=ISO-8859-1 On Mon, Jun 18, 2012 at 5:37 AM, Wojciech Meyer < wojciech.meyer@googlemail.com> wrote: > Hi Bob, > > Hi, http://www.seas.upenn.edu/~hongboz/hongbo_zhang_files/fan.zip It's planned to release after ocaml's 4.00 release since some ideas still need to be polished but you can have a look to get a general idea. One thing to add is that *Fan is not just a generic printer, it is a framework that* *you can write generic printer or whatever you want in tens of lines* :-) > Your example generators indeed look very interesting! I would need to > look into more details into that tonight, but you didn't provide a link > for the library to download. > > Thanks, > Wojciech > > On Mon, Jun 18, 2012 at 2:26 AM, bob zhang wrote: > > Hi, List > > Fan , a type-directed generic programming framework for OCaml > > Using Fan, a programmer can easily create generic libraries > > for type-directed > > programs, including pretty printing, equality, serialization and > > deserialization, data generation, generic traversals, folds, etc. > > > > Compared with deriving, Fan is mainly different in such aspects: > > 1. It generate code without touching your source tree, module is > > the basic unit. We generated code for all modules in ocaml's compiler > > parsing/, typing/, and bootstrapped camlp4 source tree itself. > > Check here > http://www.seas.upenn.edu/~hongboz/hongbo_zhang_files/fan_doc/ > > All modules beginning with Fan_ocaml is generated code for ocaml compiler > > Fan_camlp4ast_o is for camlp4ast itself. > > 2. composable. All extended syntax are in our mini dsl language "fan" > > without polluting the original syntax > > 3. Lightweight Check the modules gen_plugins we write generic > printing, > > equality, map, fold traversal, etc, 9 generic plugins in less than 200 > lines > > of code. > > > > It's still at alpha stage, and I have some ideas that need to be > polished, I > > would be happy to hear any feedback. We hope that FAN can benefit ocaml > > community as a camlp4 platform. Fan's code base is pretty small, all the > Ast > > Transformations are based on quasi-quotations. The only exception is > TyDcl > > which has no counter-part and Ast Lifting, since the current camlp4 does > not > > support macro syntax in common lisp something like ``(,,). > > > > Many Thanks > > -- > > -- Bob > -- -- Bob --e89a8f3ba673d8563e04c2be44b9 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable

On Mon, Jun 18, 2012 at 5:37 AM, Wojciec= h Meyer <wojciech.meyer@googlemail.com> wrote:
Hi Bob,

Hi,
It's planned to release after ocaml= 's 4.00 release since some ideas still need to be polished
=A0but you can have a look to get a general idea.
One thing = to add is that Fan is not just a generic printer, it is a framework t= hat
you can write generic printer or whatever you w= ant in tens of lines :-)
Your example generators indeed look very interesting! I would need to
look into more details into that tonight, but you didn't provide a link=
for the library to download.

Thanks,
Wojciech

On Mon, Jun 18, 2012 at 2:26 AM, bob zhang <bobzhang1988@gmail.com> wrote:
> Hi, List
> =A0 =A0 =A0Fan , a type-directed generic programming framework for OCa= ml
> Using Fan, a programmer can easily create generic libraries
> for type-directed
> programs, including pretty printing, equality, serialization and
> deserialization, data generation, generic traversals, folds, etc.
>
> Compared with deriving, Fan is mainly different in such aspects:
> 1. It generate code without touching your source tree, module is
> the basic unit. We generated code for all modules in ocaml's compi= ler
> parsing/, typing/, and bootstrapped camlp4 source tree itself.
> Check here http://www.seas.upenn.edu/~hongboz/hongbo= _zhang_files/fan_doc/
> All modules beginning with Fan_ocaml is generated code for ocaml compi= ler
> Fan_camlp4ast_o is for camlp4ast itself.
> 2. composable. =A0All extended syntax are in our mini dsl language &qu= ot;fan"
> without polluting the original syntax
> 3. Lightweight =A0 Check the modules gen_plugins =A0we write generic p= rinting,
> equality, map, fold traversal, etc, 9 generic plugins in less than 200= lines
> of code.
>
> It's still at alpha stage, and I have some ideas that need to be p= olished, I
> would be happy to hear any feedback. We hope that FAN can benefit ocam= l
> community as a camlp4 platform. Fan's code base is pretty small, a= ll the Ast
> Transformations are based on quasi-quotations. The only exception is T= yDcl
> which has no counter-part and Ast Lifting, since the current camlp4 do= es not
> support =A0macro syntax in common lisp something like ``(,,).
>
> Many Thanks
> --
> -- Bob



--
= -- Bob
--e89a8f3ba673d8563e04c2be44b9--