Fixed bug in libfasl that caused reading a thunk to return the code
instead.
This commit is contained in:
parent
0b38b1ff30
commit
d38880b777
BIN
src/ikarus.boot
BIN
src/ikarus.boot
Binary file not shown.
|
@ -4916,7 +4916,8 @@
|
|||
(primitive-set! 'assembler-output (make-parameter #f))
|
||||
(primitive-set! 'compile
|
||||
(lambda (x)
|
||||
(let ([code (compile-expr x)])
|
||||
(let ([code
|
||||
(if (code? x) x (compile-expr x))])
|
||||
(let ([proc ($code->closure code)])
|
||||
(proc)))))
|
||||
|
||||
|
|
|
@ -313,7 +313,7 @@
|
|||
(let ([clos ($code->closure code)])
|
||||
(put-mark clos-m clos)
|
||||
(set-code-reloc-vector! code (read))
|
||||
clos)]
|
||||
code)]
|
||||
[else
|
||||
(set-code-reloc-vector! code (read))
|
||||
code]))))
|
||||
|
@ -321,7 +321,8 @@
|
|||
(let ([c (read-char p)])
|
||||
(case c
|
||||
[(#\x)
|
||||
(read-code #f m)]
|
||||
(let ([code (read-code #f m)])
|
||||
(if m (vector-ref marks m) ($code->closure code)))]
|
||||
[(#\<)
|
||||
(let ([cm (read-int p)])
|
||||
(unless (fx< cm (vector-length marks))
|
||||
|
@ -333,7 +334,8 @@
|
|||
[(#\>)
|
||||
(let ([cm (read-int p)])
|
||||
(assert-eq? (read-char p) #\x)
|
||||
(read-code cm m))]
|
||||
(let ([code (read-code cm m)])
|
||||
(if m (vector-ref marks m) ($code->closure code))))]
|
||||
[else (error who "invalid code header ~s" c)])))
|
||||
(define (read/mark m)
|
||||
(define (nom)
|
||||
|
|
Loading…
Reference in New Issue