~ chicken-core (chicken-5) 044fd609cb3fc77fdefbde1069f70fd945b92189
commit 044fd609cb3fc77fdefbde1069f70fd945b92189
Author: Evan Hanson <evhan@foldling.org>
AuthorDate: Tue Feb 9 07:34:10 2016 +1300
Commit: Evan Hanson <evhan@foldling.org>
CommitDate: Tue Mar 8 22:52:35 2016 +1300
Only require-for-syntax one library at a time
diff --git a/core.scm b/core.scm
index 9fc85544..33ebf6a6 100644
--- a/core.scm
+++ b/core.scm
@@ -672,7 +672,7 @@
,(walk (caddr x) e se dest ldest h ln)))
((##core#require-for-syntax)
- (for-each ##sys#load-extension (cdr x))
+ (##sys#load-extension (cadr x))
'(##core#undefined))
((##core#require)
diff --git a/eval.scm b/eval.scm
index 485afb67..8a4f0aef 100644
--- a/eval.scm
+++ b/eval.scm
@@ -703,13 +703,13 @@
(compile `(##sys#provide (##core#quote ,(cadr x))) e #f tf cntr se)]
[(##core#require-for-syntax)
- (let ((ids (strip-syntax (cdr x))))
- (for-each ##sys#load-extension ids)
+ (let ((id (strip-syntax (cadr x))))
+ (##sys#load-extension id)
(compile
`(##core#begin
,@(map (lambda (x)
`(##sys#load-extension (##core#quote ,x)))
- (lookup-runtime-requirements ids)))
+ (lookup-runtime-requirements id)))
e #f tf cntr se))]
[(##core#require)
@@ -1262,19 +1262,11 @@
(define (extension-information ext)
(extension-information/internal ext 'extension-information))
-(define lookup-runtime-requirements
- (let ([with-input-from-file with-input-from-file]
- [read read] )
- (lambda (ids)
- (let loop1 ([ids ids])
- (if (null? ids)
- '()
- (append
- (or (and-let* ((info (extension-information/internal (car ids) #f))
- (a (assq 'require-at-runtime info)))
- (cdr a) )
- '() )
- (loop1 (cdr ids)) ) ) ) ) ) )
+(define (lookup-runtime-requirements id)
+ (let ((info (extension-information/internal id #f)))
+ (cond ((not info) '())
+ ((assq 'require-at-runtime info) => cdr)
+ (else '()))))
;;
;; Given a library specification, returns three values:
Trap