Mailing list for all users of the OCaml language and system.
 help / color / mirror / Atom feed
From: bob zhang <bobzhang1988@gmail.com>
To: Wojciech Meyer <wojciech.meyer@googlemail.com>
Cc: Caml List <caml-list@inria.fr>
Subject: Re: [Caml-list] [ANN] FAN 0.1 [Ask for feedback]
Date: Mon, 18 Jun 2012 08:26:01 -0400	[thread overview]
Message-ID: <CANcqPu6Kkv35bWGJPZZ0BKpdP4iwRi1tzN3be1ZN_57fxcnGpA@mail.gmail.com> (raw)
In-Reply-To: <CAOg1smAGoTBzh89mKjhj7_jjzcTWzDYsAatQTShxR_mzSaLXwA@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2367 bytes --]

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 <bobzhang1988@gmail.com> 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

[-- Attachment #2: Type: text/html, Size: 3387 bytes --]

      reply	other threads:[~2012-06-18 12:26 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-18  1:26 bob zhang
2012-06-18  9:37 ` Wojciech Meyer
2012-06-18 12:26   ` bob zhang [this message]

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=CANcqPu6Kkv35bWGJPZZ0BKpdP4iwRi1tzN3be1ZN_57fxcnGpA@mail.gmail.com \
    --to=bobzhang1988@gmail.com \
    --cc=caml-list@inria.fr \
    --cc=wojciech.meyer@googlemail.com \
    /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