diff --git a/src/ikarus.boot b/src/ikarus.boot index 05ff88a..439d164 100644 Binary files a/src/ikarus.boot and b/src/ikarus.boot differ diff --git a/src/library-manager.ss b/src/library-manager.ss index ae76dab..ac5f412 100644 --- a/src/library-manager.ss +++ b/src/library-manager.ss @@ -45,7 +45,8 @@ (error 'install-library "~s is already installed" name)) (let ([lib (make-library id name ver imp-lib* vis-lib* inv-lib* exp-subst exp-env visit-code invoke-code)]) - (set! *all-libraries* (cons lib *all-libraries*))))) + (set! *all-libraries* (cons lib *all-libraries*)) + ))) (define scheme-env ; the-env '([define define-label (define)] diff --git a/src/libsyntax.ss b/src/libsyntax.ss index 9b09b24..9ba411e 100644 --- a/src/libsyntax.ss +++ b/src/libsyntax.ss @@ -2022,20 +2022,12 @@ (let ([label (cadr x)] [type (caddr x)] [val (cadddr x)]) (cons label (cons type val)))) exp*)]) - (build-application no-source - (build-primref no-source 'install-library) - (list (build-data no-source id) - (build-data no-source name) - (build-data no-source ver) - (build-data no-source imp*) - (build-data no-source vis*) - (build-data no-source inv*) - (build-data no-source exp-subst) - (build-data no-source exp-env) - (build-primref no-source 'void) - (build-sequence no-source - (list invoke-code - (build-primref no-source 'void))))))))) + (install-library id name ver + imp* vis* inv* exp-subst exp-env + void + (lambda () (compile-time-eval-hook invoke-code))) + (invoke-library (find-library-by-name name)) + (build-void))))) (define boot-library-expander (lambda (x) (let-values ([(name imp* run* invoke-code exp*) @@ -2089,6 +2081,22 @@ #!eof junk +(build-application no-source + (build-primref no-source 'install-library) + (list (build-data no-source id) + (build-data no-source name) + (build-data no-source ver) + (build-data no-source imp*) + (build-data no-source vis*) + (build-data no-source inv*) + (build-data no-source exp-subst) + (build-data no-source exp-env) + (build-primref no-source 'void) + (build-sequence no-source + (list invoke-code + (build-primref no-source 'void))))) + + (module (make-stx stx? stx-expr stx-mark* stx-subst*) (define make-stx (lambda (e m* s*)