~ 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