guile-commits
[Top][All Lists]
Advanced

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

[Guile-commits] GNU Guile branch, wip-r6rs-libraries, updated. release_1


From: Julian Graham
Subject: [Guile-commits] GNU Guile branch, wip-r6rs-libraries, updated. release_1-9-7-49-g42ba29c
Date: Sun, 07 Feb 2010 06:29:49 +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=42ba29c2ffc509ab131e390d8fdec59bfceed31a

The branch, wip-r6rs-libraries has been updated
       via  42ba29c2ffc509ab131e390d8fdec59bfceed31a (commit)
      from  9db67bccd9414bd9c4a2d4edf0c8173a46562ac3 (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 42ba29c2ffc509ab131e390d8fdec59bfceed31a
Author: Julian Graham <address@hidden>
Date:   Sun Feb 7 01:29:45 2010 -0500

    Fix export issue in `library' form.
    
    * module/ice-9/boot-9.scm (library): Don't test the obarray after export;
      Do the export and re-export after checking everything.

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

Summary of changes:
 module/ice-9/boot-9.scm |   26 ++++++++++++++------------
 1 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/module/ice-9/boot-9.scm b/module/ice-9/boot-9.scm
index 6208264..8dccc51 100644
--- a/module/ice-9/boot-9.scm
+++ b/module/ice-9/boot-9.scm
@@ -3063,19 +3063,21 @@ module '(ice-9 q) '(make-q q-length))}."
             (imports (syntax->datum #'imports))
             (body (syntax->datum #'body)))
         #`(begin
-            (define-module #,(datum->syntax stx name) #:version #,version)
+            (define m (define-module #,(datum->syntax stx name) 
+                        #:version #,version))
             #,@(datum->syntax stx (map (lambda (i) (list 'import i)) imports))
-            (let ((ob (module-obarray (current-module))))
-              (module-export! 
-               (current-module) 
-               (filter (lambda (s) (hashq-ref ob (if (pair? s) (car s) s)))
-                       #,(datum->syntax stx (list 'quote exports))))
-              (module-re-export! 
-               (current-module)
-               (filter (lambda (s)
-                         (not (hashq-ref ob (if (pair? s) (car s) s))))
-                       #,(datum->syntax stx (list 'quote exports)))))
-            (purify-module! (current-module))
+            (let f ((local-exports '())
+                    (re-exports '())
+                    (el #,(datum->syntax stx (list 'quote exports))))
+              (if (null? el)
+                  (begin
+                    (module-export! m local-exports)
+                    (module-re-export! m re-exports))
+                  (let ((ce (car el)))
+                    (if (module-bound? m (if (pair? ce) (car ce) ce))
+                        (f local-exports (cons ce re-exports) (cdr el))
+                        (f (cons ce local-exports) re-exports (cdr el))))))
+            (purify-module! m)
             #,@(datum->syntax stx body)))))))
     
 (define-syntax import


hooks/post-receive
-- 
GNU Guile




reply via email to

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