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.

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.

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 array-list? array-list-delete! array-list-empty? array-list-length array-list-ref array-list-set! 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 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


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


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


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 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-input-from-file with-output-to-file wrap-mutables write-char write-shared write-simple write-string write


xcons


zero? zip