mirror of
https://github.com/justinethier/cyclone.git
synced 2025-05-23 20:15:05 +02:00
Sync
This commit is contained in:
parent
acad2ca2bf
commit
0f266b883a
3 changed files with 88 additions and 5 deletions
75
docs/API.md
75
docs/API.md
|
@ -36,19 +36,22 @@ This section of the Cyclone API is based on the [R<sup>7</sup>RS Scheme Specific
|
|||
|
||||
Cyclone supports the following [Scheme Requests for Implementation (SRFI)](http://srfi.schemers.org/) libraries. Detailed information is available in the linked SRFI page as well as the provided Cyclone API:
|
||||
|
||||
- [`srfi 1`](api/srfi/1) - [List Library](http://srfi.schemers.org/srfi-1/srfi-1.html)
|
||||
- [`srfi 1`](api/srfi/1) - [List library](http://srfi.schemers.org/srfi-1/srfi-1.html)
|
||||
- [`srfi 2`](api/srfi/2) - [`and-let*`](http://srfi.schemers.org/srfi-2/srfi-2.html)
|
||||
- [`srfi 8`](api/srfi/8) - [`receive`: Binding to multiple values](http://srfi.schemers.org/srfi-8/srfi-8.html) - Included as part of `scheme base`.
|
||||
- [`srfi 18`](api/srfi/18) - [Multithreading support](http://srfi.schemers.org/srfi-18/srfi-18.html)
|
||||
- [`srfi 27`](api/srfi/27) - [Sources of random bits](http://srfi.schemers.org/srfi-27/srfi-27.html)
|
||||
- [`srfi 28`](api/srfi/28) - [Basic format strings](http://srfi.schemers.org/srfi-28/srfi-28.html)
|
||||
- [`srfi 60`](api/srfi/60) - [Integers as bits](http://srfi.schemers.org/srfi-60/srfi-60.html)
|
||||
- [`srfi 69`](api/srfi/69) - [Basic hash tables](http://srfi.schemers.org/srfi-69/srfi-69.html)
|
||||
- [`srfi 106`](api/srfi/106) - [Basic socket interface](http://srfi.schemers.org/srfi-106/srfi-106.html)
|
||||
- [`srfi 111`](api/srfi/111) - [Boxes](http://srfi.schemers.org/srfi-111/srfi-111.html)
|
||||
- [`srfi 113`](api/srfi/113) - [Sets and bags](http://srfi.schemers.org/srfi-113/srfi-113.html)
|
||||
- [`srfi 117`](api/srfi/117) - [Mutable queues](http://srfi.schemers.org/srfi-117/srfi-117.html)
|
||||
- [`srfi 121`](api/srfi/121) - [Generators](http://srfi.schemers.org/srfi-121/srfi-121.html)
|
||||
- [`srfi 128`](api/srfi/128) - [Comparators](http://srfi.schemers.org/srfi-128/srfi-128.html)
|
||||
- [`srfi 132`](api/srfi/132) - [Sort Libraries](http://srfi.schemers.org/srfi-132/srfi-132.html)
|
||||
- [`srfi 133`](api/srfi/133) - [Vector Library (R7RS-compatible)](http://srfi.schemers.org/srfi-133/srfi-133.html)
|
||||
- [`srfi 132`](api/srfi/132) - [Sort libraries](http://srfi.schemers.org/srfi-132/srfi-132.html)
|
||||
- [`srfi 133`](api/srfi/133) - [Vector library (R7RS-compatible)](http://srfi.schemers.org/srfi-133/srfi-133.html)
|
||||
|
||||
# Cyclone Libraries
|
||||
|
||||
|
@ -188,6 +191,7 @@ This section is an alphabetic listing of all the functions, objects, and macros
|
|||
[`and-let*`](api/srfi/2#and-let)
|
||||
[`and`](api/scheme/base#and)
|
||||
[`angle`](api/scheme/complex#angle)
|
||||
[`any-bits-set?`](api/srfi/60#any-bits-set)
|
||||
[`any`](api/scheme/base#any)
|
||||
[`any`](api/srfi/1#any)
|
||||
[`app->args `](api/scheme/cyclone/transforms#app-args)
|
||||
|
@ -200,6 +204,8 @@ This section is an alphabetic listing of all the functions, objects, and macros
|
|||
[`append-reverse`](api/srfi/1#append-reverse)
|
||||
[`append`](api/scheme/base#append)
|
||||
[`apply `](api/primitives#apply)
|
||||
[`arithmetic-shift`](api/srfi/60#ash)
|
||||
[`ash`](api/srfi/60#ash)
|
||||
[`asin`](api/scheme/inexact#asin)
|
||||
[`assoc`](api/scheme/base#assoc)
|
||||
[`assq-remove-key `](api/scheme/cyclone/transforms#assq-remove-key)
|
||||
|
@ -283,15 +289,26 @@ This section is an alphabetic listing of all the functions, objects, and macros
|
|||
[`begin->exps `](api/scheme/cyclone/transforms#begin-exps)
|
||||
[`begin? `](api/scheme/cyclone/util#begin)
|
||||
[`begin`](api/scheme/base#begin)
|
||||
[`bit-count`](api/srfi/60#bit-count)
|
||||
[`bit-field`](api/srfi/60#bit-field)
|
||||
[`bit-set?`](api/srfi/60#bit-set)
|
||||
[`bitwise-and`](api/srfi/60#bitwise-and)
|
||||
[`bitwise-if`](api/srfi/60#bitwise-if)
|
||||
[`bitwise-ior`](api/srfi/60#bitwise-ior)
|
||||
[`bitwise-merge`](api/srfi/60#bitwise-merge)
|
||||
[`bitwise-not`](api/srfi/60#bitwise-not)
|
||||
[`bitwise-xor`](api/srfi/60#bitwise-xor)
|
||||
[`boolean-hash `](api/srfi/128#boolean-hash)
|
||||
[`boolean=?`](api/scheme/base#boolean)
|
||||
[`boolean? `](api/primitives#boolean)
|
||||
[`booleans->integer`](api/srfi/60#booleans-integer)
|
||||
[`box?`](api/srfi/111#box-1)
|
||||
[`box`](api/srfi/111#box)
|
||||
[`break!`](api/srfi/1#break-1)
|
||||
[`break`](api/srfi/1#break)
|
||||
[`built-in-syms `](api/scheme/cyclone/transforms#built-in-syms)
|
||||
[`bytevector `](api/primitives#bytevector)
|
||||
[`bytevector->generator`](api/srfi/121#bytevector-generator)
|
||||
[`bytevector-append `](api/primitives#bytevector-append)
|
||||
[`bytevector-copy!`](api/scheme/base#bytevector-copy-1)
|
||||
[`bytevector-copy`](api/scheme/base#bytevector-copy)
|
||||
|
@ -405,6 +422,8 @@ This section is an alphabetic listing of all the functions, objects, and macros
|
|||
[`cons `](api/primitives#cons)
|
||||
[`cons*`](api/srfi/1#cons)
|
||||
[`const? `](api/scheme/cyclone/util#const)
|
||||
[`copy-bit-field`](api/srfi/60#copy-bit-field)
|
||||
[`copy-bit`](api/srfi/60#copy-bit)
|
||||
[`cos`](api/scheme/inexact#cos)
|
||||
[`count`](api/srfi/1#count)
|
||||
[`cps-convert `](api/scheme/cyclone/transforms#cps-convert)
|
||||
|
@ -519,6 +538,7 @@ This section is an alphabetic listing of all the functions, objects, and macros
|
|||
[`find-tail`](api/srfi/1#find-tail)
|
||||
[`find`](api/srfi/1#find)
|
||||
[`finite?`](api/scheme/inexact#finite)
|
||||
[`first-set-bit`](api/srfi/60#first-set-bit)
|
||||
[`first`](api/srfi/1#first)
|
||||
[`flatten `](api/scheme/cyclone/util#flatten)
|
||||
[`floor-quotient`](api/scheme/base#floor-quotient)
|
||||
|
@ -538,14 +558,40 @@ This section is an alphabetic listing of all the functions, objects, and macros
|
|||
[`free-vars `](api/scheme/cyclone/transforms#free-vars)
|
||||
|
||||
- - -
|
||||
[`gappend`](api/srfi/121#gappend)
|
||||
[`gcd`](api/scheme/base#gcd)
|
||||
[`gcombine`](api/srfi/121#gcombine)
|
||||
[`gcons*`](api/srfi/121#gcons)
|
||||
[`gdelete-neighbor-dups`](api/srfi/121#gdelete-neighbor-dups)
|
||||
[`gdelete`](api/srfi/121#gdelete)
|
||||
[`gdrop-while`](api/srfi/121#gdrop-while)
|
||||
[`gdrop`](api/srfi/121#gdrop)
|
||||
[`generator->list`](api/srfi/121#generator-list)
|
||||
[`generator->reverse-list`](api/srfi/121#generator-reverse-list)
|
||||
[`generator->string`](api/srfi/121#generator-string)
|
||||
[`generator->vector!`](api/srfi/121#generator-vector!)
|
||||
[`generator->vector`](api/srfi/121#generator-vector)
|
||||
[`generator-any`](api/srfi/121#generator-any)
|
||||
[`generator-count`](api/srfi/121#generator-count)
|
||||
[`generator-every`](api/srfi/121#generator-every)
|
||||
[`generator-find`](api/srfi/121#generator-find)
|
||||
[`generator-fold`](api/srfi/121#generator-fold)
|
||||
[`generator-for-each`](api/srfi/121#generator-for-each)
|
||||
[`generator-unfold`](api/srfi/121#generator-unfold)
|
||||
[`generator`](api/srfi/121#generator)
|
||||
[`gensym `](api/scheme/cyclone/util#gensym)
|
||||
[`get-environment-variable`](api/scheme/process-context#get-environment-variable)
|
||||
[`get-environment-variables`](api/scheme/process-context#get-environment-variables)
|
||||
[`get-macros `](api/scheme/cyclone/transforms#get-macros)
|
||||
[`get-output-bytevector`](api/scheme/base#get-output-bytevector)
|
||||
[`get-output-string`](api/scheme/base#get-output-string)
|
||||
[`gfilter`](api/srfi/121#gfilter)
|
||||
[`gindex`](api/srfi/121#gindex)
|
||||
[`global-vars `](api/scheme/cyclone/transforms#global-vars)
|
||||
[`gremove`](api/srfi/121#gremove)
|
||||
[`gselect`](api/srfi/121#gselect)
|
||||
[`gtake-while`](api/srfi/121#gtake-while)
|
||||
[`gtake`](api/srfi/121#gtake)
|
||||
[`guard`](api/scheme/base#guard)
|
||||
|
||||
- - -
|
||||
|
@ -590,6 +636,8 @@ This section is an alphabetic listing of all the functions, objects, and macros
|
|||
[`input-port?`](api/scheme/base#input-port)
|
||||
[`insert `](api/scheme/cyclone/transforms#insert)
|
||||
[`integer->char `](api/primitives#integer-char)
|
||||
[`integer->list`](api/srfi/60#integer-list)
|
||||
[`integer-length`](api/srfi/60#integer-length)
|
||||
[`integer? `](api/primitives#integer)
|
||||
[`iota`](api/srfi/1#iota)
|
||||
[`ip-protocol`](api/srfi/106#ip-protocol)
|
||||
|
@ -657,6 +705,8 @@ This section is an alphabetic listing of all the functions, objects, and macros
|
|||
[`library?`](api/scheme/cyclone/libraries#library)
|
||||
[`list->bag `](api/srfi/113#list-bag)
|
||||
[`list->bag!`](api/srfi/113#list-bag-1)
|
||||
[`list->generator`](api/srfi/121#list-generator)
|
||||
[`list->integer`](api/srfi/60#list-integer)
|
||||
[`list->lambda-formals `](api/scheme/cyclone/transforms#list-lambda-formals)
|
||||
[`list->pair `](api/scheme/cyclone/transforms#list-pair)
|
||||
[`list->set `](api/srfi/113#list-set)
|
||||
|
@ -712,8 +762,16 @@ This section is an alphabetic listing of all the functions, objects, and macros
|
|||
[`list?`](api/scheme/base#list-1)
|
||||
[`list`](api/scheme/base#list)
|
||||
[`load`](api/scheme/load#load)
|
||||
[`log2-binary-factors`](api/srfi/60#log2-binary-factors)
|
||||
[`log`](api/scheme/inexact#log)
|
||||
[`logbit?`](api/srfi/60#logbit)
|
||||
[`logcount`](api/srfi/60#logcount)
|
||||
[`logior`](api/srfi/60#logior)
|
||||
[`lognot`](api/srfi/60#lognot)
|
||||
[`logtest`](api/srfi/60#logtest)
|
||||
[`logxor`](api/srfi/60#logxor)
|
||||
[`lset-adjoin`](api/srfi/1#lset-adjoin)
|
||||
[`lset-diff+intersection!`](api/srfi/1#lset-diffintersection-1)
|
||||
[`lset-diff+intersection`](api/srfi/1#lset-diffintersection)
|
||||
[`lset-difference!`](api/srfi/1#lset-difference-1)
|
||||
[`lset-difference`](api/srfi/1#lset-difference)
|
||||
|
@ -740,12 +798,15 @@ This section is an alphabetic listing of all the functions, objects, and macros
|
|||
[`make-comparator `](api/srfi/128#make-comparator)
|
||||
[`make-condition-variable`](api/srfi/18#make-condition-variable)
|
||||
[`make-constructor`](api/scheme/base#make-constructor)
|
||||
[`make-coroutine-generator`](api/srfi/121#make-coroutine-generator)
|
||||
[`make-default-comparator `](api/srfi/128#make-default-comparator)
|
||||
[`make-eq-comparator `](api/srfi/128#make-eq-comparator)
|
||||
[`make-equal-comparator `](api/srfi/128#make-equal-comparator)
|
||||
[`make-eqv-comparator `](api/srfi/128#make-eqv-comparator)
|
||||
[`make-for-each-generator`](api/srfi/121#make-for-each-generator)
|
||||
[`make-getter`](api/scheme/base#make-getter)
|
||||
[`make-hash-table`](api/srfi/69#make-hash-table)
|
||||
[`make-iota-generator`](api/srfi/121#make-iota-generator)
|
||||
[`make-list-comparator `](api/srfi/128#make-list-comparator)
|
||||
[`make-list-queue`](api/srfi/117#make-list-queue)
|
||||
[`make-list`](api/scheme/base#make-list)
|
||||
|
@ -756,12 +817,14 @@ This section is an alphabetic listing of all the functions, objects, and macros
|
|||
[`make-polar`](api/scheme/complex#make-polar)
|
||||
[`make-promise`](api/scheme/lazy#make-promise)
|
||||
[`make-random-source`](api/srfi/27#make-random-source)
|
||||
[`make-range-generator`](api/srfi/121#make-range-generator)
|
||||
[`make-rectangular`](api/scheme/complex#make-rectangular)
|
||||
[`make-server-socket`](api/srfi/106#make-server-socket)
|
||||
[`make-setter`](api/scheme/base#make-setter)
|
||||
[`make-string`](api/scheme/base#make-string)
|
||||
[`make-thread`](api/srfi/18#make-thread)
|
||||
[`make-type-predicate`](api/scheme/base#make-type-predicate)
|
||||
[`make-unfold-generator`](api/srfi/121#make-unfold-generator)
|
||||
[`make-vector `](api/primitives#make-vector)
|
||||
[`make-vector-comparator `](api/srfi/128#make-vector-comparator)
|
||||
[`mangle `](api/scheme/cyclone/util#mangle)
|
||||
|
@ -882,8 +945,10 @@ This section is an alphabetic listing of all the functions, objects, and macros
|
|||
[`remove`](api/srfi/1#remove)
|
||||
[`reverse!`](api/srfi/1#reverse)
|
||||
[`reverse-list->vector`](api/srfi/133#reverse-list-vector)
|
||||
[`reverse-vector->generator`](api/srfi/121#reverse-vector-generator)
|
||||
[`reverse-vector->list`](api/srfi/133#reverse-vector-list)
|
||||
[`reverse`](api/scheme/base#reverse)
|
||||
[`rotate-bit-field`](api/srfi/60#rotate-bit-field)
|
||||
[`round`](api/scheme/base#round)
|
||||
|
||||
- - -
|
||||
|
@ -970,6 +1035,7 @@ This section is an alphabetic listing of all the functions, objects, and macros
|
|||
[`split-at`](api/srfi/1#split-at)
|
||||
[`sqrt`](api/scheme/inexact#sqrt)
|
||||
[`square`](api/scheme/base#square)
|
||||
[`string->generator`](api/srfi/121#string-generator)
|
||||
[`string->list`](api/scheme/base#string-list)
|
||||
[`string->number `](api/primitives#string-number)
|
||||
[`string->symbol `](api/primitives#string-symbol)
|
||||
|
@ -1055,7 +1121,6 @@ This section is an alphabetic listing of all the functions, objects, and macros
|
|||
[`trace:error `](api/scheme/cyclone/transforms#traceerror)
|
||||
[`trace:info `](api/scheme/cyclone/transforms#traceinfo)
|
||||
[`trace:warn `](api/scheme/cyclone/transforms#tracewarn)
|
||||
[`tree-copy`](api/srfi/1#tree-copy)
|
||||
[`truncate-quotient`](api/scheme/base#truncate-quotient)
|
||||
[`truncate-remainder`](api/scheme/base#truncate-remainder)
|
||||
[`truncate/`](api/scheme/base#truncate-1)
|
||||
|
@ -1077,6 +1142,7 @@ This section is an alphabetic listing of all the functions, objects, and macros
|
|||
|
||||
- - -
|
||||
[`values`](api/scheme/base#values)
|
||||
[`vector->generator`](api/srfi/121#vector-generator)
|
||||
[`vector->list`](api/scheme/base#vector-list)
|
||||
[`vector->string`](api/scheme/base#vector-string)
|
||||
[`vector-any`](api/srfi/133#vector-any)
|
||||
|
@ -1120,7 +1186,6 @@ This section is an alphabetic listing of all the functions, objects, and macros
|
|||
[`vector-unfold!`](api/srfi/133#vector-unfold)
|
||||
[`vector-unfold-right!`](api/srfi/133#vector-unfold-right)
|
||||
[`vector-unfold-right`](api/srfi/133#vector-unfold-right)
|
||||
[`vector-unfold`](api/srfi/133#vector-unfold)
|
||||
[`vector=`](api/srfi/133#vector)
|
||||
[`vector? `](api/primitives#vector)
|
||||
[`vector`](api/scheme/base#vector)
|
||||
|
|
|
@ -9,6 +9,12 @@ The `(srfi 18)` library provides multithreading support.
|
|||
|
||||
See the [Multithreading support SRFI documentation](http://srfi.schemers.org/srfi-18/srfi-18.html) for more information.
|
||||
|
||||
## Limitations
|
||||
|
||||
Currently, ``thread-join!`` is not provided. While this is not an essential
|
||||
primitive and can be worked around, code that relies on ``thread-join!`` being
|
||||
present in this implementation will fail to compile.
|
||||
|
||||
- [`thread?`](#thread)
|
||||
- [`make-thread`](#make-thread)
|
||||
- [`thread-name`](#thread-name)
|
||||
|
|
|
@ -16,6 +16,18 @@ Hash tables are widely recognised as a fundamental data structure for a wide var
|
|||
|
||||
See the [SRFI document](http://srfi.schemers.org/srfi-69/srfi-69.html) for more information.
|
||||
|
||||
## Limitations
|
||||
|
||||
Hash table size must be strictly less than 536,870,909.
|
||||
|
||||
The default implementation of record hashing is severely suboptimal - if you
|
||||
want to store records in a hash table, use a custom hashing function.
|
||||
|
||||
This implementation does not distinguish ``hash`` and ``hash-by-identity``.
|
||||
Additionally, symbol hashing is done by string-hashing the result of
|
||||
``symbol->string`` on the symbol, making symbols identical to strings for the
|
||||
purpose of hash table key performance.
|
||||
|
||||
## Type constructors and predicate
|
||||
[`make-hash-table`](#make-hash-table)
|
||||
[`hash-table?`](#hash-table)
|
||||
|
|
Loading…
Add table
Reference in a new issue