* the fasl-reader in the binary handles 'Q' tags (thunks) now.
This commit is contained in:
parent
24aa0fffb3
commit
3ba89a0638
BIN
bin/ikarus
BIN
bin/ikarus
Binary file not shown.
|
@ -358,7 +358,7 @@ static ikp do_read(ikpcb* pcb, fasl_port* p){
|
|||
}
|
||||
return rtd;
|
||||
}
|
||||
else if(c == 'T'){ /* thunk */
|
||||
else if(c == 'Q'){ /* thunk */
|
||||
fprintf(stderr, "THUNK\n");
|
||||
ikp proc = ik_alloc(pcb, align(disp_closure_data)) + closure_tag;
|
||||
if(put_mark_index){
|
||||
|
|
BIN
lib/ikarus.boot
BIN
lib/ikarus.boot
Binary file not shown.
|
@ -234,6 +234,7 @@
|
|||
(define-record clambda (cases))
|
||||
(define-record clambda-code (label cases free))
|
||||
(define-record closure (code free*))
|
||||
(define-record thunk (code))
|
||||
(define-record funcall (op rand*))
|
||||
(define-record appcall (op rand*))
|
||||
(define-record forcall (op rand*))
|
||||
|
@ -3892,7 +3893,12 @@
|
|||
(lambda (ls)
|
||||
(for-each (lambda (x) (printf " ~s\n" x)) ls))
|
||||
ls*))
|
||||
(let ([code* (list*->code* (lambda (x) #f) ls*)])
|
||||
(let ([code* (list*->code*
|
||||
(lambda (x)
|
||||
(if (thunk? x)
|
||||
(thunk-code x)
|
||||
#f))
|
||||
ls*)])
|
||||
(car code*)))))
|
||||
|
||||
(define compile-file
|
||||
|
|
Loading…
Reference in New Issue