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-10-205-g0


From: Julian Graham
Subject: [Guile-commits] GNU Guile branch, master, updated. release_1-9-10-205-g04186f2
Date: Fri, 28 May 2010 01:34:55 +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=04186f2006bba79ffd7097f3664919078dc4d656

The branch, master has been updated
       via  04186f2006bba79ffd7097f3664919078dc4d656 (commit)
      from  853cb35661cb5ff9ef31595ea8189aa4b68ae4b4 (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 04186f2006bba79ffd7097f3664919078dc4d656
Author: Julian Graham <address@hidden>
Date:   Thu May 27 21:32:20 2010 -0400

    Ignore explicit phase specification for imports in `library' form.
    
    * module/ice-9/r6rs-libraries.scm (library): Unwrap the `for' sub-form
      during export resolution the same way that `import' does.
    * test-suite/tests/rnrs-libraries.test ("implicit phasing"): New test
      prefix and tests.

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

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

diff --git a/module/ice-9/r6rs-libraries.scm b/module/ice-9/r6rs-libraries.scm
index fbe80ed..56d4300 100644
--- a/module/ice-9/r6rs-libraries.scm
+++ b/module/ice-9/r6rs-libraries.scm
@@ -161,8 +161,14 @@
        (and-map identifier? #'(name name* ...))
        (call-with-values
            (lambda ()
-             (compute-exports (map resolve-r6rs-interface #'(ispec ...))
-                              #'(espec ...)))
+             (compute-exports 
+              (map (lambda (im)
+                     (syntax-case im (for)
+                       ((for import-set import-level ...)
+                        (resolve-r6rs-interface #'import-set))
+                       (import-set (resolve-r6rs-interface #'import-set))))
+                   #'(ispec ...))
+              #'(espec ...)))
          (lambda (exports re-exports)
            (with-syntax (((e ...) exports)
                          ((r ...) re-exports))
diff --git a/test-suite/tests/rnrs-libraries.test 
b/test-suite/tests/rnrs-libraries.test
index 9f6f6c1..4396c67 100644
--- a/test-suite/tests/rnrs-libraries.test
+++ b/test-suite/tests/rnrs-libraries.test
@@ -114,6 +114,21 @@
     (equal? (eval '(double 20) (current-module))
             40)))
 
+;; Guile should ignore explicit phase specifications
+;;
+(with-test-prefix "implicit phasing"
+  (with-test-prefix "in library form"
+    (pass-if "explicit phasing ignored"
+      (import (for (guile) (meta -1))) #t))
+
+  (with-test-prefix "in library form"
+    (pass-if "explicit phasing ignored"
+      (save-module-excursion
+       (lambda () 
+         (library (test) 
+           (export) 
+           (import (for (guile) (meta -1)))) 
+         #t)))))
 
 ;; Now import features.
 ;;


hooks/post-receive
-- 
GNU Guile



reply via email to

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