1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 11:50:28 +02:00

Allow @ to work with (ice-9 syncase)

(Reported by Panicz Maciej Godek.)

* test-suite/tests/syncase.test ("@ works with syncase"): New test.

* ice-9/syncase.scm (guile-macro): When a Guile macro transformer
  produces a variable, don't pass it through sc-expand.
This commit is contained in:
Neil Jerram 2009-02-05 22:11:26 +00:00
parent 95a040cd2b
commit ad5f5ada1d
4 changed files with 16 additions and 3 deletions

7
NEWS
View file

@ -50,6 +50,13 @@ Changes in 1.8.7 (since 1.8.6)
** Fix build problem when scm_t_timespec is different from struct timespec ** Fix build problem when scm_t_timespec is different from struct timespec
** Fix build when compiled with -Wundef -Werror ** Fix build when compiled with -Wundef -Werror
** Allow @ macro to work with (ice-9 syncase)
Previously, use of the @ macro in a module whose code is being
transformed by (ice-9 syncase) would cause an "Invalid syntax" error.
Now it works as you would expect (giving the value of the specified
module binding).
Changes in 1.8.6 (since 1.8.5) Changes in 1.8.6 (since 1.8.5)

1
THANKS
View file

@ -41,6 +41,7 @@ For fixes or providing information which led to a fix:
Peter Gavin Peter Gavin
Eric Gillespie, Jr Eric Gillespie, Jr
Didier Godefroy Didier Godefroy
Panicz Maciej Godek
John Goerzen John Goerzen
Mike Gran Mike Gran
Szavai Gyula Szavai Gyula

View file

@ -146,9 +146,11 @@
(let ((e ((macro-transformer m) (let ((e ((macro-transformer m)
e e
(append r (list eval-closure))))) (append r (list eval-closure)))))
(if (variable? e)
e
(if (null? r) (if (null? r)
(sc-expand e) (sc-expand e)
(sc-chi e r w)))))))))) (sc-chi e r w)))))))))))
(define generated-symbols (make-weak-key-hash-table 1019)) (define generated-symbols (make-weak-key-hash-table 1019))

View file

@ -34,3 +34,6 @@
(pass-if "basic syncase macro" (pass-if "basic syncase macro"
(= (plus 1 2 3) (+ 1 2 3))) (= (plus 1 2 3) (+ 1 2 3)))
(pass-if "@ works with syncase"
(eq? run-test (@ (test-suite lib) run-test)))