Selon Olivier Andrieu <oandrieu@gmail.com>:
> On Wed, Apr 9, 2008 at 9:29 AM, <forum@x9c.fr> wrote:
> > Selon "Andrew I. Schein" <andrew@andrewschein.com>:
> > > 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.
Well, this is what I thought at first but, if I am not mistaken, when
you use the '-pp' option of a compiler, a command of the following form
is executed: "camlp4XXX source-file.ml > tmp-file.ml".
Then the "tmp-file.ml" is actually compiled instead of the "source-file.ml".
So, it seems that compilers go through the textual form.
Xavier Clerc