compile to new vm

This commit is contained in:
Yuichi Nishiwaki 2017-04-14 23:06:10 +09:00
parent 6968a9d9ef
commit 70600fec3e
4 changed files with 2052 additions and 776 deletions

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -198,7 +198,7 @@
(define (expand-define-macro var transformer env) (define (expand-define-macro var transformer env)
(let ((uid (add-identifier! var env))) (let ((uid (add-identifier! var env)))
(let ((expander (load (expand transformer env)))) (let ((expander (load (compile (expand transformer env)))))
(add-macro! uid expander) (add-macro! uid expander)
#undefined))) #undefined)))
@ -891,5 +891,5 @@
;; eval ;; eval
(define (eval expr . env) (define (eval expr . env)
(load (expand expr (if (null? env) default-environment (car env)))))) (load (compile (expand expr (if (null? env) default-environment (car env)))))))

View File

@ -1,7 +1,7 @@
(import (scheme base) (import (scheme base)
(scheme read) (scheme read)
(scheme write) (scheme write)
(only (picrin base) compile)) (only (picrin base) compile expand default-environment))
(define (generate-rom) (define (generate-rom)
@ -16,7 +16,7 @@
(define text (define text
(with-output-to-string (with-output-to-string
(lambda () (lambda ()
(write (compile (read)))))) (write (compile (expand (read) default-environment))))))
(define (escape-string s) (define (escape-string s)
(with-output-to-string (with-output-to-string