Version française
Home     About     Download     Resources     Contact us    
Browse thread
compiling camlp4 dynamic_functor_example.ml
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Jeff Henrikson <jehenrik@y...>
Subject: Re: [Caml-list] compiling camlp4 dynamic_functor_example.ml
Sorry, there still seems to be an issue with the 
dynamic_functor_example.ml.  The version I got to compile still had a 
bit of functionality removed.

 > Yes just open Camlp4.Sig to see the token type now.

Really?  This seems to generate a type of conflict with the Syntax.Gram 
when LIDENT is used in an EXTEND.

dynamic_functor_example5 is the text on your page verbatim.
 
~/src/camlp4-beta jehenrik$ ocamlc -I +camlp4 -pp camlp4orf -c 
dynamic_functor_example5.ml
File "dynamic_functor_example5.ml", line 18, characters 20-30:
This expression has type (Camlp4.Sig.camlp4_token -> bool) * string
but is here used with type
  Gram.token_pattern = (Gram.Token.t -> bool) * string
Type Camlp4.Sig.camlp4_token is not compatible with type
  Gram.Token.t = Syntax.Token.t

Regards,


Jeff Henrikson





Nicolas Pouillard wrote:
> Hello,
>
> On 4/8/07, Jeff Henrikson <jehenrik@yahoo.com> wrote:
>> The "dynamic_functor_example.ml" from the documentation appears to not
>> compile anymore with the latest camlp4 release.  Here's my attempt to
>> make it work.
>
> Thanks.
>
>> from http://gallium.inria.fr/~pouillar/camlp4-changes.html
>
> I've updated it!
>
> [...]
>
>> The first thing I am reasonably sure needs changing is Sig.Syntax.S
>> doesn't seem to exist anymore, and judging by the signature of the
>> Register.SyntaxExtension functor, we want a Sig.SyntaxExtension.  If we
>> make the parameter Syntax a Sig.Syntax then Make becomes a functor with
>> signature Sig.SyntaxExtension.
>
> Right.
>
>> The next thing I figured out by looking at the translated
>> json_static.ml, which is that
>>
>>     GLOBAL: foo
>>
>> needs to be
>>
>>     GLOBAL: foo;
>
> It always had to be like that (even in the previous web page, strange...)
>
>> To avert a syntax error.
>>
>> Likewise, the DELETE_RULE seems to upset the lexer with syntax errors:
>
> Yes, the DELETE_RULE example was br0ken.
>
> [...]
>
>> And yet there is still a symbol not found:
>>
>> ~/src/camlp4-beta jehenrik$ ocamlc -I +camlp4 -I +camlp4/Camlp4Parsers
>> -pp camlp4orf camlp4.cma -c dynamic_functor_example3.ml
>> File "dynamic_functor_example3.ml", line 14, characters 2-29:
>> Unbound module Camlp4.Sig.Camlp4Token
>>
>> Which is an unbound because in the current version Camlp4,
>> Camlp4.Sig.Camlp4Token is a module type, not a module.  I have no idea
>> what is intended here.
>
> Yes just open Camlp4.Sig to see the token type now.
>
>> BTW, my compilation string is:
>>
>> ocamlc -I +camlp4 -I +camlp4/Camlp4Parsers -pp camlp4orf camlp4.cma -c
>> dynamic_functor_example3.ml
>
> -I +camlp4/Camlp4Parsers is useless since one doesn't use any
> Camlp4*Parser module.
>
> camlp4.cma no longer exists it's camlp4lib.cma but here it's also
> useless since one doesn't link (-c)
>
> ocamlc -I +camlp4 -pp camlp4orf -c dynamic_functor_example3.ml
>
>> So that's the best I can do.  Please help.  The application I want to
>> write is not feasible in the old camlp4, but I suspect may be possible
>> in the new.  Thanks for all the effort getting the system to the next 
>> level.
>
> Thanks for your porting efforts!
>