diff --git a/src/ikarus.boot b/src/ikarus.boot index fcba18d..a3fed73 100644 Binary files a/src/ikarus.boot and b/src/ikarus.boot differ diff --git a/src/ikarus.syntax.ss b/src/ikarus.syntax.ss index d4a5629..910f0c9 100644 --- a/src/ikarus.syntax.ss +++ b/src/ikarus.syntax.ss @@ -13,7 +13,7 @@ eval-r6rs-top-level boot-library-expand eval-top-level null-environment) (import - (r6rs) + (rnrs) (except (ikarus library-manager) installed-libraries) (only (ikarus system $bootstrap) eval-core) (chez modules) @@ -22,8 +22,8 @@ (only (ikarus) error printf ormap andmap cons* format make-record-type void set-rtd-printer! type-descriptor pretty-print) - (only (r6rs syntax-case) syntax-case syntax with-syntax) - (prefix (r6rs syntax-case) sys:)) + (only (rnrs syntax-case) syntax-case syntax with-syntax) + (prefix (rnrs syntax-case) sys:)) (define who 'expander) (define-syntax no-source (lambda (x) #f)) diff --git a/src/makefile.ss b/src/makefile.ss index 6e46d96..32be695 100755 --- a/src/makefile.ss +++ b/src/makefile.ss @@ -64,6 +64,7 @@ "ikarus.fasl.ss" "ikarus.compiler.ss" "ikarus.library-manager.ss" + ;"psyntax.library-manager.ss" "ikarus.syntax.ss" "ikarus.load.ss" "ikarus.pretty-print.ss" @@ -129,6 +130,123 @@ )) (define library-legend + ;; abbr. name visible? required? + '([i (ikarus) #t] + [cm (chez modules) #t] + [symbols (ikarus symbols) #t] + [parameters (ikarus parameters) #t] + [interaction (ikarus interaction) #t] + [ne (ikarus null-environment-5) #t] + [se (ikarus scheme-report-environment-5) #t] + [r (rnrs) #t] + [r5 (rnrs r5rs) #t] + [ct (rnrs control) #t] + [ev (rnrs eval) #t] + [mp (rnrs mutable-pairs) #t] + [ms (rnrs mutable-strings) #t] + [pr (rnrs programs) #t] + [sc (rnrs syntax-case) #t] + [fi (rnrs files) #t] + [sr (rnrs sorting) #t] + [ba (rnrs base) #t] + [ls (rnrs lists) #t] + [is (rnrs io simple) #t] + [bv (rnrs bytevectors) #t] + [uc (rnrs unicode) #t] + [ex (rnrs exceptions) #t] + [bw (rnrs arithmetic bitwise) #t] + [fx (rnrs arithmetic fixnums) #t] + [fl (rnrs arithmetic flonums) #t] + [ht (rnrs hashtables) #t] + [ip (rnrs io ports) #t] + [en (rnrs enums) #t] + [co (rnrs conditions) #t] + [ri (rnrs records inspection) #t] + [rp (rnrs records procedural) #t] + [rs (rnrs records syntactic) #t] + [$pairs (ikarus system $pairs) #f] + [$lists (ikarus system $lists) #f] + [$chars (ikarus system $chars) #f] + [$strings (ikarus system $strings) #f] + [$vectors (ikarus system $vectors) #f] + [$flonums (ikarus system $flonums) #f] + [$bignums (ikarus system $bignums) #f] + [$bytes (ikarus system $bytevectors) #f] + [$fx (ikarus system $fx) #f] + [$rat (ikarus system $ratnums) #f] + [$symbols (ikarus system $symbols) #f] + [$records (ikarus system $records) #f] + [$ports (ikarus system $ports) #f] + [$codes (ikarus system $codes) #f] + [$tcbuckets (ikarus system $tcbuckets) #f] + [$io (ikarus system $io) #f] + [$arg-list (ikarus system $arg-list) #f] + [$stack (ikarus system $stack) #f] + [$interrupts (ikarus system $interrupts) #f] + [$all (ikarus system $all) #f] + [$boot (ikarus system $bootstrap) #f] + )) + +(define library-legend2 + ;; abbr. name visible? required? + '([i (ikarus) #t] + [cm (chez modules) #t] + [symbols (ikarus symbols) #t] + [parameters (ikarus parameters) #t] + [interaction (ikarus interaction) #t] + [ne (ikarus null-environment-5) #t] + [se (ikarus scheme-report-environment-5) #t] + [r (rnrs) #t] + [r5 (rnrs r5rs) #t] + [ct (rnrs control) #t] + [ev (rnrs eval) #t] + [mp (rnrs mutable-pairs) #t] + [ms (rnrs mutable-strings) #t] + [pr (rnrs programs) #t] + [sc (rnrs syntax-case) #t] + [fi (rnrs files) #t] + [sr (rnrs sorting) #t] + [ba (rnrs base) #t] + [ls (rnrs lists) #t] + [is (rnrs io simple) #t] + [bv (rnrs bytevectors) #t] + [uc (rnrs unicode) #t] + [ex (rnrs exceptions) #t] + [bw (rnrs arithmetic bitwise) #t] + [fx (rnrs arithmetic fixnums) #t] + [fl (rnrs arithmetic flonums) #t] + [ht (rnrs hashtables) #t] + [ip (rnrs io ports) #t] + [en (rnrs enums) #t] + [co (rnrs conditions) #t] + [ri (rnrs records inspection) #t] + [rp (rnrs records procedural) #t] + [rs (rnrs records syntactic) #t] + [$pairs (ikarus system $pairs) #f] + [$lists (ikarus system $lists) #f] + [$chars (ikarus system $chars) #f] + [$strings (ikarus system $strings) #f] + [$vectors (ikarus system $vectors) #f] + [$flonums (ikarus system $flonums) #f] + [$bignums (ikarus system $bignums) #f] + [$bytes (ikarus system $bytevectors) #f] + [$fx (ikarus system $fx) #f] + [$rat (ikarus system $ratnums) #f] + [$symbols (ikarus system $symbols) #f] + [$records (ikarus system $records) #f] + [$ports (ikarus system $ports) #f] + [$codes (ikarus system $codes) #f] + [$tcbuckets (ikarus system $tcbuckets) #f] + [$io (ikarus system $io) #f] + [$arg-list (ikarus system $arg-list) #f] + [$stack (ikarus system $stack) #f] + [$interrupts (ikarus system $interrupts) #f] + [$all (ikarus system $all) #f] + [$boot (ikarus system $bootstrap) #f] + )) + + +#;(define library-legend2 '([i (ikarus) #t] [symbols (ikarus symbols) #t] [parameters (ikarus parameters) #t] @@ -165,44 +283,6 @@ [$boot (ikarus system $bootstrap) #f] )) -(define library-legend2 - '([i (ikarus) #t] - [symbols (ikarus symbols) #t] - [parameters (ikarus parameters) #t] - [interaction (ikarus interaction) #t] - [ne (ikarus null-environment-5) #t] - [r (r6rs) #t] - [syncase (r6rs syntax-case) #t] - [mutable-pairs (r6rs mutable-pairs) #t] - [unicode (r6rs unicode) #t] - [rfl (r6rs arithmetic flonums) #t] - [ios (r6rs i/o simple) #t] - [ev (r6rs eval) #t] - [cm (chez modules) #t] - [$all (ikarus system $all) #f] - [$pairs (ikarus system $pairs) #f] - [$lists (ikarus system $lists) #f] - [$chars (ikarus system $chars) #f] - [$strings (ikarus system $strings) #f] - [$vectors (ikarus system $vectors) #f] - [$flonums (ikarus system $flonums) #f] - [$bignums (ikarus system $bignums) #f] - [$bytes (ikarus system $bytevectors) #f] - [$fx (ikarus system $fx) #f] - [$rat (ikarus system $ratnums) #f] - [$symbols (ikarus system $symbols) #f] - [$records (ikarus system $records) #f] - [$ports (ikarus system $ports) #f] - [$codes (ikarus system $codes) #f] - [$tcbuckets (ikarus system $tcbuckets) #f] - [$io (ikarus system $io) #f] - [$arg-list (ikarus system $arg-list) #f] - [$stack (ikarus system $stack) #f] - [$interrupts (ikarus system $interrupts) #f] - [$boot (ikarus system $bootstrap) #f] - )) - - (define bootstrap-collection (let ([ls (map (lambda (x) @@ -226,8 +306,8 @@ [set! i r ne] [foreign-call i] [quote i r ne] - [syntax-case i syncase] - [syntax i syncase] + [syntax-case i sc] + [syntax i sc] [lambda i r ne] [case-lambda i r] [type-descriptor i ] @@ -243,8 +323,8 @@ [include i r] [syntax-rules i r ne] [quasiquote i r ne] - [quasisyntax i syncase] - [with-syntax i syncase] + [quasisyntax i sc] + [with-syntax i sc] [let i r ne] [identifier-syntax i r] [let* i r ne] @@ -284,8 +364,8 @@ [pair? i r] [car i r] [cdr i r] - [set-car! i mutable-pairs] - [set-cdr! i mutable-pairs] + [set-car! i mp] + [set-cdr! i mp] [caar i r] [cdar i r] [cadr i r] @@ -353,21 +433,21 @@ [char>=? i r] [integer->char i r] [char->integer i r] - [char-downcase i unicode] - [char-upcase i unicode] - [char-titlecase i unicode] - [char-foldcase i unicode] - [char-ci=? i unicode] - [char-ci? i unicode] - [char-ci>=? i unicode] - [char-alphabetic? i unicode] - [char-numeric? i unicode] - [char-whitespace? i r unicode] - [char-upper-case? i unicode] - [char-lower-case? i unicode] - [char-title-case? i unicode] + [char-downcase i uc] + [char-upcase i uc] + [char-titlecase i uc] + [char-foldcase i uc] + [char-ci=? i uc] + [char-ci? i uc] + [char-ci>=? i uc] + [char-alphabetic? i uc] + [char-numeric? i uc] + [char-whitespace? i r uc] + [char-upper-case? i uc] + [char-lower-case? i uc] + [char-title-case? i uc] [string? i r] [string i r] [make-string i r] @@ -380,17 +460,17 @@ [string<=? i r] [string>? i r] [string>=? i r] - [string-ci=? i unicode] - [string-ci? i unicode] - [string-ci>=? i unicode] + [string-ci=? i uc] + [string-ci? i uc] + [string-ci>=? i uc] [substring i r] [string-copy i r] [string-append i r] [string->list i r] [list->string i r] - [string-foldcase i unicode] + [string-foldcase i uc] [string-for-each i r] [uuid i] [date-string i] @@ -445,7 +525,6 @@ [utf8-bytevector->string i] [native-endianness i] [$two-bignums i] - [fxior i] [fxand i] [fxxor i] @@ -463,11 +542,9 @@ [fixnum-width i] [least-fixnum i] [greatest-fixnum i] - [fx+/carry i] [fx*/carry i] [fx-/carry i] - [for-each i r] [map i r] [andmap i] @@ -501,42 +578,39 @@ [fxlogxor i] [fxlogor i] [fxlognot i] - - [bitwise-arithmetic-shift-right i] [bitwise-arithmetic-shift-left i] [bitwise-arithmetic-shift i] - - [fl=? i rfl] - [fl? i rfl] - [fl>=? i rfl] - [fl+ i rfl] - [fl* i rfl] - [fl- i rfl] - [fl/ i rfl] - [flmin i rfl] - [flsqrt i rfl] - [flzero? i rfl] - [flnegative? i rfl] - [flpositive? i rfl] - [flabs i rfl] - [flmax i rfl] - [flsin i rfl] - [flcos i rfl] - [fltan i rfl] - [flasin i rfl] - [flacos i rfl] - [flatan i rfl] - [flfloor i rfl] - [flround i rfl] - [flceiling i rfl] - [fltruncate i rfl] - [flnumerator i rfl] - [fldenominator i rfl] - [flexp i rfl] - [fllog i rfl] + [fl=? i fl] + [fl? i fl] + [fl>=? i fl] + [fl+ i fl] + [fl* i fl] + [fl- i fl] + [fl/ i fl] + [flmin i fl] + [flsqrt i fl] + [flzero? i fl] + [flnegative? i fl] + [flpositive? i fl] + [flabs i fl] + [flmax i fl] + [flsin i fl] + [flcos i fl] + [fltan i fl] + [flasin i fl] + [flacos i fl] + [flatan i fl] + [flfloor i fl] + [flround i fl] + [flceiling i fl] + [fltruncate i fl] + [flnumerator i fl] + [fldenominator i fl] + [flexp i fl] + [fllog i fl] [fixnum->string i] [string->flonum i] [- i r] @@ -687,7 +761,7 @@ [read i r] [read-char i r] [read-token i] - [peek-char i ios] + [peek-char i is] [unread-char i] [newline i r] [printf i] @@ -744,20 +818,18 @@ [record-set! i] [record-field-accessor i] [record-field-mutator i] - [identifier? i syncase] - [syntax-error i syncase] - [generate-temporaries i syncase] - [free-identifier=? i syncase] - [bound-identifier=? i syncase] - [syntax->datum i syncase] - [datum->syntax i syncase] - [make-variable-transformer i syncase] + [identifier? i sc] + [syntax-error i sc] + [generate-temporaries i sc] + [free-identifier=? i sc] + [bound-identifier=? i sc] + [syntax->datum i sc] + [datum->syntax i sc] + [make-variable-transformer i sc] [code? i] [immediate? i] [pointer-value i] - [system i] - [installed-libraries i] [current-primitive-locations $boot] [boot-library-expand $boot] @@ -765,15 +837,12 @@ [current-library-collection $boot] [library-name $boot] [find-library-by-name $boot] - [$car $pairs] [$cdr $pairs] [$set-car! $pairs] [$set-cdr! $pairs] - [$memq $lists] [$memv $lists] - [$char? $chars] [$char= $chars] [$char< $chars] @@ -782,20 +851,16 @@ [$char>= $chars] [$char->fixnum $chars] [$fixnum->char $chars] - [$make-string $strings] [$string-ref $strings] [$string-set! $strings] [$string-length $strings] - [bytevector? i] - [$make-bytevector $bytes] [$bytevector-length $bytes] [$bytevector-s8-ref $bytes] [$bytevector-u8-ref $bytes] [$bytevector-set! $bytes] - [$flonum-u8-ref $flonums] [$make-flonum $flonums] [$flonum-set! $flonums] @@ -812,22 +877,18 @@ [$fl> $flonums] [$fl>= $flonums] [$fixnum->flonum $flonums] - [$make-bignum $bignums] [$bignum-positive? $bignums] [$bignum-size $bignums] [$bignum-byte-ref $bignums] [$bignum-byte-set! $bignums] - [$make-ratnum $rat] [$ratnum-n $rat] [$ratnum-d $rat] - [$make-vector $vectors] [$vector-length $vectors] [$vector-ref $vectors] [$vector-set! $vectors] - [$fxzero? $fx] [$fxadd1 $fx] [$fxsub1 $fx] @@ -848,7 +909,6 @@ [$fx* $fx] [$fx- $fx] [$fxinthash $fx] - [$make-symbol $symbols] [$symbol-unique-string $symbols] [$symbol-value $symbols] @@ -860,7 +920,6 @@ [$set-symbol-unique-string! $symbols] [$set-symbol-plist! $symbols] [$unbound-object? $symbols] - [base-rtd $records] [$record-set! $records] [$record-ref $records] @@ -869,7 +928,6 @@ [$make-record $records] [$record? $records] [$record/rtd? $records] - [$make-port/input $ports] [$make-port/output $ports] [$port-handler $ports] @@ -878,7 +936,6 @@ [$port-size $ports] [$set-port-index! $ports] [$set-port-size! $ports] - [$closure-code $codes] [$code->closure $codes] [$code-reloc-vector $codes] @@ -889,7 +946,6 @@ [$code-set! $codes] [$set-code-annotation! $codes] [procedure-annotation i] - [$make-tcbucket $tcbuckets] [$tcbucket-key $tcbuckets] [$tcbucket-val $tcbuckets] @@ -897,7 +953,6 @@ [$set-tcbucket-val! $tcbuckets] [$set-tcbucket-next! $tcbuckets] [$set-tcbucket-tconc! $tcbuckets] - [$flush-output-port $io] [$reset-input-port! $io] [$close-input-port $io] @@ -907,10 +962,8 @@ [$read-char $io] [$peek-char $io] [$unread-char $io] - [$arg-list $arg-list] [$collect-key $arg-list] - [$$apply $stack] [$fp-at-base $stack] [$primitive-call/cc $stack] @@ -919,7 +972,6 @@ [$seal-frame-and-call $stack] [$make-call-with-values-procedure $stack] [$make-values-procedure $stack] - [$interrupted? $interrupts] [$unset-interrupted! $interrupts] ;;; the following must be defined but they don't have