From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.4 required=5.0 tests=AWL autolearn=disabled version=3.1.3 Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by yquem.inria.fr (Postfix) with ESMTP id 45CC1BBC1 for ; Wed, 9 Apr 2008 09:50:26 +0200 (CEST) X-IronPort-AV: E=Sophos;i="4.25,627,1199660400"; d="asc'?scan'208";a="11245848" Received: from peray.inria.fr (HELO ausone.inria.fr) ([128.93.8.98]) by mail3-relais-sop.national.inria.fr with SMTP; 09 Apr 2008 09:50:25 +0200 Received: by ausone.inria.fr (sSMTP sendmail emulation); Wed, _d Apr 2008 09:50:23 +0200 From: "Nicolas Pouillard" Cc: xclerc , Caml_mailing list Subject: Re: [Caml-list] weird behavior with camlp4o To: Olivier Andrieu References: <1207726165.47fc70555cb83@imp.ovh.net> <95513600804090036m1bf04367w5736f67f3f37135b@mail.gmail.com> In-Reply-To: <95513600804090036m1bf04367w5736f67f3f37135b@mail.gmail.com> Date: Wed, 09 Apr 2008 09:50:18 +0200 Message-Id: <1207727002-sup-4879@port-ext16.ensta.fr> User-Agent: Sup/git Content-Type: multipart/signed; protocol="application/pgp-signature"; boundary="=-1207727423-416855-59991-8481-7-="; micalg="pgp-sha1" MIME-Version: 1.0 X-Spam: no; 0.00; camlp:01 camlp:01 ocaml:01 translated:01 stdout:01 cheers:01 ocaml:01 cmo:01 cmo:01 denotes:01 ocamlc:01 ocamlopt:01 -pp:01 wrote:01 abstract:01 X-Attachments: cset="UTF-8" type="application/pgp-signature" name="signature.asc" name="signature.asc" --=-1207727423-416855-59991-8481-7-= Content-Type: text/plain; charset=UTF-8 It's more about locations that efficiency, if camlp4o was printing OCaml source code, then the locations will be those of the translated code. Camlp4 used to always print by default the binary output. I found this quite annoying when developing Camlp4 extensions because I always forget to give a proper pretty printer and the binary output just screwed up my terminal. So Camlp4 now automatically use the pretty-printer when stdout is a tty [1]. However this does not prevent you from reading the little docs about camlp4 :) Cheers, [1]: http://brion.inria.fr/gallium/index.php/Using_Camlp4 Excerpts from Olivier Andrieu's message of Wed Apr 09 09:36:40 +0200 2008: > On Wed, Apr 9, 2008 at 9:29 AM, wrote: > > Selon "Andrew I. Schein" : > > > Greetings list - > > > > > > I was playing around with OCaml 3.10.2 camlp4o like this: > > > > > > camlp4o pa_breakcont.cmo sample1.ml > > > > > > with my macro pa_breakcont.cmo and got the expected macro translation > > > printed to my terminal. However, when I type: > > > > > > camlp4o pa_breakcont.cmo sample1.ml > out.ml > > > > > > out.ml contains binary output. Am I misusing camlp4o? > > > > I have encountered the same problem a few days ago while working on > > Ocaml-Java to make it camlp4-compatible. > > > > The fact is that the kind of output (binary dump of abstract tree or > > source code in textual form) is chosen according to the nature of the > > output file descriptor. If the output file descriptor denotes a tty > > then the textual form is chosen, otherwise the binary form is chosen. > > > > That being said, I don't know what is the rationale of this choice, > > as I have not come up with a use case for the binary form. > > It's simply more efficient for ocamlc or ocamlopt when camlp4 is > called via the -pp option: no need to pretty-print and then reparse > the source. > -- Nicolas Pouillard aka Ertai --=-1207727423-416855-59991-8481-7-= Content-Disposition: attachment; filename="signature.asc" Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.8 (Darwin) iEYEARECAAYFAkf8dToACgkQj+FCNw9dwLktbwCgmpciyJmAS1fTVRekDVo9i8nd ugUAni9iH5gmhpr3eSAUjwYTQk14iwqC =kqp6 -----END PGP SIGNATURE----- --=-1207727423-416855-59991-8481-7-=--