This site is a static rendering of the Trac instance that was used by R7RS-WG1 for its work on R7RS-small (PDF), which was ratified in 2013. For more information, see Home.
Source for wiki ItIsAnError version 4
author
cowan
comment
ipnr
127.10.177.1
name
ItIsAnError
readonly
0
text
== It is an error ==
Here's a list of places where R7RS-small says something "is an error". The names in brackets represent a rough-and-ready classification of these errors, and don't constitute a proposal. The list is [domain], [mismatch], [syntax], [read], [immutable], [undefined], [non-continuable].
1.3.2 procedure domain errors [domain]
1.3.2 too many or too few arguments [mismatch]
1.3.3. reuse of auxiliary syntax [syntax]
1.3.3. violation of start-end constraints [domain]
2.4 non-numeric datum labels [read]
2.4 forward references in datum labels [read]
2.4 recursion in datum labels [read]
2.4 circular code [syntax]
3.4 violations of immutability [immutable]
4.1.1 references to undefined variables [undefined]
4.1.3 `()` as code [syntax]
4.1.4. repeated variables in `lambda` lists [syntax]
4.1.6 `set!` of unbound variable [undefined]
4.2.1 `=>` in `cond` or `case` doesn't accept one argument [domain]
4.2.1 duplicated `case` keys [syntax]
4.2.2 repeated variables in `let`, `letrec`, `let-values`, `let-values*` lists or equivalent internal variable definitions [syntax]
4.2.2 direct recursion in `letrec` or `letrec*` or equivalent internal variable definitions [syntax]
4.2.2 mismatch between `let-values` formals and returned values [mismatch]
4.2.4 repeated variables in `do` [syntax]
4.2.6 non-parameter in `parameterize` [domain]
4.2.8 `unquote-splicing` of a non-list [domain]
4.2.9 uncaught case in `case-lambda` [mismatch]
4.3.1 repeated keywords in `let-syntax` [syntax]
4.3.2 non-identifiers in `syntax-rules` [syntax]
4.3.2 repeated pattern variable in `syntax-rules` [syntax]
4.3.2 unhandled syntax in `syntax-rules` [syntax]
4.3.2 unreconstructible `syntax-rules` output [syntax]
5.2 unknown identifiers in `only`, `except`, `rename` import specs [syntax]
5.2 importing an identifier more than once with different bindings [syntax]
5.2 redefining or mutating imported bindings [syntax]
5.2 referring to unimported identifiers [syntax]
5.3.3 duplicate variables in `define-values` [syntax]
5.4 use of a syntax keyword before its definition [syntax]
5.4 hopelessly muddled or ambiguous definitions [syntax]
5.5 duplicate field names in records [syntax]
5.5 undefined field name in record constructor [syntax]
5.5 invoke record accessor or mutator on record of wrong type [domain]
6.2.3 use anything but an exact integer as a container index [domain]
6.2.6 division by exact 0 [domain]
6.2.7 unusual conversion radix [domain]
6.2.7 impossible conversion from number to string [domain]
6.4 `car` or `cdr` of non-list [domain]
6.4 `list-ref`, `list-set!`, `list-tail` invalid index [domain]
6.4 alist is not an alist [domain]
6.4 attempt to copy a circular list [domain]
6.5 mutating symbol names [immutable]
6.7 violate forbidden-character restrictions [domain]
6.7 `string-ref`, `string-set!` invalid index [domain]
6.7 attempt to convert non-character to string or to fill string with non-character [domain]
6.7 violate `string-copy!` restrictions [domain]
6.8 `vector-ref`, `vector-set!` invalid index [domain]
6.8 violate `vector-copy!` restrictions [domain]
6.9 `bytevector-u8-ref`, `byte-vector-u8-set!` invalid index [domain]
6.9 violate `bytevector-copy!` restrictions [domain]
6.9 invalid UTF-8 byte sequences in `utf8->string` [domain]
6.10 mapping procedures must accept as many containers as are available [domain]
6.10 lists being mapped must not all be circular [domain]
6.10 mapping procedures must not mutate inputs [immutable]
6.10 `call/cc` must accept one argument [domain]
6.10 `with-exception-handler` handler and thunk arguments must accept a condition object and no arguments respectively [domain]
6.11 attempt to continue from a non-continuable exception [non-continuable]
6.13.1 procedure passed to a call procedure must accept one argument [domain]
6.13.1 trying to get a string or bytevector out of a port that is not a string or bytevector port [domain]
6.13.2 attempt operations on a closed port [closed]
6.14 file names must be strings [file]
6.14 attempt to mutate command-line strings [immutable]
6.14 indecipherable environment variable [domain]
6.14 attempt to mutate environment variables or values or features [immutable]
7.1 identifier starting with a combining character [read]
== Implementation restrictions ==
And here's a list of places where R7RS-small speaks of implementation restrictions:
1.3.2 out of memory
1.3.2 overly large exact number
6.2.2 incomplete numeric tower
6.2.2 cannot produce exact result of arithmetic operation
6.2.6 `max` or `min` needs to report an inexact number but cannot
6.2.6 inexact or exact conversion can't represent result
time
2013-07-07 04:29:23
version
4