I'm trying to compile an OCaml program I haven't written. I'm compiling
it on an Ubuntu 8.04, OCaml 3.10.0.
The compilation fails with following error:
"""
ocamlopt -pp "camlp4o pa_op.cmo" -I src -c src/common.ml
File "src/common.ml", line 5, characters 101-102:
Parse error: "in" expected after [binding] (in [expr])
Preprocessor error
"""
Here is the beginning of the relevant file:
"""
(** Common utility functions. *)
(* space *)
let heap_size () : float = float_of_int (Gc.stat ()).Gc.heap_words *. float_of_int (Sys.word_size / 8) (* in bytes *)
"""
This expression seems correct to me. Is this issue related to one of the
fixes on camlp4 that where made in 3.10.1?
Any idea how to work around this issue (without recompiling latest ocaml
and all the needed libraries)?
Sincerly yours,
david
--
GPG/PGP key: A3AD7A2A David MENTRE <dme...@linux-france.org>
5996 CC46 4612 9CA4 3562 D7AC 6C67 9E96 A3AD 7A2A
_______________________________________________
Caml-list mailing list. Subscription management:
http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
Archives: http://caml.inria.fr
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs
Does the following solve the problem?
val heap_size () : float = [...]
If it does, it has to do with revised syntax and you should change the flags
of camlp4 (but it believe camlp4o loads the classic syntax, so it might be a
bug as well).
Regards,
--
Gabriel Kerneis
This code successfuly compiled on my ocaml 3.10.2 without any
"pa_op.cmo", what is pa_op.cmo?
3.10.0 contains quite a few camlp4 parsing bugs which are fixed in
version 3.10.2. (But unfortunately I still have to workaround them
because Fedora 8 is stuck at 3.10.0 ...)
Best to upgrade if you can.
Rich.
--
Richard Jones
Red Hat
On Tue, Sep 23, 2008 at 08:53, Gabriel Kerneis <ker...@enst.fr> wrote:
> Does the following solve the problem?
>
> val heap_size () : float = [...]
>
> If it does, it has to do with revised syntax and you should change the flags
> of camlp4 (but it believe camlp4o loads the classic syntax, so it might be a
> bug as well).
No, it gives me another error:
"""
ocamlopt -pp "camlp4o pa_op.cmo" -I src -c src/common.ml
File "src/common.ml", line 5, characters 0-3:
Parse error: illegal begin of implem
Preprocessor error
"""
Yours,
d.
On Tue, Sep 23, 2008 at 10:08, Сергей Плаксин <se...@stork.ru> wrote:
>> Here is the beginning of the relevant file:
>> """
>> (** Common utility functions. *)
>>
>> (* space *)
>>
>> let heap_size () : float = float_of_int (Gc.stat ()).Gc.heap_words *. float_of_int (Sys.word_size / 8) (* in bytes *)
>
> This code successfuly compiled on my ocaml 3.10.2 without any
> "pa_op.cmo",
Could you compile it with 'ocamlopt -pp "camlp4o pa_op.cmo"', just to
check that the error is fixed using ocaml 3.10.2?
> what is pa_op.cmo?
I don't know.
Yours,
d.
On Tue, Sep 23, 2008 at 12:18, Richard Jones <ri...@annexia.org> wrote:
> Best to upgrade if you can.
That's the answer I feared. ;-) As next Ubuntu should be released in a
few weeks and has OCaml 3.10.2, I'll give it a try.
Yours,
d.
2008/9/23 О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ <se...@stork.ru>
>
> what is pa_op.cmo?
It's a CamlP4 parser for the extension of ocaml classical syntax with
streams parsers. Decoding proceeds as follows:
"pa_" stands for parser, "o" for ocaml syntax, and "p" for stream parsers.
-- MM