* added an "eval-top-level" procedure.
This commit is contained in:
parent
86a75e8d54
commit
2632c786ec
BIN
src/ikarus.boot
BIN
src/ikarus.boot
Binary file not shown.
|
@ -99,8 +99,7 @@ description:
|
||||||
|
|
||||||
(define default-cafe-eval
|
(define default-cafe-eval
|
||||||
(lambda (x)
|
(lambda (x)
|
||||||
(chi-top-library x)
|
(chi-top-library x)))
|
||||||
(void)))
|
|
||||||
|
|
||||||
(primitive-set! 'new-cafe
|
(primitive-set! 'new-cafe
|
||||||
(case-lambda
|
(case-lambda
|
||||||
|
|
|
@ -410,6 +410,7 @@
|
||||||
[command-line-arguments command-line-arguments-label (core-prim . command-line-arguments)]
|
[command-line-arguments command-line-arguments-label (core-prim . command-line-arguments)]
|
||||||
[list*->code* list*->code*-label (core-prim . list*->code*)]
|
[list*->code* list*->code*-label (core-prim . list*->code*)]
|
||||||
[install-library install-library-label (core-prim . install-library)]
|
[install-library install-library-label (core-prim . install-library)]
|
||||||
|
[eval-top-level eval-top-level-label (core-prim . eval-top-level)]
|
||||||
;;; record/mid-level
|
;;; record/mid-level
|
||||||
[record? record?-label (core-prim . record?)]
|
[record? record?-label (core-prim . record?)]
|
||||||
[make-record-type make-record-type-label (core-prim . make-record-type)]
|
[make-record-type make-record-type-label (core-prim . make-record-type)]
|
||||||
|
|
|
@ -1575,6 +1575,13 @@
|
||||||
[(core-macro)
|
[(core-macro)
|
||||||
(let ([transformer (core-macro-transformer value)])
|
(let ([transformer (core-macro-transformer value)])
|
||||||
(transformer e r mr))]
|
(transformer e r mr))]
|
||||||
|
[(global)
|
||||||
|
(let* ([loc value]
|
||||||
|
[lib (imported-loc->library loc)])
|
||||||
|
(unless lib
|
||||||
|
(syntax-error e "BUG: cannot find defining library"))
|
||||||
|
((run-collector) lib)
|
||||||
|
(build-global-reference no-source loc))]
|
||||||
[(core-prim)
|
[(core-prim)
|
||||||
(let ([name value])
|
(let ([name value])
|
||||||
(build-primref no-source name))]
|
(build-primref no-source name))]
|
||||||
|
@ -2068,7 +2075,8 @@
|
||||||
(strip x '()))))
|
(strip x '()))))
|
||||||
(primitive-set! 'syntax-dispatch syntax-dispatch)
|
(primitive-set! 'syntax-dispatch syntax-dispatch)
|
||||||
(primitive-set! 'boot-library-expand boot-library-expander)
|
(primitive-set! 'boot-library-expand boot-library-expander)
|
||||||
(primitive-set! 'chi-top-library run-library-expander))
|
(primitive-set! 'chi-top-library run-library-expander)
|
||||||
|
(primitive-set! 'eval-top-level run-library-expander))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -791,8 +791,7 @@
|
||||||
(let ()
|
(let ()
|
||||||
(define load-handler
|
(define load-handler
|
||||||
(lambda (x)
|
(lambda (x)
|
||||||
(chi-top-library x)
|
(chi-top-library x)))
|
||||||
(void)))
|
|
||||||
(define read-and-eval
|
(define read-and-eval
|
||||||
(lambda (p eval-proc)
|
(lambda (p eval-proc)
|
||||||
(let ([x (my-read p)])
|
(let ([x (my-read p)])
|
||||||
|
|
Loading…
Reference in New Issue