stack-checker.known-words: nicer stack-effect declaration code
I think it looks better to put the primitives in groups and declare them that way than one big block.db4
parent
a97f840daa
commit
a915d3bdb4
|
@ -279,188 +279,249 @@ M: object infer-call* \ call bad-macro-input ;
|
||||||
[ "default-output-classes" set-word-prop ]
|
[ "default-output-classes" set-word-prop ]
|
||||||
bi-curry* bi ;
|
bi-curry* bi ;
|
||||||
|
|
||||||
! Stack effects for all primitives
|
: define-primitives ( seq -- )
|
||||||
\ (byte-array) { integer } { byte-array } define-primitive \ (byte-array) make-flushable
|
[ first3 define-primitive ] each ;
|
||||||
\ (clone) { object } { object } define-primitive \ (clone) make-flushable
|
|
||||||
\ (code-blocks) { } { array } define-primitive \ (code-blocks) make-flushable
|
: make-flushable-primitives ( flushables -- )
|
||||||
\ (dlopen) { byte-array } { dll } define-primitive
|
dup define-primitives [ first make-flushable ] each ;
|
||||||
\ (dlsym) { byte-array object } { c-ptr } define-primitive
|
|
||||||
\ (dlsym-raw) { byte-array object } { c-ptr } define-primitive
|
: make-foldable-primitives ( flushables -- )
|
||||||
\ (exists?) { string } { object } define-primitive
|
dup define-primitives [ first make-foldable ] each ;
|
||||||
\ (exit) { integer } { } define-primitive
|
|
||||||
\ (format-float) { float byte-array } { byte-array } define-primitive \ (format-float) make-foldable
|
! ! Stack effects for all primitives
|
||||||
\ (fopen) { byte-array byte-array } { alien } define-primitive
|
|
||||||
\ (identity-hashcode) { object } { fixnum } define-primitive
|
! Alien getters
|
||||||
\ (save-image) { byte-array byte-array object } { } define-primitive
|
{
|
||||||
\ (set-context) { object alien } { object } define-primitive
|
{ alien-cell { c-ptr integer } { pinned-c-ptr } }
|
||||||
\ (set-context-and-delete) { object alien } { } define-primitive
|
{ alien-double { c-ptr integer } { float } }
|
||||||
\ (sleep) { integer } { } define-primitive
|
{ alien-float { c-ptr integer } { float } }
|
||||||
\ (start-context) { object quotation } { object } define-primitive
|
{ alien-signed-1 { c-ptr integer } { fixnum } }
|
||||||
\ (start-context-and-delete) { object quotation } { } define-primitive
|
{ alien-signed-2 { c-ptr integer } { fixnum } }
|
||||||
\ (word) { object object object } { word } define-primitive \ (word) make-flushable
|
{ alien-signed-4 { c-ptr integer } { integer } }
|
||||||
\ <array> { integer object } { array } define-primitive \ <array> make-flushable
|
{ alien-signed-8 { c-ptr integer } { integer } }
|
||||||
\ <byte-array> { integer } { byte-array } define-primitive \ <byte-array> make-flushable
|
{ alien-signed-cell { c-ptr integer } { integer } }
|
||||||
\ <callback> { word integer } { alien } define-primitive
|
{ alien-unsigned-1 { c-ptr integer } { fixnum } }
|
||||||
\ <displaced-alien> { integer c-ptr } { c-ptr } define-primitive \ <displaced-alien> make-flushable
|
{ alien-unsigned-2 { c-ptr integer } { fixnum } }
|
||||||
\ <string> { integer integer } { string } define-primitive \ <string> make-flushable
|
{ alien-unsigned-4 { c-ptr integer } { integer } }
|
||||||
\ <tuple> { array } { tuple } define-primitive \ <tuple> make-flushable
|
{ alien-unsigned-8 { c-ptr integer } { integer } }
|
||||||
\ <wrapper> { object } { wrapper } define-primitive \ <wrapper> make-foldable
|
{ alien-unsigned-cell { c-ptr integer } { integer } }
|
||||||
\ alien-address { alien } { integer } define-primitive \ alien-address make-flushable
|
} make-flushable-primitives
|
||||||
\ alien-cell { c-ptr integer } { pinned-c-ptr } define-primitive \ alien-cell make-flushable
|
|
||||||
\ alien-double { c-ptr integer } { float } define-primitive \ alien-double make-flushable
|
! Alien setters
|
||||||
\ alien-float { c-ptr integer } { float } define-primitive \ alien-float make-flushable
|
{
|
||||||
\ alien-signed-1 { c-ptr integer } { fixnum } define-primitive \ alien-signed-1 make-flushable
|
{ set-alien-cell { c-ptr c-ptr integer } { } }
|
||||||
\ alien-signed-2 { c-ptr integer } { fixnum } define-primitive \ alien-signed-2 make-flushable
|
{ set-alien-double { float c-ptr integer } { } }
|
||||||
\ alien-signed-4 { c-ptr integer } { integer } define-primitive \ alien-signed-4 make-flushable
|
{ set-alien-float { float c-ptr integer } { } }
|
||||||
\ alien-signed-8 { c-ptr integer } { integer } define-primitive \ alien-signed-8 make-flushable
|
{ set-alien-signed-1 { integer c-ptr integer } { } }
|
||||||
\ alien-signed-cell { c-ptr integer } { integer } define-primitive \ alien-signed-cell make-flushable
|
{ set-alien-signed-2 { integer c-ptr integer } { } }
|
||||||
\ alien-unsigned-1 { c-ptr integer } { fixnum } define-primitive \ alien-unsigned-1 make-flushable
|
{ set-alien-signed-4 { integer c-ptr integer } { } }
|
||||||
\ alien-unsigned-2 { c-ptr integer } { fixnum } define-primitive \ alien-unsigned-2 make-flushable
|
{ set-alien-signed-8 { integer c-ptr integer } { } }
|
||||||
\ alien-unsigned-4 { c-ptr integer } { integer } define-primitive \ alien-unsigned-4 make-flushable
|
{ set-alien-signed-cell { integer c-ptr integer } { } }
|
||||||
\ alien-unsigned-8 { c-ptr integer } { integer } define-primitive \ alien-unsigned-8 make-flushable
|
{ set-alien-unsigned-1 { integer c-ptr integer } { } }
|
||||||
\ alien-unsigned-cell { c-ptr integer } { integer } define-primitive \ alien-unsigned-cell make-flushable
|
{ set-alien-unsigned-2 { integer c-ptr integer } { } }
|
||||||
\ all-instances { } { array } define-primitive
|
{ set-alien-unsigned-4 { integer c-ptr integer } { } }
|
||||||
\ array>quotation { array } { quotation } define-primitive \ array>quotation make-foldable
|
{ set-alien-unsigned-8 { integer c-ptr integer } { } }
|
||||||
\ become { array array } { } define-primitive
|
{ set-alien-unsigned-cell { integer c-ptr integer } { } }
|
||||||
\ bignum* { bignum bignum } { bignum } define-primitive \ bignum* make-foldable
|
} define-primitives
|
||||||
\ bignum+ { bignum bignum } { bignum } define-primitive \ bignum+ make-foldable
|
|
||||||
\ bignum- { bignum bignum } { bignum } define-primitive \ bignum- make-foldable
|
! Container constructors
|
||||||
\ bignum-bit? { bignum integer } { object } define-primitive \ bignum-bit? make-foldable
|
{
|
||||||
\ bignum-bitand { bignum bignum } { bignum } define-primitive \ bignum-bitand make-foldable
|
{ (byte-array) { integer } { byte-array } }
|
||||||
\ bignum-bitnot { bignum } { bignum } define-primitive \ bignum-bitnot make-foldable
|
{ <array> { integer object } { array } }
|
||||||
\ bignum-bitor { bignum bignum } { bignum } define-primitive \ bignum-bitor make-foldable
|
{ <byte-array> { integer } { byte-array } }
|
||||||
\ bignum-bitxor { bignum bignum } { bignum } define-primitive \ bignum-bitxor make-foldable
|
{ <string> { integer integer } { string } }
|
||||||
\ bignum-log2 { bignum } { bignum } define-primitive \ bignum-log2 make-foldable
|
{ <tuple> { array } { tuple } }
|
||||||
\ bignum-mod { bignum bignum } { integer } define-primitive \ bignum-mod make-foldable
|
} make-flushable-primitives
|
||||||
\ bignum-gcd { bignum bignum } { bignum } define-primitive \ bignum-gcd make-foldable
|
|
||||||
\ bignum-shift { bignum fixnum } { bignum } define-primitive \ bignum-shift make-foldable
|
! Misc flushables
|
||||||
\ bignum/i { bignum bignum } { bignum } define-primitive \ bignum/i make-foldable
|
{
|
||||||
\ bignum/mod { bignum bignum } { bignum integer } define-primitive \ bignum/mod make-foldable
|
{ (callback-room) { } { byte-array } }
|
||||||
\ bignum< { bignum bignum } { object } define-primitive \ bignum< make-foldable
|
{ (clone) { object } { object } }
|
||||||
\ bignum<= { bignum bignum } { object } define-primitive \ bignum<= make-foldable
|
{ (code-blocks) { } { array } }
|
||||||
\ bignum= { bignum bignum } { object } define-primitive \ bignum= make-foldable
|
{ (code-room) { } { byte-array } }
|
||||||
\ bignum> { bignum bignum } { object } define-primitive \ bignum> make-foldable
|
{ (data-room) { } { byte-array } }
|
||||||
\ bignum>= { bignum bignum } { object } define-primitive \ bignum>= make-foldable
|
{ (word) { object object object } { word } }
|
||||||
\ bignum>fixnum { bignum } { fixnum } define-primitive \ bignum>fixnum make-foldable
|
{ <displaced-alien> { integer c-ptr } { c-ptr } }
|
||||||
\ bignum>fixnum-strict { bignum } { fixnum } define-primitive \ bignum>fixnum-strict make-foldable
|
{ alien-address { alien } { integer } }
|
||||||
\ bits>double { integer } { float } define-primitive \ bits>double make-foldable
|
{ callstack-bounds { } { alien alien } }
|
||||||
\ bits>float { integer } { float } define-primitive \ bits>float make-foldable
|
{ callstack-for { c-ptr } { callstack } }
|
||||||
\ both-fixnums? { object object } { object } define-primitive
|
{ callstack>array { callstack } { array } }
|
||||||
\ callstack-bounds { } { alien alien } define-primitive \ callstack-bounds make-flushable
|
{ check-datastack { array integer integer } { object } }
|
||||||
\ callstack-for { c-ptr } { callstack } define-primitive \ callstack make-flushable
|
{ context-object { fixnum } { object } }
|
||||||
\ callstack>array { callstack } { array } define-primitive \ callstack>array make-flushable
|
{ context-object-for { fixnum c-ptr } { object } }
|
||||||
\ check-datastack { array integer integer } { object } define-primitive \ check-datastack make-flushable
|
{ current-callback { } { fixnum } }
|
||||||
\ (code-room) { } { byte-array } define-primitive \ (code-room) make-flushable
|
{ datastack-for { c-ptr } { array } }
|
||||||
\ compact-gc { } { } define-primitive
|
{ nano-count { } { integer } }
|
||||||
\ compute-identity-hashcode { object } { } define-primitive
|
{ quotation-code { quotation } { integer integer } }
|
||||||
\ context-object { fixnum } { object } define-primitive \ context-object make-flushable
|
{ retainstack-for { c-ptr } { array } }
|
||||||
\ context-object-for { fixnum c-ptr } { object } define-primitive \ context-object-for make-flushable
|
{ size { object } { fixnum } }
|
||||||
\ current-callback { } { fixnum } define-primitive \ current-callback make-flushable
|
{ slot { object fixnum } { object } }
|
||||||
\ (callback-room) { } { byte-array } define-primitive \ (callback-room) make-flushable
|
{ special-object { fixnum } { object } }
|
||||||
\ (data-room) { } { byte-array } define-primitive \ (data-room) make-flushable
|
{ string-nth-fast { fixnum string } { fixnum } }
|
||||||
\ datastack-for { c-ptr } { array } define-primitive \ datastack-for make-flushable
|
{ word-code { word } { integer integer } }
|
||||||
\ die { } { } define-primitive
|
} make-flushable-primitives
|
||||||
\ disable-gc-events { } { object } define-primitive
|
|
||||||
\ dispatch-stats { } { byte-array } define-primitive
|
! Misc foldables
|
||||||
\ dlclose { dll } { } define-primitive
|
{
|
||||||
\ dll-valid? { object } { object } define-primitive
|
{ <wrapper> { object } { wrapper } }
|
||||||
\ double>bits { real } { integer } define-primitive \ double>bits make-foldable
|
{ array>quotation { array } { quotation } }
|
||||||
\ enable-gc-events { } { } define-primitive
|
{ eq? { object object } { object } }
|
||||||
\ eq? { object object } { object } define-primitive \ eq? make-foldable
|
{ tag { object } { fixnum } }
|
||||||
\ fclose { alien } { } define-primitive
|
} make-foldable-primitives
|
||||||
\ fflush { alien } { } define-primitive
|
|
||||||
\ fgetc { alien } { object } define-primitive
|
! Numeric primitives
|
||||||
\ fixnum* { fixnum fixnum } { integer } define-primitive \ fixnum* make-foldable
|
{
|
||||||
\ fixnum*fast { fixnum fixnum } { fixnum } define-primitive \ fixnum*fast make-foldable
|
! bignum
|
||||||
\ fixnum+ { fixnum fixnum } { integer } define-primitive \ fixnum+ make-foldable
|
{ bignum* { bignum bignum } { bignum } }
|
||||||
\ fixnum+fast { fixnum fixnum } { fixnum } define-primitive \ fixnum+fast make-foldable
|
{ bignum+ { bignum bignum } { bignum } }
|
||||||
\ fixnum- { fixnum fixnum } { integer } define-primitive \ fixnum- make-foldable
|
{ bignum- { bignum bignum } { bignum } }
|
||||||
\ fixnum-bitand { fixnum fixnum } { fixnum } define-primitive \ fixnum-bitand make-foldable
|
{ bignum-bit? { bignum integer } { object } }
|
||||||
\ fixnum-bitnot { fixnum } { fixnum } define-primitive \ fixnum-bitnot make-foldable
|
{ bignum-bitand { bignum bignum } { bignum } }
|
||||||
\ fixnum-bitor { fixnum fixnum } { fixnum } define-primitive \ fixnum-bitor make-foldable
|
{ bignum-bitnot { bignum } { bignum } }
|
||||||
\ fixnum-bitxor { fixnum fixnum } { fixnum } define-primitive \ fixnum-bitxor make-foldable
|
{ bignum-bitor { bignum bignum } { bignum } }
|
||||||
\ fixnum-fast { fixnum fixnum } { fixnum } define-primitive \ fixnum-fast make-foldable
|
{ bignum-bitxor { bignum bignum } { bignum } }
|
||||||
\ fixnum-mod { fixnum fixnum } { fixnum } define-primitive \ fixnum-mod make-foldable
|
{ bignum-log2 { bignum } { bignum } }
|
||||||
\ fixnum-shift { fixnum fixnum } { integer } define-primitive \ fixnum-shift make-foldable
|
{ bignum-mod { bignum bignum } { integer } }
|
||||||
\ fixnum-shift-fast { fixnum fixnum } { fixnum } define-primitive \ fixnum-shift-fast make-foldable
|
{ bignum-gcd { bignum bignum } { bignum } }
|
||||||
\ fixnum/i { fixnum fixnum } { integer } define-primitive \ fixnum/i make-foldable
|
{ bignum-shift { bignum fixnum } { bignum } }
|
||||||
\ fixnum/i-fast { fixnum fixnum } { fixnum } define-primitive \ fixnum/i-fast make-foldable
|
{ bignum/i { bignum bignum } { bignum } }
|
||||||
\ fixnum/mod { fixnum fixnum } { integer fixnum } define-primitive \ fixnum/mod make-foldable
|
{ bignum/mod { bignum bignum } { bignum integer } }
|
||||||
\ fixnum/mod-fast { fixnum fixnum } { fixnum fixnum } define-primitive \ fixnum/mod-fast make-foldable
|
{ bignum< { bignum bignum } { object } }
|
||||||
\ fixnum< { fixnum fixnum } { object } define-primitive \ fixnum< make-foldable
|
{ bignum<= { bignum bignum } { object } }
|
||||||
\ fixnum<= { fixnum fixnum } { object } define-primitive \ fixnum<= make-foldable
|
{ bignum= { bignum bignum } { object } }
|
||||||
\ fixnum> { fixnum fixnum } { object } define-primitive \ fixnum> make-foldable
|
{ bignum> { bignum bignum } { object } }
|
||||||
\ fixnum>= { fixnum fixnum } { object } define-primitive \ fixnum>= make-foldable
|
{ bignum>= { bignum bignum } { object } }
|
||||||
\ fixnum>bignum { fixnum } { bignum } define-primitive \ fixnum>bignum make-foldable
|
{ bignum>fixnum { bignum } { fixnum } }
|
||||||
\ fixnum>float { fixnum } { float } define-primitive \ fixnum>float make-foldable
|
{ bignum>fixnum-strict { bignum } { fixnum } }
|
||||||
\ float* { float float } { float } define-primitive \ float* make-foldable
|
|
||||||
\ float+ { float float } { float } define-primitive \ float+ make-foldable
|
! fixnum
|
||||||
\ float- { float float } { float } define-primitive \ float- make-foldable
|
{ fixnum* { fixnum fixnum } { integer } }
|
||||||
\ float-u< { float float } { object } define-primitive \ float-u< make-foldable
|
{ fixnum*fast { fixnum fixnum } { fixnum } }
|
||||||
\ float-u<= { float float } { object } define-primitive \ float-u<= make-foldable
|
{ fixnum+ { fixnum fixnum } { integer } }
|
||||||
\ float-u> { float float } { object } define-primitive \ float-u> make-foldable
|
{ fixnum+fast { fixnum fixnum } { fixnum } }
|
||||||
\ float-u>= { float float } { object } define-primitive \ float-u>= make-foldable
|
{ fixnum- { fixnum fixnum } { integer } }
|
||||||
\ float/f { float float } { float } define-primitive \ float/f make-foldable
|
{ fixnum-bitand { fixnum fixnum } { fixnum } }
|
||||||
\ float< { float float } { object } define-primitive \ float< make-foldable
|
{ fixnum-bitnot { fixnum } { fixnum } }
|
||||||
\ float<= { float float } { object } define-primitive \ float<= make-foldable
|
{ fixnum-bitor { fixnum fixnum } { fixnum } }
|
||||||
\ float= { float float } { object } define-primitive \ float= make-foldable
|
{ fixnum-bitxor { fixnum fixnum } { fixnum } }
|
||||||
\ float> { float float } { object } define-primitive \ float> make-foldable
|
{ fixnum-fast { fixnum fixnum } { fixnum } }
|
||||||
\ float>= { float float } { object } define-primitive \ float>= make-foldable
|
{ fixnum-mod { fixnum fixnum } { fixnum } }
|
||||||
\ float>bignum { float } { bignum } define-primitive \ float>bignum make-foldable
|
{ fixnum-shift { fixnum fixnum } { integer } }
|
||||||
\ float>bits { real } { integer } define-primitive \ float>bits make-foldable
|
{ fixnum-shift-fast { fixnum fixnum } { fixnum } }
|
||||||
\ float>fixnum { float } { fixnum } define-primitive \ float>fixnum make-foldable
|
{ fixnum/i { fixnum fixnum } { integer } }
|
||||||
\ fpu-state { } { } define-primitive
|
{ fixnum/i-fast { fixnum fixnum } { fixnum } }
|
||||||
\ fputc { object alien } { } define-primitive
|
{ fixnum/mod { fixnum fixnum } { integer fixnum } }
|
||||||
\ fread-unsafe { integer c-ptr alien } { integer } define-primitive
|
{ fixnum/mod-fast { fixnum fixnum } { fixnum fixnum } }
|
||||||
\ free-callback { alien } { } define-primitive
|
{ fixnum< { fixnum fixnum } { object } }
|
||||||
\ fseek { integer integer alien } { } define-primitive
|
{ fixnum<= { fixnum fixnum } { object } }
|
||||||
\ ftell { alien } { integer } define-primitive
|
{ fixnum> { fixnum fixnum } { object } }
|
||||||
\ fwrite { c-ptr integer alien } { } define-primitive
|
{ fixnum>= { fixnum fixnum } { object } }
|
||||||
\ gc { } { } define-primitive
|
{ fixnum>bignum { fixnum } { bignum } }
|
||||||
\ innermost-frame-executing { callstack } { object } define-primitive
|
{ fixnum>float { fixnum } { float } }
|
||||||
\ innermost-frame-scan { callstack } { fixnum } define-primitive
|
|
||||||
\ jit-compile { quotation } { } define-primitive
|
! float
|
||||||
\ leaf-signal-handler { } { } define-primitive
|
{ (format-float) { float byte-array } { byte-array } }
|
||||||
\ gsp:lookup-method { object array } { word } define-primitive
|
{ bits>float { integer } { float } }
|
||||||
\ minor-gc { } { } define-primitive
|
{ float* { float float } { float } }
|
||||||
\ modify-code-heap { array object object } { } define-primitive
|
{ float+ { float float } { float } }
|
||||||
\ nano-count { } { integer } define-primitive \ nano-count make-flushable
|
{ float- { float float } { float } }
|
||||||
\ profiling { object } { } define-primitive
|
{ float-u< { float float } { object } }
|
||||||
\ (get-samples) { } { object } define-primitive
|
{ float-u<= { float float } { object } }
|
||||||
\ (clear-samples) { } { } define-primitive
|
{ float-u> { float float } { object } }
|
||||||
\ quotation-code { quotation } { integer integer } define-primitive \ quotation-code make-flushable
|
{ float-u>= { float float } { object } }
|
||||||
\ quotation-compiled? { quotation } { object } define-primitive
|
{ float/f { float float } { float } }
|
||||||
\ reset-dispatch-stats { } { } define-primitive
|
{ float< { float float } { object } }
|
||||||
\ resize-array { integer array } { array } define-primitive
|
{ float<= { float float } { object } }
|
||||||
\ resize-byte-array { integer byte-array } { byte-array } define-primitive
|
{ float= { float float } { object } }
|
||||||
\ resize-string { integer string } { string } define-primitive
|
{ float> { float float } { object } }
|
||||||
\ retainstack-for { c-ptr } { array } define-primitive \ retainstack-for make-flushable
|
{ float>= { float float } { object } }
|
||||||
\ set-alien-cell { c-ptr c-ptr integer } { } define-primitive
|
{ float>bignum { float } { bignum } }
|
||||||
\ set-alien-double { float c-ptr integer } { } define-primitive
|
{ float>bits { real } { integer } }
|
||||||
\ set-alien-float { float c-ptr integer } { } define-primitive
|
{ float>fixnum { float } { fixnum } }
|
||||||
\ set-alien-signed-1 { integer c-ptr integer } { } define-primitive
|
|
||||||
\ set-alien-signed-2 { integer c-ptr integer } { } define-primitive
|
! double
|
||||||
\ set-alien-signed-4 { integer c-ptr integer } { } define-primitive
|
{ bits>double { integer } { float } }
|
||||||
\ set-alien-signed-8 { integer c-ptr integer } { } define-primitive
|
{ double>bits { real } { integer } }
|
||||||
\ set-alien-signed-cell { integer c-ptr integer } { } define-primitive
|
} make-foldable-primitives
|
||||||
\ set-alien-unsigned-1 { integer c-ptr integer } { } define-primitive
|
|
||||||
\ set-alien-unsigned-2 { integer c-ptr integer } { } define-primitive
|
! ! Misc primitives
|
||||||
\ set-alien-unsigned-4 { integer c-ptr integer } { } define-primitive
|
{
|
||||||
\ set-alien-unsigned-8 { integer c-ptr integer } { } define-primitive
|
! Contexts
|
||||||
\ set-alien-unsigned-cell { integer c-ptr integer } { } define-primitive
|
{ (set-context) { object alien } { object } }
|
||||||
\ set-context-object { object fixnum } { } define-primitive
|
{ (set-context-and-delete) { object alien } { } }
|
||||||
\ set-fpu-state { } { } define-primitive
|
{ (sleep) { integer } { } }
|
||||||
\ set-innermost-frame-quotation { quotation callstack } { } define-primitive
|
{ (start-context) { object quotation } { object } }
|
||||||
\ set-slot { object object fixnum } { } define-primitive
|
{ (start-context-and-delete) { object quotation } { } }
|
||||||
\ set-special-object { object fixnum } { } define-primitive
|
{ set-context-object { object fixnum } { } }
|
||||||
\ set-string-nth-fast { fixnum fixnum string } { } define-primitive
|
|
||||||
\ signal-handler { } { } define-primitive
|
! Dispatch stats
|
||||||
\ size { object } { fixnum } define-primitive \ size make-flushable
|
{ dispatch-stats { } { byte-array } }
|
||||||
\ slot { object fixnum } { object } define-primitive \ slot make-flushable
|
{ reset-dispatch-stats { } { } }
|
||||||
\ special-object { fixnum } { object } define-primitive \ special-object make-flushable
|
|
||||||
\ string-nth-fast { fixnum string } { fixnum } define-primitive \ string-nth-fast make-flushable
|
! FFI
|
||||||
\ strip-stack-traces { } { } define-primitive
|
{ (dlopen) { byte-array } { dll } }
|
||||||
\ tag { object } { fixnum } define-primitive \ tag make-foldable
|
{ (dlsym) { byte-array object } { c-ptr } }
|
||||||
\ unimplemented { } { } define-primitive
|
{ (dlsym-raw) { byte-array object } { c-ptr } }
|
||||||
\ word-code { word } { integer integer } define-primitive \ word-code make-flushable
|
{ dlclose { dll } { } }
|
||||||
\ word-optimized? { word } { object } define-primitive
|
{ dll-valid? { object } { object } }
|
||||||
|
|
||||||
|
! GC
|
||||||
|
{ compact-gc { } { } }
|
||||||
|
{ disable-gc-events { } { object } }
|
||||||
|
{ enable-gc-events { } { } }
|
||||||
|
{ gc { } { } }
|
||||||
|
{ minor-gc { } { } }
|
||||||
|
|
||||||
|
! Hashing
|
||||||
|
{ (identity-hashcode) { object } { fixnum } }
|
||||||
|
{ compute-identity-hashcode { object } { } }
|
||||||
|
|
||||||
|
! IO
|
||||||
|
{ (exists?) { string } { object } }
|
||||||
|
{ (fopen) { byte-array byte-array } { alien } }
|
||||||
|
{ fclose { alien } { } }
|
||||||
|
{ fflush { alien } { } }
|
||||||
|
{ fgetc { alien } { object } }
|
||||||
|
{ fputc { object alien } { } }
|
||||||
|
{ fread-unsafe { integer c-ptr alien } { integer } }
|
||||||
|
{ fseek { integer integer alien } { } }
|
||||||
|
{ ftell { alien } { integer } }
|
||||||
|
{ fwrite { c-ptr integer alien } { } }
|
||||||
|
|
||||||
|
! Profiling
|
||||||
|
{ (clear-samples) { } { } }
|
||||||
|
{ (get-samples) { } { object } }
|
||||||
|
{ profiling { object } { } }
|
||||||
|
|
||||||
|
! Resizing
|
||||||
|
{ resize-array { integer array } { array } }
|
||||||
|
{ resize-byte-array { integer byte-array } { byte-array } }
|
||||||
|
{ resize-string { integer string } { string } }
|
||||||
|
|
||||||
|
! Other primitives
|
||||||
|
{ (exit) { integer } { } }
|
||||||
|
{ (save-image) { byte-array byte-array object } { } }
|
||||||
|
{ <callback> { word integer } { alien } }
|
||||||
|
{ all-instances { } { array } }
|
||||||
|
{ become { array array } { } }
|
||||||
|
{ both-fixnums? { object object } { object } }
|
||||||
|
{ die { } { } }
|
||||||
|
{ fpu-state { } { } }
|
||||||
|
{ free-callback { alien } { } }
|
||||||
|
{ innermost-frame-executing { callstack } { object } }
|
||||||
|
{ innermost-frame-scan { callstack } { fixnum } }
|
||||||
|
{ jit-compile { quotation } { } }
|
||||||
|
{ leaf-signal-handler { } { } }
|
||||||
|
{ gsp:lookup-method { object array } { word } }
|
||||||
|
{ modify-code-heap { array object object } { } }
|
||||||
|
{ quotation-compiled? { quotation } { object } }
|
||||||
|
{ set-fpu-state { } { } }
|
||||||
|
{ set-innermost-frame-quotation { quotation callstack } { } }
|
||||||
|
{ set-slot { object object fixnum } { } }
|
||||||
|
{ set-special-object { object fixnum } { } }
|
||||||
|
{ set-string-nth-fast { fixnum fixnum string } { } }
|
||||||
|
{ signal-handler { } { } }
|
||||||
|
{ strip-stack-traces { } { } }
|
||||||
|
{ unimplemented { } { } }
|
||||||
|
{ word-optimized? { word } { object } }
|
||||||
|
} define-primitives
|
||||||
|
|
Loading…
Reference in New Issue