GNU bug report logs - #14449
Guile 2.1 and macro nesting

Previous Next

Package: guile;

Reported by: Sanel Zukan <sanelz <at> gmail.com>

Date: Thu, 23 May 2013 14:05:01 UTC

Severity: normal

Done: Ian Price <ianprice90 <at> googlemail.com>

Bug is archived. No further changes may be made.

Full log


Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Sanel Zukan <sanelz <at> gmail.com>
To: bug-guile <at> gnu.org
Subject: Guile 2.1 and macro nesting
Date: Thu, 23 May 2013 15:50:32 +0200
Hi,

Looks like macro nesting (using define-macro) inside guile 2.x is no
longer possible. Here is example:

-----------------------------------------
scheme@(guile-user)>
(define-macro (def-caller abbrev proc)
    `(define-macro (,abbrev var expr)
       `(,',proc
         (lambda (,var) ,expr))))

scheme@(guile-user)> (def-caller katch call/cc)
scheme@(guile-user)> (macroexpand '(katch 3 (+ 1 1)))
ice-9/psyntax.scm:2146:53: In procedure #<procedure 282adc0 (args e1
e2)>:
ice-9/psyntax.scm:2146:53: Syntax error:
unknown location: lambda: invalid argument list in subform (3) of (3)

Entering a new prompt.  Type `,bt' for a backtrace or `,q' to
continue.
-----------------------------------------

However, doing the same in guile 1.x and/or any other Scheme
implementation where define-macro is native, it works without
problems.

Best,
Sanel




This bug report was last modified 11 years and 235 days ago.

Previous Next


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