~ chicken-r7rs (master) 2b99d51f94ec4cb41711b8fdc317b3a030e893a6
commit 2b99d51f94ec4cb41711b8fdc317b3a030e893a6
Author: Peter Bex <peter@more-magic.net>
AuthorDate: Fri Jul 26 18:55:59 2013 +0000
Commit: Evan Hanson <evhan@foldling.org>
CommitDate: Fri Jul 26 18:55:59 2013 +0000
Fix import spec to expand to use instead of just plain import; the code needs to be loaded!
diff --git a/r7rs-compile-time.scm b/r7rs-compile-time.scm
index 1dfa50d..11c1a08 100644
--- a/r7rs-compile-time.scm
+++ b/r7rs-compile-time.scm
@@ -92,9 +92,11 @@
(spec (syntax-error 'define-library "invalid export specifier" spec name)))
specs))
(define (parse-imports specs)
- (map (lambda (spec)
- `(import ,(fixup-import/export-spec spec 'import)))
- specs))
+ ;; What R7RS calls IMPORT, we call USE (it imports *and* loads code)
+ ;; XXX TODO: Should be import-for-syntax'ed as well?
+ `(##core#require-extension
+ ,(map (lambda (s) (fixup-import/export-spec s 'import)) specs)
+ #t))
(define (process-includes fnames ci?)
`(##core#begin
,@(map (match-lambda
@@ -113,7 +115,7 @@
,(parse-decls more)))
((('import specs ...) . more)
`(##core#begin
- ,@(parse-imports specs)
+ ,(parse-imports specs)
,(parse-decls more)))
((('include fnames ...) . more)
`(##core#begin
@@ -128,8 +130,8 @@
,@(process-include-decls fnames)
,(parse-decls more)))
((('cond-expand decls ...) . more)
- `(##core#begin
- ,(parse-decls (process-cond-expand decls))
+ `(##core#begin
+ ,(parse-decls (process-cond-expand decls))
,(parse-decls more)))
((('begin code ...) . more)
`(##core#begin
Trap