[
[ execute " word -- " f ]
- [ call " quot -- " [ 1 | 0 ] ]
- [ ifte " cond true false -- " [ 3 | 0 ] ]
+ [ call " quot -- " [ [ general-list ] [ ] ] ]
+ [ ifte " cond true false -- " [ [ object general-list general-list ] [ ] ] ]
[ cons " car cdr -- [ car | cdr ] " [ [ object object ] [ cons ] ] ]
[ car " [ car | cdr ] -- car " [ [ cons ] [ object ] ] ]
[ cdr " [ car | cdr ] -- cdr " [ [ cons ] [ object ] ] ]
- [ <vector> " capacity -- vector" [ 1 | 1 ] ]
- [ vector-length " vector -- n " [ 1 | 1 ] ]
- [ set-vector-length " n vector -- " [ 2 | 0 ] ]
- [ vector-nth " n vector -- obj " [ 2 | 1 ] ]
- [ set-vector-nth " obj n vector -- " [ 3 | 0 ] ]
- [ str-length " str -- n " [ 1 | 1 ] ]
- [ str-nth " n str -- ch " [ 2 | 1 ] ]
- [ str-compare " str str -- -1/0/1 " [ 2 | 1 ] ]
- [ str= " str str -- ? " [ 2 | 1 ] ]
- [ str-hashcode " str -- n " [ 1 | 1 ] ]
- [ index-of* " n str/ch str -- n " [ 3 | 1 ] ]
- [ substring " start end str -- str " [ 3 | 1 ] ]
- [ str-reverse " str -- str " [ 1 | 1 ] ]
- [ <sbuf> " capacity -- sbuf " [ 1 | 1 ] ]
- [ sbuf-length " sbuf -- n " [ 1 | 1 ] ]
- [ set-sbuf-length " n sbuf -- " [ 2 | 1 ] ]
- [ sbuf-nth " n sbuf -- ch " [ 2 | 1 ] ]
- [ set-sbuf-nth " ch n sbuf -- " [ 3 | 0 ] ]
- [ sbuf-append " ch/str sbuf -- " [ 2 | 0 ] ]
- [ sbuf>str " sbuf -- str " [ 1 | 1 ] ]
- [ sbuf-reverse " sbuf -- " [ 1 | 0 ] ]
- [ sbuf-clone " sbuf -- sbuf " [ 1 | 1 ] ]
- [ sbuf= " sbuf sbuf -- ? " [ 2 | 1 ] ]
- [ sbuf-hashcode " sbuf -- n " [ 1 | 1 ] ]
- [ arithmetic-type " n n -- type " [ 2 | 3 ] ]
- [ number? " obj -- ? " [ 1 | 1 ] ]
- [ >fixnum " n -- fixnum " [ 1 | 1 ] ]
- [ >bignum " n -- bignum " [ 1 | 1 ] ]
- [ >float " n -- float " [ 1 | 1 ] ]
- [ numerator " a/b -- a " [ 1 | 1 ] ]
- [ denominator " a/b -- b " [ 1 | 1 ] ]
- [ fraction> " a b -- a/b " [ 2 | 1 ] ]
- [ str>float " str -- float " [ 1 | 1 ] ]
- [ (unparse-float) " float -- str " [ 1 | 1 ] ]
- [ float>bits " float -- n " [ 1 | 1 ] ]
- [ real " #{ re im } -- re " [ 1 | 1 ] ]
- [ imaginary " #{ re im } -- im " [ 1 | 1 ] ]
- [ rect> " re im -- #{ re im } " [ 2 | 1 ] ]
- [ fixnum= " x y -- ? " [ 2 | 1 ] ]
- [ fixnum+ " x y -- x+y " [ 2 | 1 ] ]
- [ fixnum- " x y -- x-y " [ 2 | 1 ] ]
- [ fixnum* " x y -- x*y " [ 2 | 1 ] ]
- [ fixnum/i " x y -- x/y " [ 2 | 1 ] ]
- [ fixnum/f " x y -- x/y " [ 2 | 1 ] ]
- [ fixnum-mod " x y -- x%y " [ 2 | 1 ] ]
- [ fixnum/mod " x y -- x/y x%y " [ 2 | 2 ] ]
- [ fixnum-bitand " x y -- x&y " [ 2 | 1 ] ]
- [ fixnum-bitor " x y -- x|y " [ 2 | 1 ] ]
- [ fixnum-bitxor " x y -- x^y " [ 2 | 1 ] ]
- [ fixnum-bitnot " x -- ~x " [ 1 | 1 ] ]
- [ fixnum-shift " x n -- x<<n" [ 2 | 1 ] ]
- [ fixnum< " x y -- ? " [ 2 | 1 ] ]
- [ fixnum<= " x y -- ? " [ 2 | 1 ] ]
- [ fixnum> " x y -- ? " [ 2 | 1 ] ]
- [ fixnum>= " x y -- ? " [ 2 | 1 ] ]
- [ bignum= " x y -- ? " [ 2 | 1 ] ]
- [ bignum+ " x y -- x+y " [ 2 | 1 ] ]
- [ bignum- " x y -- x-y " [ 2 | 1 ] ]
- [ bignum* " x y -- x*y " [ 2 | 1 ] ]
- [ bignum/i " x y -- x/y " [ 2 | 1 ] ]
- [ bignum/f " x y -- x/y " [ 2 | 1 ] ]
- [ bignum-mod " x y -- x%y " [ 2 | 1 ] ]
- [ bignum/mod " x y -- x/y x%y " [ 2 | 2 ] ]
- [ bignum-bitand " x y -- x&y " [ 2 | 1 ] ]
- [ bignum-bitor " x y -- x|y " [ 2 | 1 ] ]
- [ bignum-bitxor " x y -- x^y " [ 2 | 1 ] ]
- [ bignum-bitnot " x -- ~x " [ 1 | 1 ] ]
- [ bignum-shift " x n -- x<<n" [ 2 | 1 ] ]
- [ bignum< " x y -- ? " [ 2 | 1 ] ]
- [ bignum<= " x y -- ? " [ 2 | 1 ] ]
- [ bignum> " x y -- ? " [ 2 | 1 ] ]
- [ bignum>= " x y -- ? " [ 2 | 1 ] ]
- [ float= " x y -- ? " [ 2 | 1 ] ]
- [ float+ " x y -- x+y " [ 2 | 1 ] ]
- [ float- " x y -- x-y " [ 2 | 1 ] ]
- [ float* " x y -- x*y " [ 2 | 1 ] ]
- [ float/f " x y -- x/y " [ 2 | 1 ] ]
- [ float< " x y -- ? " [ 2 | 1 ] ]
- [ float<= " x y -- ? " [ 2 | 1 ] ]
- [ float> " x y -- ? " [ 2 | 1 ] ]
- [ float>= " x y -- ? " [ 2 | 1 ] ]
- [ facos " x -- y " [ 1 | 1 ] ]
- [ fasin " x -- y " [ 1 | 1 ] ]
- [ fatan " x -- y " [ 1 | 1 ] ]
- [ fatan2 " x y -- z " [ 2 | 1 ] ]
- [ fcos " x -- y " [ 1 | 1 ] ]
- [ fexp " x -- y " [ 1 | 1 ] ]
- [ fcosh " x -- y " [ 1 | 1 ] ]
- [ flog " x -- y " [ 1 | 1 ] ]
- [ fpow " x y -- z " [ 2 | 1 ] ]
- [ fsin " x -- y " [ 1 | 1 ] ]
- [ fsinh " x -- y " [ 1 | 1 ] ]
- [ fsqrt " x -- y " [ 1 | 1 ] ]
- [ <word> " prim param plist -- word " [ 3 | 1 ] ]
- [ word-hashcode " word -- n " [ 1 | 1 ] ]
- [ word-xt " word -- xt " [ 1 | 1 ] ]
- [ set-word-xt " xt word -- " [ 2 | 0 ] ]
- [ word-primitive " word -- n " [ 1 | 1 ] ]
- [ set-word-primitive " n word -- " [ 2 | 0 ] ]
- [ word-parameter " word -- obj " [ 1 | 1 ] ]
- [ set-word-parameter " obj word -- " [ 2 | 0 ] ]
- [ word-plist " word -- alist" [ 1 | 1 ] ]
- [ set-word-plist " alist word -- " [ 2 | 0 ] ]
- [ drop " x -- " [ 1 | 0 ] ]
- [ dup " x -- x x " [ 1 | 2 ] ]
- [ swap " x y -- y x " [ 2 | 2 ] ]
- [ over " x y -- x y x " [ 2 | 3 ] ]
- [ pick " x y z -- x y z x " [ 3 | 4 ] ]
- [ >r " x -- r:x " [ 1 | 0 ] ]
- [ r> " r:x -- x " [ 0 | 1 ] ]
- [ eq? " x y -- ? " [ 2 | 1 ] ]
- [ getenv " n -- obj " [ 1 | 1 ] ]
- [ setenv " obj n -- " [ 2 | 0 ] ]
+ [ <vector> " capacity -- vector" [ [ integer ] [ vector ] ] ]
+ [ vector-length " vector -- n " [ [ vector ] [ integer ] ] ]
+ [ set-vector-length " n vector -- " [ [ integer vector ] [ ] ] ]
+ [ vector-nth " n vector -- obj " [ [ integer vector ] [ object ] ] ]
+ [ set-vector-nth " obj n vector -- " [ [ object integer vector ] [ ] ] ]
+ [ str-length " str -- n " [ [ string ] [ integer ] ] ]
+ [ str-nth " n str -- ch " [ [ integer string ] [ integer ] ] ]
+ [ str-compare " str str -- -1/0/1 " [ [ string string ] [ integer ] ] ]
+ [ str= " str str -- ? " [ [ string string ] [ boolean ] ] ]
+ [ str-hashcode " str -- n " [ [ string ] [ integer ] ] ]
+ [ index-of* " n str/ch str -- n " [ [ integer text string ] [ integer ] ] ]
+ [ substring " start end str -- str " [ [ integer integer string ] [ string ] ] ]
+ [ str-reverse " str -- str " [ [ string ] [ string ] ] ]
+ [ <sbuf> " capacity -- sbuf " [ [ integer ] [ sbuf ] ] ]
+ [ sbuf-length " sbuf -- n " [ [ sbuf ] [ integer ] ] ]
+ [ set-sbuf-length " n sbuf -- " [ [ integer sbuf ] [ ] ] ]
+ [ sbuf-nth " n sbuf -- ch " [ [ integer sbuf ] [ integer ] ] ]
+ [ set-sbuf-nth " ch n sbuf -- " [ [ integer integer sbuf ] [ ] ] ]
+ [ sbuf-append " ch/str sbuf -- " [ [ text sbuf ] [ ] ] ]
+ [ sbuf>str " sbuf -- str " [ [ sbuf ] [ string ] ] ]
+ [ sbuf-reverse " sbuf -- " [ [ sbuf ] [ ] ] ]
+ [ sbuf-clone " sbuf -- sbuf " [ [ sbuf ] [ sbuf ] ] ]
+ [ sbuf= " sbuf sbuf -- ? " [ [ sbuf sbuf ] [ boolean ] ] ]
+ [ sbuf-hashcode " sbuf -- n " [ [ sbuf ] [ integer ] ] ]
+ [ arithmetic-type " n n -- type " [ [ number number ] [ number number fixnum ] ] ]
+ [ >fixnum " n -- fixnum " [ [ number ] [ fixnum ] ] ]
+ [ >bignum " n -- bignum " [ [ number ] [ bignum ] ] ]
+ [ >float " n -- float " [ [ number ] [ float ] ] ]
+ [ numerator " a/b -- a " [ [ rational ] [ integer ] ] ]
+ [ denominator " a/b -- b " [ [ rational ] [ integer ] ] ]
+ [ fraction> " a b -- a/b " [ [ integer integer ] [ rational ] ] ]
+ [ str>float " str -- float " [ [ string ] [ float ] ] ]
+ [ (unparse-float) " float -- str " [ [ float ] [ string ] ] ]
+ [ float>bits " float -- n " [ [ float ] [ integer ] ] ]
+ [ real " #{ re im } -- re " [ [ number ] [ real ] ] ]
+ [ imaginary " #{ re im } -- im " [ [ number ] [ real ] ] ]
+ [ rect> " re im -- #{ re im } " [ [ real real ] [ number ] ] ]
+ [ fixnum= " x y -- ? " [ [ fixnum fixnum ] [ boolean ] ] ]
+ [ fixnum+ " x y -- x+y " [ [ fixnum fixnum ] [ integer ] ] ]
+ [ fixnum- " x y -- x-y " [ [ fixnum fixnum ] [ integer ] ] ]
+ [ fixnum* " x y -- x*y " [ [ fixnum fixnum ] [ integer ] ] ]
+ [ fixnum/i " x y -- x/y " [ [ fixnum fixnum ] [ integer ] ] ]
+ [ fixnum/f " x y -- x/y " [ [ fixnum fixnum ] [ integer ] ] ]
+ [ fixnum-mod " x y -- x%y " [ [ fixnum fixnum ] [ integer ] ] ]
+ [ fixnum/mod " x y -- x/y x%y " [ [ fixnum fixnum ] [ integer integer ] ] ]
+ [ fixnum-bitand " x y -- x&y " [ [ fixnum fixnum ] [ fixnum ] ] ]
+ [ fixnum-bitor " x y -- x|y " [ [ fixnum fixnum ] [ fixnum ] ] ]
+ [ fixnum-bitxor " x y -- x^y " [ [ fixnum fixnum ] [ fixnum ] ] ]
+ [ fixnum-bitnot " x -- ~x " [ [ fixnum ] [ fixnum ] ] ]
+ [ fixnum-shift " x n -- x<<n" [ [ fixnum fixnum ] [ fixnum ] ] ]
+ [ fixnum< " x y -- ? " [ [ fixnum fixnum ] [ boolean ] ] ]
+ [ fixnum<= " x y -- ? " [ [ fixnum fixnum ] [ boolean ] ] ]
+ [ fixnum> " x y -- ? " [ [ fixnum fixnum ] [ boolean ] ] ]
+ [ fixnum>= " x y -- ? " [ [ fixnum fixnum ] [ boolean ] ] ]
+ [ bignum= " x y -- ? " [ [ fixnum fixnum ] [ boolean ] ] ]
+ [ bignum+ " x y -- x+y " [ [ bignum bignum ] [ bignum ] ] ]
+ [ bignum- " x y -- x-y " [ [ bignum bignum ] [ bignum ] ] ]
+ [ bignum* " x y -- x*y " [ [ bignum bignum ] [ bignum ] ] ]
+ [ bignum/i " x y -- x/y " [ [ bignum bignum ] [ bignum ] ] ]
+ [ bignum/f " x y -- x/y " [ [ bignum bignum ] [ bignum ] ] ]
+ [ bignum-mod " x y -- x%y " [ [ bignum bignum ] [ bignum ] ] ]
+ [ bignum/mod " x y -- x/y x%y " [ [ bignum bignum ] [ bignum bignum ] ] ]
+ [ bignum-bitand " x y -- x&y " [ [ bignum bignum ] [ bignum ] ] ]
+ [ bignum-bitor " x y -- x|y " [ [ bignum bignum ] [ bignum ] ] ]
+ [ bignum-bitxor " x y -- x^y " [ [ bignum bignum ] [ bignum ] ] ]
+ [ bignum-bitnot " x -- ~x " [ [ bignum ] [ bignum ] ] ]
+ [ bignum-shift " x n -- x<<n" [ [ bignum bignum ] [ bignum ] ] ]
+ [ bignum< " x y -- ? " [ [ bignum bignum ] [ boolean ] ] ]
+ [ bignum<= " x y -- ? " [ [ bignum bignum ] [ boolean ] ] ]
+ [ bignum> " x y -- ? " [ [ bignum bignum ] [ boolean ] ] ]
+ [ bignum>= " x y -- ? " [ [ bignum bignum ] [ boolean ] ] ]
+ [ float= " x y -- ? " [ [ bignum bignum ] [ boolean ] ] ]
+ [ float+ " x y -- x+y " [ [ float float ] [ float ] ] ]
+ [ float- " x y -- x-y " [ [ float float ] [ float ] ] ]
+ [ float* " x y -- x*y " [ [ float float ] [ float ] ] ]
+ [ float/f " x y -- x/y " [ [ float float ] [ float ] ] ]
+ [ float< " x y -- ? " [ [ float float ] [ boolean ] ] ]
+ [ float<= " x y -- ? " [ [ float float ] [ boolean ] ] ]
+ [ float> " x y -- ? " [ [ float float ] [ boolean ] ] ]
+ [ float>= " x y -- ? " [ [ float float ] [ boolean ] ] ]
+ [ facos " x -- y " [ [ real ] [ float ] ] ]
+ [ fasin " x -- y " [ [ real ] [ float ] ] ]
+ [ fatan " x -- y " [ [ real ] [ float ] ] ]
+ [ fatan2 " x y -- z " [ [ real real ] [ float ] ] ]
+ [ fcos " x -- y " [ [ real ] [ float ] ] ]
+ [ fexp " x -- y " [ [ real ] [ float ] ] ]
+ [ fcosh " x -- y " [ [ real ] [ float ] ] ]
+ [ flog " x -- y " [ [ real ] [ float ] ] ]
+ [ fpow " x y -- z " [ [ real real ] [ float ] ] ]
+ [ fsin " x -- y " [ [ real ] [ float ] ] ]
+ [ fsinh " x -- y " [ [ real ] [ float ] ] ]
+ [ fsqrt " x -- y " [ [ real ] [ float ] ] ]
+ [ <word> " prim param plist -- word " [ [ integer object general-list ] [ word ] ] ]
+ [ word-hashcode " word -- n " [ [ word ] [ integer ] ] ]
+ [ word-xt " word -- xt " [ [ word ] [ integer ] ] ]
+ [ set-word-xt " xt word -- " [ [ integer word ] [ ] ] ]
+ [ word-primitive " word -- n " [ [ word ] [ integer ] ] ]
+ [ set-word-primitive " n word -- " [ [ integer word ] [ ] ] ]
+ [ word-parameter " word -- obj " [ [ word ] [ object ] ] ]
+ [ set-word-parameter " obj word -- " [ [ object word ] [ ] ] ]
+ [ word-plist " word -- alist" [ [ word ] [ general-list ] ] ]
+ [ set-word-plist " alist word -- " [ [ general-list ] [ integer ] ] ]
+ [ drop " x -- " [ [ object ] [ ] ] ]
+ [ dup " x -- x x " [ [ object ] [ object object ] ] ]
+ [ swap " x y -- y x " [ [ object object ] [ object object ] ] ]
+ [ over " x y -- x y x " [ [ object object ] [ object object object ] ] ]
+ [ pick " x y z -- x y z x " [ [ object object object ] [ object object object object ] ] ]
+ [ >r " x -- r:x " [ [ object ] [ ] ] ]
+ [ r> " r:x -- x " [ [ ] [ object ] ] ]
+ [ eq? " x y -- ? " [ [ object object ] [ boolean ] ] ]
+ [ getenv " n -- obj " [ [ fixnum ] [ object ] ] ]
+ [ setenv " obj n -- " [ [ object fixnum ] [ ] ] ]
[ open-file " path r w -- port " [ 3 | 1 ] ]
[ stat " path -- [ dir? perm size mtime ] " [ 1 | 1 ] ]
[ (directory) " path -- list " [ 1 | 1 ] ]
[ set-alien-2 " n alien off -- " [ 3 | 0 ] ]
[ alien-1 " alien off -- n " [ 2 | 1 ] ]
[ set-alien-1 " n alien off -- " [ 3 | 0 ] ]
- [ heap-stats " -- instances bytes " [ 0 | 2 ] ]
- [ throw " error -- " [ 1 | 0 ] ]
- [ string>memory " str address -- " [ 2 | 0 ] ]
- [ memory>string " address length -- str " [ 2 | 1 ] ]
+ [ heap-stats " -- instances bytes " [ [ ] [ general-list ] ] ]
+ [ throw " error -- " [ [ object ] [ ] ] ]
+ [ string>memory " str address -- " [ [ string integer ] [ ] ] ]
+ [ memory>string " address length -- str " [ [ integer integer ] [ string ] ] ]
[ local-alien? " alien -- ? " [ [ alien ] [ object ] ] ]
[ alien-address " alien -- address " [ [ alien ] [ integer ] ] ]
- [ memory>string " address length -- str " [ 2 | 1 ] ]
] [
uncons dupd uncons car ( word word stack-effect infer-effect )
>r "stack-effect" set-word-property r>