[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] GNU Guile branch, stable-2.0, updated. v2.0.5-94-ga8004d
From: |
BT Templeton |
Subject: |
[Guile-commits] GNU Guile branch, stable-2.0, updated. v2.0.5-94-ga8004dc |
Date: |
Fri, 23 Mar 2012 23:11:10 +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=a8004dcb4d7148ec66cbaa109a18715d757700eb
The branch, stable-2.0 has been updated
via a8004dcb4d7148ec66cbaa109a18715d757700eb (commit)
from da03005a2a362847db2ac7e876cd9e31b20f9c73 (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 a8004dcb4d7148ec66cbaa109a18715d757700eb
Author: BT Templeton <address@hidden>
Date: Sat Mar 10 03:31:58 2012 -0500
primitive resolution for public refs
* module/language/tree-il/primitives.scm (resolve-primitives!): Resolve
public module-refs to primitives.
* test-suite/tests/tree-il.test: New tests for primitive resolution.
-----------------------------------------------------------------------
Summary of changes:
module/language/tree-il/primitives.scm | 16 +++++++++-------
test-suite/tests/tree-il.test | 10 +++++++++-
2 files changed, 18 insertions(+), 8 deletions(-)
diff --git a/module/language/tree-il/primitives.scm
b/module/language/tree-il/primitives.scm
index c825d9a..2039faa 100644
--- a/module/language/tree-il/primitives.scm
+++ b/module/language/tree-il/primitives.scm
@@ -240,13 +240,15 @@
(module-variable mod name))
(lambda (name) (make-primitive-ref src name))))
((<module-ref> src mod name public?)
- ;; for the moment, we're disabling primitive resolution for
- ;; public refs because resolve-interface can raise errors.
- (let ((m (and (not public?) (resolve-module mod))))
- (and m
- (and=> (hashq-ref *interesting-primitive-vars*
- (module-variable m name))
- (lambda (name) (make-primitive-ref src name))))))
+ (and=> (and=> (resolve-module mod)
+ (if public?
+ module-public-interface
+ identity))
+ (lambda (m)
+ (and=> (hashq-ref *interesting-primitive-vars*
+ (module-variable m name))
+ (lambda (name)
+ (make-primitive-ref src name))))))
(else #f)))
x))
diff --git a/test-suite/tests/tree-il.test b/test-suite/tests/tree-il.test
index 3d5989e..0be5636 100644
--- a/test-suite/tests/tree-il.test
+++ b/test-suite/tests/tree-il.test
@@ -1585,7 +1585,15 @@
(lambda _
(lambda-case
(((x y) #f #f #f () (_ _))
- _)))))
+ _))))
+
+ (pass-if-peval resolve-primitives
+ ((@ (guile) car) '(1 2))
+ (const 1))
+
+ (pass-if-peval resolve-primitives
+ ((@@ (guile) car) '(1 2))
+ (const 1)))
hooks/post-receive
--
GNU Guile
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Guile-commits] GNU Guile branch, stable-2.0, updated. v2.0.5-94-ga8004dc,
BT Templeton <=