* the fasl-reader in the binary handles 'Q' tags (thunks) now.

This commit is contained in:
Abdulaziz Ghuloum 2006-12-04 10:34:50 -05:00
parent 24aa0fffb3
commit 3ba89a0638
4 changed files with 8 additions and 2 deletions

Binary file not shown.

View File

@ -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){

Binary file not shown.

View File

@ -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