guile-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] GNU Guile branch, master, updated. release_1-9-11-25-gff


From: Andy Wingo
Subject: [Guile-commits] GNU Guile branch, master, updated. release_1-9-11-25-gffd4860
Date: Wed, 09 Jun 2010 06:52:36 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Guile".

http://git.savannah.gnu.org/cgit/guile.git/commit/?id=ffd48603b03a104052beb19950941cbfc69f9193

The branch, master has been updated
       via  ffd48603b03a104052beb19950941cbfc69f9193 (commit)
      from  a4082ab57e81c1826906c1a8601593e8dea5078c (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit ffd48603b03a104052beb19950941cbfc69f9193
Author: Andy Wingo <address@hidden>
Date:   Wed Jun 9 08:55:02 2010 +0200

    r6rs `import' accepts multiple clauses
    
    * module/ice-9/r6rs-libraries.scm (import): Accept multiple clauses.
    
    * test-suite/tests/rnrs-libraries.test: Add test.

-----------------------------------------------------------------------

Summary of changes:
 module/ice-9/r6rs-libraries.scm      |   24 +++++++++++++++---------
 test-suite/tests/rnrs-libraries.test |    9 ++++++++-
 2 files changed, 23 insertions(+), 10 deletions(-)

diff --git a/module/ice-9/r6rs-libraries.scm b/module/ice-9/r6rs-libraries.scm
index 56d4300..482f826 100644
--- a/module/ice-9/r6rs-libraries.scm
+++ b/module/ice-9/r6rs-libraries.scm
@@ -190,13 +190,19 @@
     
 (define-syntax import
   (lambda (stx)
-    (syntax-case stx (for)
-      ((_ (for import-set import-level ...))
-       #'(import import-set))
-      ((_ import-set)
-       #'(eval-when (eval load compile expand)
-           (let ((iface (resolve-r6rs-interface 'import-set)))
-             (call-with-deferred-observers
-              (lambda ()
-                (module-use-interfaces! (current-module) (list iface))))
+    (define (strip-for import-set)
+      (syntax-case import-set (for)
+        ((for import-set import-level ...)
+         #'import-set)
+        (import-set
+         #'import-set)))
+    (syntax-case stx ()
+      ((_ import-set ...)
+       (with-syntax (((library-reference ...) (map strip-for #'(import-set 
...))))
+         #'(eval-when (eval load compile expand)
+             (let ((iface (resolve-r6rs-interface 'library-reference)))
+               (call-with-deferred-observers
+                 (lambda ()
+                   (module-use-interfaces! (current-module) (list iface)))))
+             ...
              (if #f #f)))))))
diff --git a/test-suite/tests/rnrs-libraries.test 
b/test-suite/tests/rnrs-libraries.test
index 4396c67..e162714 100644
--- a/test-suite/tests/rnrs-libraries.test
+++ b/test-suite/tests/rnrs-libraries.test
@@ -183,4 +183,11 @@
   (with-test-prefix "srfi"
     (pass-if "renaming works"
       (eq? (resolve-interface '(srfi srfi-1))
-           (resolve-r6rs-interface '(srfi :1))))))
+           (resolve-r6rs-interface '(srfi :1)))))
+
+  (with-test-prefix "macro"
+    (pass-if "multiple clauses"
+      (eval '(begin
+               (import (rnrs) (for (rnrs) expand) (rnrs))
+               #t)
+            (current-module)))))


hooks/post-receive
-- 
GNU Guile



reply via email to

[Prev in Thread] Current Thread [Next in Thread]