diff --git a/lib/ikarus.boot b/lib/ikarus.boot index bf1fd2a..166dda4 100644 Binary files a/lib/ikarus.boot and b/lib/ikarus.boot differ diff --git a/lib/libcompile.ss b/lib/libcompile.ss index 9975e21..8438bf9 100644 --- a/lib/libcompile.ss +++ b/lib/libcompile.ss @@ -184,6 +184,7 @@ [$code-ref 2 value] [$code-set! 3 value] [$code->closure 1 value] + [$closure-code 1 value] ;;; [$make-call-with-values-procedure 0 value] [$make-values-procedure 0 value] @@ -1318,6 +1319,7 @@ $set-symbol-unique-string! $set-symbol-string! $seal-frame-and-call $frame->continuation $code->closure + $closure-code $code-size $code-reloc-vector $code-freevars $code-ref $code-set! $make-record $record? $record/rtd? $record-rtd $record-ref $record-set! @@ -3006,6 +3008,10 @@ (indirect-ref arg* (fx- disp-code-relocsize vector-tag) ac)] [($code-freevars) (indirect-ref arg* (fx- disp-code-freevars vector-tag) ac)] + [($closure-code) + (indirect-ref arg* (fx- disp-closure-code closure-tag) + (list* (addl (int (fx- vector-tag disp-code-data)) eax) + ac))] [($set-car! $set-cdr! $vector-set! $string-set! $exit $set-symbol-value! $set-symbol-plist! $code-set! primitive-set! diff --git a/lib/libwriter.ss b/lib/libwriter.ss index f2ec7df..8df52d8 100644 --- a/lib/libwriter.ss +++ b/lib/libwriter.ss @@ -308,8 +308,8 @@ (if (procedure? printer) (begin (printer x p) i) (write-shareable x p m h i write-record)))] - ;[(code? x) - ; (write-char* "#" p)] + [(code? x) + (write-char* "#" p)] [(hash-table? x) (write-char* "#" p) i] diff --git a/lib/makefile.ss b/lib/makefile.ss old mode 100644 new mode 100755 index 62ff2bb..6b6aaf1 --- a/lib/makefile.ss +++ b/lib/makefile.ss @@ -1,4 +1,4 @@ - +#!/Users/aghuloum/.opt/bin/ikarus --script ;;; 9.1: * starting with libnumerics ;;; 9.0: * graph marks for both reader and writer