GNU bug report logs - #13995
Problem with macros whose expansions define and use auxiliary macros

Previous Next

Package: guile;

Reported by: Mark H Weaver <mhw <at> netris.org>

Date: Mon, 18 Mar 2013 23:14:02 UTC

Severity: normal

Done: Andy Wingo <wingo <at> pobox.com>

Bug is archived. No further changes may be made.

Full log


Message #16 received at 13995-done <at> debbugs.gnu.org (full text, mbox):

From: Andy Wingo <wingo <at> pobox.com>
To: Mark H Weaver <mhw <at> netris.org>
Cc: 13995-done <at> debbugs.gnu.org
Subject: Re: bug#13995: Problem with macros whose expansions define and use
 auxiliary macros
Date: Mon, 20 Jun 2016 22:22:00 +0200
So, this example works on master, but for reasons you don't like.  We
can't fix it on 2.0.  If you feel that the solution for macro-introduced
identifiers in 2.2 is a release blocker, let's open a thread on -devel
again and talk about it, see if we can find some solutions :)

In the meantime, closing this one, as there's no 2.0 task and the code
"works" in 2.2.

Andy

On Tue 19 Mar 2013 00:11, Mark H Weaver <mhw <at> netris.org> writes:

> Consider the following module:
>
> (define-module (foo)
>   #:export (foo))
>
> (define-syntax-rule (foo bar)
>   (begin
>     (define-syntax-rule (blah x) x)
>     (define (bar val) (blah val))))
>
> and the following session with v2.0.7-204-g1ea3762:
>
> scheme@(guile-user)> ,use (foo)
> scheme@(guile-user)> (foo bar)
> scheme@(guile-user)> (bar 5)
> ERROR: In procedure #<syntax-transformer blah>:
> ERROR: Wrong type to apply: #<syntax-transformer blah>
>
> Entering a new prompt.  Type `,bt' for a backtrace or `,q' to continue.
> scheme@(guile-user) [1]> 
>
> Note that it works when the same 'foo' macro is entered directly
> at a fresh REPL:
>
> scheme@(guile-user)> 
> (define-syntax-rule (foo bar)
>   (begin
>     (define-syntax-rule (blah x) x)
>     (define (bar val) (blah val))))
> scheme@(guile-user)> (foo bar)
> scheme@(guile-user)> (bar 5)
> $1 = 5
> scheme@(guile-user)> 
>
>        Mark




This bug report was last modified 8 years and 341 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.