From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by walapai.inria.fr (8.13.6/8.13.6) with ESMTP id p7D6V4VA028556 for ; Sat, 13 Aug 2011 08:31:04 +0200 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AtABANwZRk7RVdKwmGdsb2JhbABBhEiTc481CBQBAQEBAQgJDQcUJYFAAQEBAQIBEgIPHQEbEgsBAwwGBQsDCgICCR0CAiEBAREBBQEKEgYTEggIh04EnCIKi3ZAglWEXTuIbQIDBoEmhAuBEASTEol2AYJiPINh X-IronPort-AV: E=Sophos;i="4.67,366,1309730400"; d="scan'208";a="105379279" Received: from mail-iy0-f176.google.com ([209.85.210.176]) by mail4-smtp-sop.national.inria.fr with ESMTP/TLS/RC4-SHA; 13 Aug 2011 08:30:58 +0200 Received: by iyn35 with SMTP id 35so3286669iyn.35 for ; Fri, 12 Aug 2011 23:30:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=Yif/4xhGOGwhf9euIuzmYlM6ORFGQwCh+flkVQdyYTE=; b=ZDk9H51Boczsw3aIK2QCnl2KEe3e4o3Teabhr48qCdC2VBjQOrJwdWfT0qOWIebuzx b0TbzaX5PtOXTqhOJeuxicCONh0BXuoC3N2of7r+efZhVl9oYAsp5c+8q3F+Bi07FvWs xRZ3gBIDrNKt/gNReEWbitMxBnNZrIb4bbK1E= MIME-Version: 1.0 Received: by 10.42.131.199 with SMTP id a7mr441605ict.362.1313217056282; Fri, 12 Aug 2011 23:30:56 -0700 (PDT) Received: by 10.42.169.70 with HTTP; Fri, 12 Aug 2011 23:30:56 -0700 (PDT) In-Reply-To: References: <4E44F5E5.6080102@ens-lyon.org> Date: Sat, 13 Aug 2011 07:30:56 +0100 Message-ID: From: Raphael Proust To: Alexy Khrabrov Cc: Martin Jambon , OCaml Mailing List Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by walapai.inria.fr id p7D6V4VA028556 Subject: Re: [Caml-list] [ANN] cppo 0.9.2 - cpp for OCaml On Fri, Aug 12, 2011 at 11:16 PM, Alexy Khrabrov 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 > 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