From: "Nicolas Pouillard" <nicolas.pouillard@gmail.com>
To: Martin Jambon <martin.jambon@ens-lyon.org>
Cc: caml-list <caml-list@inria.fr>
Subject: Re: [Caml-list] [camlp4] str_item filters & toplevel?
Date: Fri, 18 Apr 2008 09:19:31 +0200 [thread overview]
Message-ID: <1208502844-sup-984@ausone.local> (raw)
In-Reply-To: <Pine.LNX.4.64.0804172037270.29429@martin.ec.wink.com>
[-- Attachment #1: Type: text/plain, Size: 2260 bytes --]
Excerpts from Martin Jambon's message of Thu Apr 17 21:19:44 +0200 2008:
> On Thu, 17 Apr 2008, Nicolas Pouillard wrote:
>
> > Excerpts from Martin Jambon's message of Thu Apr 17 17:25:20 +0200 2008:
> >> On Thu, 17 Apr 2008, Nicolas Pouillard wrote:
> >>
> >>> Excerpts from Martin Jambon's message of Thu Apr 17 16:17:15 +0200 2008:
> >>>> I started from the wiki page describing how to use AST filters:
> >>>> http://brion.inria.fr/gallium/index.php/Camlp4MapGenerator
> >>>>
> >>>> The example doesn't work in the toplevel (3.10.1), although it works
> >>>> otherwise. How to make it work?
> >>>
> >>> By patching the camlp4 sources :)
> >>
> >> Is it a bug that has to be fixed?
> >
> > It could be seen as a bug, but the behavior is not completely clear, since
> > applying the filters to each toplevel phrase is different from calling them
> > only once on the whole module implem.
>
> Thanks.
> I'll look at the code for a better understanding.
>
> I think that the 2 following cases are pretty common:
>
> a. inserting some constant code once at the beginning of the file (or
> module), such as "open Foo"
> b. replacing a str_item by other str_items
>
> Both were problematic in camlp4 3.09, requiring some fragile or
> undocumented hacks. It would be extremely useful to have a clean solution
> to these problems.
>
> It seems to me that both (a) and (b) could be implemented and
Currently both can be implemented on a per file basis, moreover they are
implemented by using the *same* registering construct.
> made available in the toplevel without theoretical difficulties.
If one don't add new registration functions the behavior will be odd.
> I can imagine a third situation consisting in performing a full
> file/module analysis and inserting something at the beginning or at the
> end. That also could be implemented, although it would clearly not be
> available in the toplevel.
So in the toplevel, filters registered using register_str_item_filter will be
called once on an empty phrase.
And a new function register_toplevel_phrase_filter will gather functions to
be called on each toplevel phrase.
> >> If it's already fixed, which version?
> >
> > Not already fixed.
--
Nicolas Pouillard aka Ertai
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 194 bytes --]
prev parent reply other threads:[~2008-04-18 7:19 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-17 14:17 Martin Jambon
2008-04-17 14:42 ` [Caml-list] " Nicolas Pouillard
2008-04-17 15:25 ` Martin Jambon
2008-04-17 18:35 ` Nicolas Pouillard
2008-04-17 19:19 ` Martin Jambon
2008-04-18 7:19 ` Nicolas Pouillard [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1208502844-sup-984@ausone.local \
--to=nicolas.pouillard@gmail.com \
--cc=caml-list@inria.fr \
--cc=martin.jambon@ens-lyon.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).