Cyclone

Cheney on the M.T.A. with native threads.

API Documentation

Standard Libraries

This section of the Cyclone API is based on the R7RS Scheme Specification:

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:

Cyclone Libraries

These libraries are provided by Cyclone with a stable API that is unlikely to change:

Internal 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.

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.


%adb:make-fnc %adb:make-var


*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*


+


->heap -


/


<=? <= <? <


=? =


>=? >= >? >


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:ast->pp-sexp ast:ast->sexp 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! ast:sexp->ast atan atom? atom 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? compare-and-set! 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 deref 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 future-call future-deref future-done? future? future 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 immutable? inexact? inexact infinite? input-port-open? input-port? insert integer->char integer->list integer-length integer? interaction-environment iota ip-protocol is-mutable? isolate-globals


jiffies-per-second


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 logand 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-atom 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-shared-queue make-shared make-string make-thread-pool make-thread make-type-predicate make-unfold-generator make-vector make-vector-comparator mangle mangle-global map! map-in-order map mark-mutable match-lambda* match-lambda match-let* match-let match-letrec match 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?


quasiquote quote? quotient


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 repl 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 share-all! shared-queue-add! shared-queue-capacity shared-queue-clear! shared-queue-empty? shared-queue-remove! shared-queue-size shared-queue-wait-count shared-queue? shared-queue 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-split string-upcase string<=? string<? string=? string>=? string>? string? string substring swap! 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-pool-idling-count thread-pool-idling? thread-pool-push-task! thread-pool-release! thread-pool-size thread-pool? 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-unfold 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


xcons


zero? zip