diff --git a/scheme/ikarus.boot.prebuilt b/scheme/ikarus.boot.prebuilt index 017da69..a329bc1 100644 Binary files a/scheme/ikarus.boot.prebuilt and b/scheme/ikarus.boot.prebuilt differ diff --git a/scheme/ikarus.compiler.ss b/scheme/ikarus.compiler.ss index ef22708..5903a88 100644 --- a/scheme/ikarus.compiler.ss +++ b/scheme/ikarus.compiler.ss @@ -1981,7 +1981,9 @@ (define disp-port-set-position! 36) (define disp-port-close 40) (define disp-port-cookie 44) - (define port-size 48) + (define disp-port-position 48) + (define disp-port-unused 52) + (define port-size 56) (define disp-tcbucket-tconc 0) (define disp-tcbucket-key 4) diff --git a/scheme/ikarus.io.ss b/scheme/ikarus.io.ss index a63ce46..b578228 100644 --- a/scheme/ikarus.io.ss +++ b/scheme/ikarus.io.ss @@ -13,24 +13,6 @@ ;;; You should have received a copy of the GNU General Public License ;;; along with this program. If not, see . -#; -(library (ikarus system $io tmp) - (export $make-port $port-tag $port-id $port-cookie - port? $port-transcoder - $port-index $port-size $port-buffer - $port-get-position $port-set-position! $port-close - $port-read! $port-write! $set-port-index! $set-port-size! - $port-attrs $set-port-attrs!) - (import (except (ikarus) port?)) - (define-struct $port - (attrs index size buffer transcoder - id read! write! get-position set-position! close cookie)) - (define port? $port?) - (define $set-port-index! set-$port-index!) - (define $set-port-size! set-$port-size!) - (define $set-port-attrs! set-$port-attrs!) - (define $make-port make-$port) - (define ($port-tag x) (if ($port? x) ($port-attrs x) 0))) (library (io-spec) @@ -131,7 +113,6 @@ integer->char char->integer string-ref string-set! string-length bytevector-u8-ref bytevector-u8-set!) - (import (rename (ikarus system $strings) ($string-length string-length) @@ -165,7 +146,6 @@ [(_ name) (define (name . args) (apply die 'name "not implemented" args))])) - (define-syntax u8? (let () diff --git a/scheme/last-revision b/scheme/last-revision index 837dd96..771034c 100644 --- a/scheme/last-revision +++ b/scheme/last-revision @@ -1 +1 @@ -1258 +1259 diff --git a/scheme/pass-specify-rep-primops.ss b/scheme/pass-specify-rep-primops.ss index 69d2452..eaae90e 100644 --- a/scheme/pass-specify-rep-primops.ss +++ b/scheme/pass-specify-rep-primops.ss @@ -1771,6 +1771,8 @@ (prm 'mset p (K (- disp-port-set-position! vector-tag)) (T setp)) (prm 'mset p (K (- disp-port-close vector-tag)) (T cl)) (prm 'mset p (K (- disp-port-cookie vector-tag)) (T cookie)) + (prm 'mset p (K (- disp-port-position vector-tag)) (K 0)) + (prm 'mset p (K (- disp-port-unused vector-tag)) (K 0)) p)]) (define-primop $port-index unsafe diff --git a/src/ikarus-data.h b/src/ikarus-data.h index 3722f32..ac1f03c 100644 --- a/src/ikarus-data.h +++ b/src/ikarus-data.h @@ -413,7 +413,7 @@ ikp ik_safe_alloc(ikpcb* pcb, int size); #define port_tag 0x3F #define port_mask 0x3F -#define port_size 48 +#define port_size 56 #define disp_tcbucket_tconc 0 #define disp_tcbucket_key 4