Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[Caml-list] problem installing janestreet core through godi

5 views
Skip to first unread message

Ashish Agarwal

unread,
Oct 21, 2008, 2:34:52 PM10/21/08
to Caml List
I am having trouble installing JaneStreet's Core library through godi.
On Mac OS X, it fails while installing the prerequisite bin-prot:

..
> ocamlfind ocamlc -package type-conv -c -pp "cpp $ARCH_FLAGS " -I +camlp4
type_class.mli
> File "type_class.mli", line 93, characters 15-16:
> Syntax error
..

Line 93 of type_class.mli is:
MK_BASE(unit)


On a Red Hat Enterprise Linux system, bin-prot successfully installs.
However, janestreet-core fails:

..
> ocamlfind ocamlc -package res,sexplib,bin_prot,threads -c -thread -dtypes
-for-pack Core -dtypes -I +camlp4 -I . binable.ml
> File "binable.ml", line 12, characters 21-47:
> Unbound type constructor Map_to_safe.sw_arg
..

Line 12 of binable.ml is
val bin_sw_arg_t : binable Map_to_safe.sw_arg

Markus Mottl

unread,
Oct 21, 2008, 4:22:45 PM10/21/08
to Ashish Agarwal, Caml List
2008/10/21 Ashish Agarwal <Ashish....@yale.edu>:

> I am having trouble installing JaneStreet's Core library through godi.
> On Mac OS X, it fails while installing the prerequisite bin-prot:
> ...

>> ocamlfind ocamlc -package type-conv -c -pp "cpp $ARCH_FLAGS " -I +camlp4
>> type_class.mli
>> File "type_class.mli", line 93, characters 15-16:
>> Syntax error
> ...

> Line 93 of type_class.mli is:
> MK_BASE(unit)

It's possible that the C-preprocessor works differently on Mac OS X.
I haven't investigated this yet, but would be grateful if anybody who
has set up Godi on a Mac could try to find a patch.

> On a Red Hat Enterprise Linux system, bin-prot successfully installs.
> However, janestreet-core fails:

> ...


>> ocamlfind ocamlc -package res,sexplib,bin_prot,threads -c -thread -dtypes
>> -for-pack Core -dtypes -I +camlp4 -I . binable.ml
>> File "binable.ml", line 12, characters 21-47:
>> Unbound type constructor Map_to_safe.sw_arg

> ...


> Line 12 of binable.ml is
> val bin_sw_arg_t : binable Map_to_safe.sw_arg

janestreet-core is out of date, and a new version will be released
within the next few weeks. You might want to downgrade the bin-prot
package installed in your Godi tree to an older version.

Regards,
Markus

--
Markus Mottl http://www.ocaml.info markus...@gmail.com

_______________________________________________
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

Mark Shinwell

unread,
Oct 22, 2008, 4:17:10 AM10/22/08
to Markus Mottl, Ashish Agarwal, Caml List
On Tue, Oct 21, 2008 at 04:22:09PM -0400, Markus Mottl wrote:
> 2008/10/21 Ashish Agarwal <Ashish....@yale.edu>:
> > I am having trouble installing JaneStreet's Core library through godi.
> > On Mac OS X, it fails while installing the prerequisite bin-prot:
> > ...
> >> ocamlfind ocamlc -package type-conv -c -pp "cpp $ARCH_FLAGS " -I +camlp4
> >> type_class.mli
> >> File "type_class.mli", line 93, characters 15-16:
> >> Syntax error
> > ...
> > Line 93 of type_class.mli is:
> > MK_BASE(unit)
>
> It's possible that the C-preprocessor works differently on Mac OS X.
> I haven't investigated this yet, but would be grateful if anybody who
> has set up Godi on a Mac could try to find a patch.

There is something about the preprocessors on Mac OS X which causes cpp to
behave differently from gcc -E; I've hit this before but can't remember the
full explanation offhand. You can see the difference, for example, if you
try to use the ## operator. Does everything work if you get everything
to use gcc -E for preprocessing?

Mark

Ashish Agarwal

unread,
Oct 22, 2008, 9:08:26 AM10/22/08
to Mark Shinwell, Markus Mottl, Caml List
Thank you for the replies. In type_class.ml and type_class.mli, I
replaced (*pp cpp $ARCH_FLAGS *) with (*pp gcc -E $ARCH_FLAGS *). The
compilation gets further but now fails with:...
ocamlfind ocamlc -package type-conv -c -I +camlp4 -for-pack Bin_prot
binable.ml
File "binable.ml", line 36, characters 21-46:
Unbound type constructor Type_class.writer


On Wed, Oct 22, 2008 at 4:16 AM, Mark Shinwell
<mshi...@janestcapital.com>wrote:

Markus Mottl

unread,
Oct 22, 2008, 9:52:50 AM10/22/08
to Ashish Agarwal, Caml List
On Wed, Oct 22, 2008 at 9:08 AM, Ashish Agarwal <agarw...@gmail.com> wrote:
> Thank you for the replies. In type_class.ml and type_class.mli, I
> replaced (*pp cpp $ARCH_FLAGS *) with (*pp gcc -E $ARCH_FLAGS *). The
> compilation gets further but now fails with:
> ...
> ocamlfind ocamlc -package type-conv -c -I +camlp4 -for-pack Bin_prot
> binable.ml
> File "binable.ml", line 36, characters 21-46:
> Unbound type constructor Type_class.writer

Great! This means that this fix solved the problem. You have now run
into another, known one: the "core" library is badly out of date, and
needs to be updated to work with newer releases of bin-prot. We will
make a release within (probably) the next few weeks. In the meanwhile
you might want to downgrade bin-prot to make it work with "core".

I'll add a patch to bin-prot to make it work on Macs in the meanwhile...

Regards,
Markus

_______________________________________________

Nobuyuki TOMIZAWA

unread,
Oct 22, 2008, 1:57:52 PM10/22/08
to Ashish Agarwal, Markus Mottl, Caml List
Hi, list,

> Thank you for the replies. In type_class.ml and type_class.mli, I
> replaced (*pp cpp $ARCH_FLAGS *) with (*pp gcc -E $ARCH_FLAGS *).

Another option is to use /usr/bin/cpp-4.2 instead of /usr/bin/cpp.

After making symbolic link ~/bin/cpp to /usr/bin/cpp-4.2 (and put `~/
bin' in PATH), I succeed to build bin-proto without source code
modification.

-- nobuyuki

Ashish Agarwal

unread,
Oct 22, 2008, 2:34:45 PM10/22/08
to Caml List
I only had cpp-4.0 and tried your suggestion with that; bin-prot compiles
completely.
0 new messages