Browse thread
camlp4 beta
- Jeff Henrikson
[
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: | -- (:) |
| From: | Jeff Henrikson <jehenrik@y...> |
| Subject: | camlp4 beta |
Hello, Glad to see camlp4 getting an upgrade. I have written several simple extensions in the old camlp4 but I can't seem to make your new examples work: http://gallium.inria.fr/~pouillar/camlp4-changes.html Is the beta currently capable of running in a toplevel? I downloaded the 3.10+... tarball, compiled and installed, and ran various permutations of: #load "camlp4o.cma";; #directory "+camlp4";; #directory "+camlp4/Camlp4Top";; #directory "+camlp4/Camlp4Parsers";; #load "Camlp4Top.cmo";; #load "grammar.cmo";; #load "Camlp4o.cmo";; open Camlp4.Entry;; open Camlp4.Grammar;; open Camlp4.PreCast;; open Syntax;; And then ran each example. I have no idea what I'm doing here with all the directories and uppercase filenames. I thought ocaml broke weirdly with leading upper case filenames. Example problem I am having with with dynamic_old_syntax.ml Unbound identifier Entry.mk. I can't find how to load the new definition of Entry.mk. In the old ocaml you just needed #load "camlp4o.cma" I believe. Are all the code examples *supposed* to run? It's not clear by simple visual inspection of the doc some of them are only for the old framework. Then there's that (...) notation, which looks like "put special module here". Being literal in the docs about which examples run, and which don't is a necessity, IMHO. Also, if applicable, their respective camlp4 versions and a list of any code additions which are necessary to get the examples to run. A weakness of the old camlp4 was just getting it configured. I like the -printer -filter, etc switches are the right direction. But I mostly write my macros in the toplevel. Some simple "enter these lines into the toplevel and it will work" examples might be in order? As far as architectural choices, and I can't tell if you've handled this without actually running your exmaples and making sense of them, I would like the ability to quote/print *unexpanded* macros. This was not to my knowledge possible in the old camlp4. For example, if I extend the traditional caml syntax with a for loop, even though I am defining for in terms of a transformation to regular caml, I want to be able to read a block of text into an AST with a production for the for loop. A killer app would be an eclipse plugin which could indent all possible Camlp4 grammars. Not only would there finally be support for revised syntax, but removing the emacs mode as the only supported indenting could significantly expand the ocaml community. At my last job I was giving an ocaml tutorial to a non-emacsy coworker, and at the point where it got to all the bizarre emacs lore hotkeys, I had this feeling like *why* do I bother. And Eclipse support for each new DSL that I do, for free? That would be amazing. Sorry for taking a couple of weeks to take a look. Best wishes finishing up your internship. Jeff Henrikson