Browse thread
compiling camlp4 dynamic_functor_example.ml
-
Jeff Henrikson
-
Nicolas Pouillard
- Jeff Henrikson
-
Nicolas Pouillard
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: | 2007-04-15 (05:01) |
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! >