diff --git a/lib/ikarus.boot b/lib/ikarus.boot index 41bf313..13a4ede 100644 Binary files a/lib/ikarus.boot and b/lib/ikarus.boot differ diff --git a/lib/libfasl.ss b/lib/libfasl.ss index 6f1fe90..014723d 100644 --- a/lib/libfasl.ss +++ b/lib/libfasl.ss @@ -25,7 +25,8 @@ ;;; "{" + field-count + rtd + fields ;;; ">" + 4-bytes(i) : mark the next object with index i ;;; "<" + 4-bytes(i) : dereference the object marked with index i -;;; +;;; "x" : denotes code +;;; "T" : Thunk; followed by code. (let () @@ -195,6 +196,8 @@ (lambda (name) (make-graph ((record-field-accessor rtd name) x) h)) (record-type-field-names rtd))]))] + ;[(procedure? x) + ; (make-graph ($closure-code x) h)] [else (error 'fasl-write "~s is not fasl-writable" x)])])))) (define do-fasl-write (lambda (x port) diff --git a/lib/makefile.ss b/lib/makefile.ss index fdfa25e..588eed4 100644 --- a/lib/makefile.ss +++ b/lib/makefile.ss @@ -132,9 +132,9 @@ $symbol-plist $sc-put-cte $record? $record/rtd? $record-set! $record-ref $record-rtd $make-record $record $base-rtd $code? $code-reloc-vector $code-freevars $code-size $code-ref - $code-set! $code->closure list*->code* make-code code? - set-code-reloc-vector! code-reloc-vector code-freevars code-size - code-ref code-set! $frame->continuation $fp-at-base + $code-set! $code->closure list*->code* make-code + code? set-code-reloc-vector! code-reloc-vector code-freevars + code-size code-ref code-set! $frame->continuation $fp-at-base $current-frame $arg-list $seal-frame-and-call $make-call-with-values-procedure $make-values-procedure do-overflow collect $make-tcbucket $tcbucket-next $tcbucket-key