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
