* [Caml-list] [ANN] FAN 0.1 [Ask for feedback]
@ 2012-06-18 1:26 bob zhang
2012-06-18 9:37 ` Wojciech Meyer
0 siblings, 1 reply; 3+ messages in thread
From: bob zhang @ 2012-06-18 1:26 UTC (permalink / raw)
To: Caml List
[-- Attachment #1: Type: text/plain, Size: 1684 bytes --]
Hi, List
Fan <http://www.seas.upenn.edu/~hongboz/hongbo_zhang_files/fan_doc/> ,
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 <http://code.google.com/p/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* fo**r 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<http://www.seas.upenn.edu/~hongboz/hongbo_zhang_files/fan_doc/code_Gen_plugins.html>
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
[-- Attachment #2: Type: text/html, Size: 2193 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Caml-list] [ANN] FAN 0.1 [Ask for feedback]
2012-06-18 1:26 [Caml-list] [ANN] FAN 0.1 [Ask for feedback] bob zhang
@ 2012-06-18 9:37 ` Wojciech Meyer
2012-06-18 12:26 ` bob zhang
0 siblings, 1 reply; 3+ messages in thread
From: Wojciech Meyer @ 2012-06-18 9:37 UTC (permalink / raw)
To: bob zhang; +Cc: Caml List
Hi Bob,
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
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Caml-list] [ANN] FAN 0.1 [Ask for feedback]
2012-06-18 9:37 ` Wojciech Meyer
@ 2012-06-18 12:26 ` bob zhang
0 siblings, 0 replies; 3+ messages in thread
From: bob zhang @ 2012-06-18 12:26 UTC (permalink / raw)
To: Wojciech Meyer; +Cc: Caml List
[-- 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 --]
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2012-06-18 12:26 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-06-18 1:26 [Caml-list] [ANN] FAN 0.1 [Ask for feedback] bob zhang
2012-06-18 9:37 ` Wojciech Meyer
2012-06-18 12:26 ` bob zhang
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox