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