From 0f266b883accbf0f81d7e32939e86a6981ed0638 Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Fri, 10 Feb 2017 23:18:09 +0000 Subject: [PATCH] Sync --- docs/API.md | 75 ++++++++++++++++++++++++++++++++++++++++++--- docs/api/srfi/18.md | 6 ++++ docs/api/srfi/69.md | 12 ++++++++ 3 files changed, 88 insertions(+), 5 deletions(-) diff --git a/docs/API.md b/docs/API.md index b774f65c..92e48ed8 100644 --- a/docs/API.md +++ b/docs/API.md @@ -36,19 +36,22 @@ This section of the Cyclone API is based on the [R7RS 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) diff --git a/docs/api/srfi/18.md b/docs/api/srfi/18.md index 42a894d5..b93044e1 100644 --- a/docs/api/srfi/18.md +++ b/docs/api/srfi/18.md @@ -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) diff --git a/docs/api/srfi/69.md b/docs/api/srfi/69.md index 8deecc6c..8c0dad72 100644 --- a/docs/api/srfi/69.md +++ b/docs/api/srfi/69.md @@ -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)