~ 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