2.3 KiB
Primitives Library
The (scheme cyclone primitives)
library contains information about Cyclone's scheme primitives.
This library is used internally by the compiler and its API may change at any time.
prim?
prim-call?
prim->c-func
prim/data-arg?
prim/c-var-assign
prim/cvar?
prim:check-arg-count
prim:mutates?
prim:cont?
prim:cont/no-args?
prim:arg-count?
prim:allocates-object?
prim?
(prim? obj)
Determine if the given object is a symbol referring to a primitive.
prim-call?
(prim-call? exp)
Determine if the given expression exp
is a call to a primitive.
prim->c-func
(prim->c-func sym use-alloca? emit-unsafe)
Returns text containing the C function that is used to implement primitive sym
.
If emit-unsafe
is true then an unsafe version of the primtive, if available, will be returned.
prim/data-arg?
(prim/data-arg? sym)
Primitive indicating if the primitive requires passing thread data as its first argument.
prim/c-var-assign
(prim/c-var-assign sym)
Return the C data type of variable used to assign the result of primitive sym
, if applicable. #f
is returned otherwise.
prim/cvar?
(prim/cvar? sym)
Determine if primitive sym
creates a C variable.
prim:check-arg-count
(prim:check-arg-count sym num-args expected)
Return #f
the primitive sym
cannot accept the given number of arguments num-args
given the expected number of arguments expected
, and #t
otherwise.
prim:mutates?
(prim:mutates? sym)
Does primitive sym
mutate any of its arguments?
prim:cont?
(prim:cont? sym)
Should the compiler pass a continuation as the function's first parameter?
prim:cont/no-args?
(prim:cont/no-args? sym)
Is sym
a primitive function that passes a continuation or thread data but has no other arguments?
prim:arg-count?
(prim:arg-count? sym)
Should the compiler pass an integer arg count as the function's first parameter?
prim:allocates-object?
(prim:allocates-object? sym use-alloca?)
Does primitive sym
allocate an object?