On Fri, Aug 12, 2011 at 11:16 PM, Alexy Khrabrov <[email protected]> wrote: > Perhaps it should be called opp? Or does c stand for "compatible > preprocessor for ocaml"? :)
If you want it to be reachable using search engines on the Web (and gives less importance to acronyms/backronyms) cppo is better than opp. As an illustration: https://duckduckgo.com/?q=opp https://duckduckgo.com/?q=cppo > > A+ > > On Fri, Aug 12, 2011 at 2:44 AM, Martin Jambon > <[email protected]> wrote: >> Dear list, >> >> I would like to announce the release of cppo 0.9.2 which contains a few >> additional features since the last announcement in 2009. >> >> http://martin.jambon.free.fr/cppo.html >> >> cppo is a lightweight preprocessor analogous to cpp and compatible with >> the OCaml syntax. It provides the classic directives #define, #include, >> #ifdef, etc. >> >> Documentation: http://martin.jambon.free.fr/cppo-manual-0.9.2.txt >> >> >> New features: >> >> 1. #ext directive: calling external preprocessors >> 2. STRINGIFY and CONCAT >> >> >> 1. #ext directive: calling external preprocessors >> ================================================= >> >> The new #ext directive allows to call an external command to process a >> lines of input until #endext. >> >> $ cat example1.ml >> let msg = >> #ext rot13 >> "BPnzy ehyrf!" >> #endext >> >> let () = print_endline msg >> >> $ ocamlopt -o example1 \ >> -pp "cppo -x rot13:\"tr '[a-zA-Z]' '[n-za-mN-ZA-M]'\"" example1.ml >> >> $ ./example1 >> OCaml rules! >> >> >> 2. STRINGIFY and CONCAT >> ======================= >> >> STRINGIFY allows to build string literals from unquoted text. This is >> useful for including source code in error messages. STRINGIFY(foo) is >> the equivalent of #foo in cpp syntax. >> >> CONCAT concatenates its two arguments into a single identifier. >> CONCAT(a, b) is the equivalent of a ## b in cpp syntax. >> >> >> >> Enjoy. >> >> >> Martin >> >> -- >> >> P.S.: follow my tech-focused channel on Twitter for more organic news: >> >> http://twitter.com/mjambontech >> >> -- >> Caml-list mailing list. Subscription management and archives: >> https://sympa-roc.inria.fr/wws/info/caml-list >> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners >> Bug reports: http://caml.inria.fr/bin/caml-bugs >> >> > > > -- > Caml-list mailing list. Subscription management and archives: > https://sympa-roc.inria.fr/wws/info/caml-list > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs > > -- _______ Raphael -- Caml-list mailing list. Subscription management and archives: https://sympa-roc.inria.fr/wws/info/caml-list Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs
