~ chicken-core (chicken-5) 4e36ed938b523d1d3b89e2df48065c47edfc395e
commit 4e36ed938b523d1d3b89e2df48065c47edfc395e
Author: felix <felix@call-with-current-continuation.org>
AuthorDate: Thu Jun 23 19:54:52 2011 +0200
Commit: felix <felix@call-with-current-continuation.org>
CommitDate: Thu Jun 23 19:54:52 2011 +0200
treat core syntax-modules differently when doing the right thing
diff --git a/chicken-install.scm b/chicken-install.scm
index a19ce5ff..e6d692b1 100644
--- a/chicken-install.scm
+++ b/chicken-install.scm
@@ -214,7 +214,9 @@
(define (ext-version x)
(cond ((or (eq? x 'chicken)
(equal? x "chicken")
- (member (->string x) ##sys#core-library-modules))
+ (let ((xs (->string x)))
+ (or (member xs ##sys#core-library-modules)
+ (member xs ##sys#core-syntax-modules))))
(chicken-version) )
((extension-information x) =>
(lambda (info)
diff --git a/eval.scm b/eval.scm
index 0d55ca8b..dfad23e9 100644
--- a/eval.scm
+++ b/eval.scm
@@ -56,8 +56,10 @@
(define ##sys#core-library-modules
'(extras lolevel utils files tcp irregex posix srfi-1 srfi-4 srfi-13
- srfi-14 srfi-18 srfi-69 data-structures ports chicken-syntax
- chicken-ffi-syntax))
+ srfi-14 srfi-18 srfi-69 data-structures ports))
+
+(define ##sys#core-syntax-modules
+ '(chicken-syntax chicken-ffi-syntax))
(define ##sys#explicit-library-modules '())
@@ -1152,7 +1154,8 @@
(else (##sys#check-symbol id loc)) )
(let ([p (##sys#canonicalize-extension-path id loc)])
(cond ((member p ##sys#loaded-extensions))
- ((memq id ##sys#core-library-modules)
+ ((or (memq id ##sys#core-library-modules)
+ (memq id ##sys#core-syntax-modules))
(or (##sys#load-library-0 id #f)
(and err?
(##sys#error loc "cannot load core library" id))))
@@ -1253,6 +1256,14 @@
`(##sys#load-library ',id #f) )
impid #f)
#t) )
+ ((memq id ##sys#core-syntax-modules)
+ (values
+ (impform
+ (if comp?
+ `(##core#declare (uses ,id))
+ `(##sys#load-library ',id #f) )
+ impid #t)
+ #t) )
((memq id ##sys#explicit-library-modules)
(let* ((info (##sys#extension-information id 'require-extension))
(nr (assq 'import-only info))
Trap