63 KiB
API Documentation
Standard Libraries
This section of the Cyclone API is based on the R7RS Scheme Specification:
- Primitives
scheme base
scheme case-lambda
scheme char
scheme complex
scheme cxr
scheme eval
scheme file
scheme inexact
scheme lazy
scheme load
scheme process-context
scheme read
scheme time
scheme write
SRFI Libraries
Cyclone supports the following Scheme Requests for Implementation (SRFI) libraries. Detailed information is available in the linked SRFI page as well as the provided Cyclone API:
srfi 1
- List librarysrfi 2
-and-let*
srfi 8
-receive
: Binding to multiple values - Included as part ofscheme base
.srfi 18
- Multithreading supportsrfi 27
- Sources of random bitssrfi 28
- Basic format stringssrfi 60
- Integers as bitssrfi 69
- Basic hash tablessrfi 106
- Basic socket interfacesrfi 111
- Boxessrfi 113
- Sets and bagssrfi 117
- Mutable queuessrfi 121
- Generatorssrfi 128
- Comparatorssrfi 132
- Sort librariessrfi 133
- Vector library (R7RS-compatible)srfi 143
- Fixnums
Cyclone Libraries
These libraries are provided by Cyclone with a stable API that is unlikely to change.
Cyclone Compiler API
These libraries are used by the Cyclone compiler. Some of these are stable and unlikely to change, whereas others could change as the compiler evolves.
scheme cyclone ast
scheme cyclone cgen
scheme cyclone common
scheme cyclone cps-optimizations
scheme cyclone libraries
scheme cyclone macros
scheme cyclone primitives
scheme cyclone transforms
scheme cyclone util
C API
This documentation covers the C API provided by Cyclone Scheme. It is intended both to help understand how the Cyclone runtime works as well as to provide a useful reference manual when working with the Cyclone FFI.
Index
This section is an alphabetic listing of all the functions, objects, and macros provided by the previous libraries.
*Cyc-version-banner*
*
*af-inet*
*af-inet6*
*af-unspec*
*ai-addrconfig*
*ai-all*
*ai-canonname*
*ai-numerichost*
*ai-v4mapped*
*c-file-header-comment*
*defined-macros*
*do-code-gen*
*ipproto-ip*
*ipproto-tcp*
*ipproto-udp*
*msg-oob*
*msg-peek*
*msg-waitall*
*primitives*
*primitives*
*primitives-num-args*
*shut-rd*
*shut-rdwr*
*shut-wr*
*sock-dgram*
*sock-stream*
*trace-level*
*version*
*version-banner*
*version-name*
*version-number*
Cyc-er-compare?
Cyc-er-rename
Cyc-minor-gc
abs
acos
adb:clear!
adb:function?
adb:get-db
adb:get/default
adb:get
adb:make-fnc
adb:make-var
adb:set!
adb:variable?
adbf:set-simple!
adbf:set-unused-params!
adbf:simple
adbf:unused-params
adbv:assigned-value
adbv:const-value
adbv:const?
adbv:defined-by
adbv:global?
adbv:reassigned?
adbv:ref-by
adbv:set-assigned-value!
adbv:set-const!
adbv:set-const-value!
adbv:set-defined-by!
adbv:set-global!
adbv:set-reassigned!
adbv:set-ref-by!
address-family
address-info
alist->bag
alist->hash-table
alist-cons
alist-copy
alist-delete!
alist-delete
alpha-convert
analyze-cps
analyze-mutable-variables
and-let*
and
angle
any-bits-set?
any
any
app->args
app->fun
app?
append!
append-map!
append-map
append-reverse!
append-reverse
append
apply
arithmetic-shift
array-list-delete!
array-list-empty?
array-list-insert!
array-list-length
array-list-ref
array-list-set!
array-list?
array-list
ash
asin
assoc
assq-remove-key
assq-remove-keys
assq
assv
ast:%make-lambda
ast:lambda-args
ast:lambda-body
ast:lambda-formals->list
ast:lambda-formals-type
ast:lambda-id
ast:lambda?
ast:make-lambda
ast:set-lambda-args!
ast:set-lambda-body!
atan
azip
bag->alist
bag->list
bag->set
bag-adjoin
bag-adjoin!
bag-any?
bag-comparator
bag-contains?
bag-copy
bag-count
bag-decrement!
bag-delete
bag-delete!
bag-delete-all
bag-delete-all!
bag-difference
bag-difference!
bag-disjoint?
bag-element-comparator
bag-element-count
bag-empty?
bag-every?
bag-filter
bag-filter!
bag-find
bag-fold
bag-fold-unique
bag-for-each
bag-for-each-unique
bag-increment!
bag-intersection
bag-intersection!
bag-map
bag-member
bag-partition
bag-partition!
bag-product
bag-product!
bag-remove
bag-remove!
bag-replace
bag-replace!
bag-search!
bag-size
bag-sum
bag-sum!
bag-unfold
bag-union
bag-union!
bag-unique-size
bag-xor
bag-xor!
bag<=?
bag<?
bag=?
bag>=?
bag>?
bag?
bag
basename
begin->exps
begin?
begin
bit-count
bit-field
bit-set?
bitwise-and
bitwise-if
bitwise-ior
bitwise-merge
bitwise-not
bitwise-xor
boolean-hash
boolean=?
boolean?
booleans->integer
box?
box
break!
break
built-in-syms
bytevector
bytevector->generator
bytevector-append
bytevector-copy!
bytevector-copy
bytevector-length
bytevector-u8-ref
bytevector-u8-set!
bytevector?
caaaar
caaadr
caaar
caadar
caaddr
caadr
caar
cadaar
cadadr
cadar
caddar
cadddr
caddr
cadr
call-with-current-continuation
call-with-input-file
call-with-output-file
call-with-port
call-with-socket
call-with-values
call/cc
car
car+cdr
case-lambda
case
cdaaar
cdaadr
cdaar
cdadar
cdaddr
cdadr
cdar
cddaar
cddadr
cddar
cdddar
cddddr
cdddr
cddr
cdr
ceiling
cell->value
cell-get->cell
cell-get?
cell?
char->integer
char-alphabetic?
char-ci-hash
char-ci<=?
char-ci<?
char-ci=?
char-ci>=?
char-ci>?
char-downcase
char-foldcase
char-hash
char-lower-case?
char-numeric?
char-upcase
char-upper-case?
char-whitespace?
char<=?
char<?
char=?
char>=?
char>?
char?
circular-list?
circular-list
clear-mutables
close-input-port
close-output-port
close-port
closure->env
closure->fv
closure->lam
closure-convert
closure?
command-line-arguments
command-line
comparator-check-type
comparator-equality-predicate
comparator-hash
comparator-hash-function
comparator-hashable?
comparator-if<=>
comparator-ordered?
comparator-ordering-predicate
comparator-register-default!
comparator-test-type
comparator-type-test-predicate
comparator?
complex?
concatenate!
concatenate
cond-expand
cond
condition-variable-broadcast!
condition-variable-signal!
condition-variable-wait!
condition-variable?
cons
cons*
const?
copy-bit-field
copy-bit
cos
count
cps-convert
create-environment
current-error-port
current-input-port
current-jiffy
current-output-port
current-second
current-test-applier
current-test-comparator
current-test-epsilon
current-test-group-reporter
current-test-group
current-test-handler
current-test-skipper
current-test-verbosity
cyc:error
default-hash
default-random-source
define->exp
define->lambda
define->var
define-c?
define-lambda?
define-record-type
define-syntax?
define?
delay-force
delay
delete
delete!
delete-duplicates
delete-duplicates!
delete-duplicates
delete-file
delete
denominator
difference
digit-value
display
do
dotted-list?
drop-right!
drop-right
drop-while
drop
dynamic-wind
eighth
emergency-exit
emit*
emit-newline
emit
emits*
emits
env-get->env
env-get->field
env-get->id
env-get?
env-make->fields
env-make->id
env-make->values
env-make?
env:_lookup-variable-value
env:add-binding-to-frame!
env:all-values
env:all-variables
env:define-variable!
env:enclosing-environment
env:extend-environment
env:first-frame
env:frame-values
env:frame-variables
env:lookup
env:lookup-variable-value
env:make-frame
env:set-variable-value!
env:the-empty-environment
eof-object?
eof-object
eq?
equal?
eqv?
error
error
eval
even?
every
every
exact-integer?
exact?
exact
exit
exp
expand
expand-lambda-body
expt
features
fifth
file-exists?
filter
filter!
filter-map
filter-unused-variables
filter
find-tail
find
finite?
first-set-bit
first
fixnum?
flatten
floor-quotient
floor-remainder
floor-remainder
floor/
floor
flush-output-port
fold-right
fold
foldl
foldr
for-each
force
formals->list
fourth
free-vars
fx*
fx+
fx-
fx-greatest
fx-least
fx-width
fx<=?
fx<?
fx=?
fx>=?
fx>?
fxabs
fxand
fxarithmetic-shift-left
fxarithmetic-shift-right
fxarithmetic-shift
fxbit-count
fxbit-field-reverse
fxbit-field-rotate
fxbit-field
fxbit-set?
fxcopy-bit
fxeven?
fxfirst-set-bit
fxif
fxior
fxlength
fxmax
fxmin
fxneg
fxnegative?
fxnot
fxodd?
fxpositive?
fxquotient
fxremainder
fxsqrt
fxsquare
fxxor
fxzero?
gappend
gcd
gcombine
gcons*
gdelete-neighbor-dups
gdelete
gdrop-while
gdrop
generator->list
generator->reverse-list
generator->string
generator->vector!
generator->vector
generator-any
generator-count
generator-every
generator-find
generator-fold
generator-for-each
generator-unfold
generator
gensym
get-environment-variable
get-environment-variables
get-macros
get-output-bytevector
get-output-string
gfilter
gindex
global-vars
gremove
gselect
gtake-while
gtake
guard
has-global?
hash-bound
hash-by-identity
hash-salt
hash-table->alist
hash-table-copy
hash-table-delete!
hash-table-equivalence-function
hash-table-exists?
hash-table-fold
hash-table-hash-function
hash-table-keys
hash-table-merge!
hash-table-ref/default
hash-table-ref
hash-table-set!
hash-table-size
hash-table-update!/default
hash-table-update!
hash-table-values
hash-table-walk
hash-table?
hash
identifier->symbol
identifier=?
identifier?
if->condition
if->else
if->then
if-else?
if?
imag-part
inexact?
inexact
infinite?
input-port-open?
input-port?
insert
integer->char
integer->list
integer-length
integer?
iota
ip-protocol
is-mutable?
isolate-globals
lambda->exp
lambda->formals
lambda-formals->list
lambda-formals-type
lambda-num-args
lambda-varargs-var
lambda-varargs?
lambda?
last-pair
last
lcm
length
length+
length/obj
let*-values
let*
let->args
let->bindings
let->bound-vars
let->exp
let-values
let=>lambda
let?
let
letrec*
letrec->args
letrec->bindings
letrec->bound-vars
letrec->exp
letrec?
letrec
lib:body
lib:exports
lib:get-all-import-deps
lib:get-all
lib:get-dep-list
lib:idb:ids
lib:import->export-list
lib:import->filename
lib:import->metalist
lib:import->path
lib:imports->idb
lib:imports
lib:include-c-headers
lib:includes
lib:list->import-set
lib:name->string
lib:name->symbol
lib:name
lib:read-imports
lib:rename-exports
lib:resolve-imports
lib:resolve-meta
lib:result
library?
list->bag
list->bag!
list->generator
list->integer
list->lambda-formals
list->pair
list->set
list->set!
list->string
list->vector
list-copy
list-copy
list-delete-neighbor-dups!
list-delete-neighbor-dups
list-index
list-index2
list-index
list-insert-at!
list-merge!
list-merge
list-prefix?
list-queue-add-back!
list-queue-add-front!
list-queue-append!
list-queue-append!
list-queue-append
list-queue-append
list-queue-back
list-queue-concatenate
list-queue-concatenate
list-queue-copy
list-queue-empty?
list-queue-first-last
list-queue-for-each
list-queue-front
list-queue-list
list-queue-map!
list-queue-map
list-queue-remove-all!
list-queue-remove-back!
list-queue-remove-front!
list-queue-set-list!
list-queue-unfold-right
list-queue-unfold
list-queue?
list-queue
list-ref
list-set!
list-sort!
list-sort
list-sorted?
list-stable-sort!
list-stable-sort
list-tabulate
list-tail
list=
list?
list
load
log2-binary-factors
log
logbit?
logcount
logior
lognot
logtest
logxor
lset-adjoin
lset-diff+intersection!
lset-diff+intersection
lset-difference!
lset-difference
lset-intersection!
lset-intersection
lset-union!
lset-union
lset-xor!
lset-xor
lset<=
lset=
macro:add!
macro:cleanup
macro:expand
macro:get-defined-macros
macro:get-env
macro:load-env!
macro:macro?
magnitude
make-array-list
make-bytevector
make-client-socket
make-comparator
make-condition-variable
make-constructor
make-coroutine-generator
make-default-comparator
make-eq-comparator
make-equal-comparator
make-eqv-comparator
make-for-each-generator
make-getter
make-hash-table
make-iota-generator
make-list-comparator
make-list-queue
make-list
make-list
make-mutex
make-pair-comparator
make-parameter
make-polar
make-promise
make-random-source
make-range-generator
make-rectangular
make-server-socket
make-setter
make-string
make-thread
make-type-predicate
make-unfold-generator
make-vector
make-vector-comparator
mangle
mangle-global
map!
map-in-order
map
mark-mutable
max
member
memq
memv
message-type
min
modulo
mta:code-gen
mutex-lock!
mutex-unlock!
mutex?
nan?
negative?
newline
ninth
not-pair?
not
null-list?
null?
number->string
number-hash
number?
numerator
odd?
one-instance-of-new-mutable-obj?
open-input-bytevector
open-input-file
open-input-string
open-output-bytevector
open-output-file
open-output-string
opt:contract
opt:inline-prims
optimize-cps
or
output-port-open?
output-port?
pack-lambda-arguments
pair->list
pair-fold-right
pair-fold
pair-for-each
pair?
parameterize
partition!
partition
peek-char
port?
pos-in-list
positive?
precompute-prim-app?
pretty-print
prim->c-func
prim-call?
prim/c-var-assign
prim/cvar?
prim/data-arg?
prim:allocates-object?)
prim:arg-count?
prim:check-arg-count
prim:cont/no-args?
prim:cont?
prim:mutates?
prim?
print-exception
procedure?
promise?
proper-list?
raise-continuable
raise
random-integer
random-real
random-source-make-integers
random-source-make-reals
random-source-pseudo-randomize!
random-source-randomize!
random-source-state-ref
random-source-state-set!
random-source?
rational?
read-all
read-char
read-line
read-string
read
real-part
real?
receive
record?
reduce
reduce-right
reduce
ref?
remainder
remove
remove!
remove
reverse!
reverse-list->vector
reverse-vector->generator
reverse-vector->list
reverse
rotate-bit-field
round
second
set
set!->exp
set!->var
set!?
set->bag
set->bag!
set->list
set-adjoin
set-adjoin!
set-any?
set-box!
set-car!
set-cdr!
set-cell!->cell
set-cell!->value
set-cell!?
set-comparator
set-contains?
set-copy
set-count
set-delete
set-delete!
set-delete-all
set-delete-all!
set-difference
set-difference!
set-disjoint?
set-element-comparator
set-empty?
set-every?
set-filter
set-filter!
set-find
set-fold
set-for-each
set-intersection
set-intersection!
set-map
set-member
set-partition
set-partition!
set-remove
set-remove!
set-replace
set-replace!
set-search!
set-size
set-unfold
set-union
set-union!
set-xor
set-xor!
set<=?
set<?
set=?
set>=?
set>?
set?
setup-environment
seventh
shutdown-method
simple-lambda?
sin
sixth
slot-set!
socket-accept
socket-close
socket-domain
socket-input-port
socket-merge-flags
socket-output-port
socket-purge-flags
socket-recv
socket-send
socket-shutdown
socket?
span!
span
split-at!
split-at
sqrt
square
string->generator
string->list
string->number
string->symbol
string->utf8
string->vector
string-append
string-ci-hash
string-ci-hash
string-ci<=?
string-ci<?
string-ci=?
string-ci>=?
string-ci>?
string-cmp
string-copy!
string-copy
string-downcase
string-fill!
string-foldcase
string-for-each
string-hash
string-hash
string-join
string-length
string-map
string-ref
string-replace-all
string-set!
string-upcase
string<=?
string<?
string=?
string>=?
string>?
string?
string
substring
symbol->string
symbol-hash
symbol<?
symbol=?
symbol?
syntax-error
system
tagged-list?
take
take!
take-right
take-while!
take-while
take
tan
tenth
test-assert
test-begin
test-end
test-equal
test-error
test-exit
test-failure-count
test-group-inc!
test-group
test-not
test-propagate-info
test-run
test-syntax-error
test-values
test-vars
test
third
thread-join!
thread-name
thread-sleep!
thread-specific-set!
thread-specific
thread-start!
thread-terminate!
thread-yield!
thread?
trace
trace:debug
trace:error
trace:info
trace:warn
truncate-quotient
truncate-remainder
truncate/
truncate
type-slot-offset
unbox
unfold-right
unfold
union
unless
unzip1
unzip2
unzip3
unzip4
unzip5
utf8->string
values
vector->generator
vector->list
vector->string
vector-any
vector-append-subvectors
vector-append
vector-binary-search
vector-concatenate
vector-copy!
vector-copy
vector-count
vector-cumulate
vector-delete-neighbor-dups!
vector-delete-neighbor-dups
vector-empty?
vector-every
vector-fill!
vector-fold-right
vector-fold
vector-for-each
vector-index-right
vector-index
vector-length
vector-map!
vector-map
vector-merge!
vector-merge
vector-partition
vector-ref
vector-reverse!
vector-reverse-copy!
vector-reverse-copy
vector-set!
vector-skip-right
vector-skip
vector-sort!
vector-sort
vector-sorted?
vector-stable-sort!
vector-stable-sort
vector-swap!
vector-unfold!
vector-unfold-right!
vector-unfold-right
vector=
vector?
vector
warning
when
with-exception-handler
with-handler
with-input-from-file
with-output-to-file
wrap-mutables
write-char
write-shared
write-simple
write-string
write