From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id D9CB4BB83 for ; Mon, 29 May 2006 22:45:44 +0200 (CEST) Received: from pauillac.inria.fr (pauillac.inria.fr [128.93.11.35]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id k4TKjilx021523 for ; Mon, 29 May 2006 22:45:44 +0200 Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id WAA24959 for ; Mon, 29 May 2006 22:45:43 +0200 (MET DST) Received: from out3.smtp.messagingengine.com (out3.smtp.messagingengine.com [66.111.4.27]) by nez-perce.inria.fr (8.13.0/8.13.0) with ESMTP id k4TKjho2025964 for ; Mon, 29 May 2006 22:45:43 +0200 Received: from frontend3.internal (frontend3.internal [10.202.2.152]) by frontend1.messagingengine.com (Postfix) with ESMTP id ED401D6873C; Mon, 29 May 2006 16:45:40 -0400 (EDT) Received: from heartbeat1.messagingengine.com ([10.202.2.160]) by frontend3.internal (MEProxy); Mon, 29 May 2006 16:45:41 -0400 X-Sasl-enc: MnUJHtIZRLmaz3o6rBs+CNI/gv1scYFvfw41z4r8upkG 1148935541 Received: from [192.168.0.4] (70-56-73-79.tukw.qwest.net [70.56.73.79]) by mail.messagingengine.com (Postfix) with ESMTP id C42846B04; Mon, 29 May 2006 16:45:40 -0400 (EDT) Message-ID: <447B5F19.4080708@yahoo.com> Date: Mon, 29 May 2006 13:52:41 -0700 From: Jeff Henrikson User-Agent: Mozilla Thunderbird 1.0.7 (Macintosh/20050923) X-Accept-Language: en-us, en MIME-Version: 1.0 To: nicolas.pouillard@gmail.com, caml-list@inria.fr Subject: camlp4 beta Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-j-chkmail-Score: MSGID : 447B5D77.001 on nez-perce : j-chkmail score : X : 0/20 1 X-Miltered: at concorde with ID 447B5D78.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Miltered: at nez-perce with ID 447B5D77.001 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; henrikson:01 jehenrik:01 camlp:01 camlp:01 toplevel:01 tarball:01 permutations:01 parsers:01 cmo:01 grammar:01 cmo:01 grammar:01 syntax:01 ocaml:01 syntax:01 X-Spam-Checker-Version: SpamAssassin 3.0.3 (2005-04-27) on yquem.inria.fr X-Spam-Level: ** X-Spam-Status: No, score=2.2 required=5.0 tests=FORGED_YAHOO_RCVD autolearn=disabled version=3.0.3 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