ref: 70246f96c1b3c628b758e6d6939e0a7c9a71d481
dir: /tools/mkboot0.lsp/
(def update-compiler
(let ((C ()))
(with-bindings
((eval (λ (x) (set! C (cons (compile-thunk (macroexpand x)) C)))))
(begin
(load "instructions.lsp")
(load "compiler.lsp")))
(λ () (begin
(for-each (λ (x) (x)) (reverse! C))
(set! update-compiler (λ () ()))))))
(def (compile-file inf)
(let ((in (file inf :read)))
(let next ((E (read in)))
(if (not (io-eof? in))
(begin
(print (compile-thunk (macroexpand E)))
(newline)
(next (read in)))))
(io-close in)))
(def (do-boot0)
(for-each (λ (file)
(compile-file file))
(cdr *argv*)))
(update-compiler)
(do-boot0)