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: Nicolas Pouillard <nicolas.pouillard@g...>
Subject: Re: [Caml-list] compiling camlp4 dynamic_functor_example.ml
On 4/15/07, Jeff Henrikson <jehenrik@yahoo.com> wrote:
> 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.

Ok, sorry it's now really updated.

Since the token type can be changed the Camlp4.Sig.Syntax don't rely
directly on it. That's why I have switched to Campl4.Sig.Camlp4Syntax
(and Register.OCamlSyntaxExtension) in the example.

>
>  > 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!
> >
>
>


-- 
Nicolas Pouillard aka Ertai  <ertai@feydakins.org>
http://uttk.org      Uttk -- Unified Test Tool Kit