This section lists all ways in which SISC interprets the R5RS specification, where the standard is not particular clear. Such interpretations may allow non-portable code to be written and executed on SISC. Additionally, all known R5RS violations are listed. Actual violations are considered SISC bugs, and have a high priority for being fixed. Violations of the standard are written in bold text.
2.3 - SISC allows identifiers to start with '+', '-', or '.' if they cannot be read as numbers.
2.3 - SISC uses the reserved characters '[' and ']' as synonyms for '(' and ')' respectively.
2.3 - SISC does not raise any warning or error when encountering the reserved characters "[]{}|", and allows "{}|" to appear in identifiers.
4.1.3 - SISC does not distinguish between () and the quoted empty list '().
6.2.3 -
The standard desires that that operations such as
sqrt
try to provide exact results
when given exact arguments. While SISC meets the requirement
for sqrt
, it is not clear what other mathematical
functions should have this behavior. SISC takes no
heroic efforts to meet this requirement.
6.2.6 -
SISC allows radixes other than those specified in the
contract for number->string
and
string->number
. In particular,
any radix up to 36 is allowed, and any unsupported value
causes SISC to revert to base 10.
6.5 - SISC currently returns
an environment from the scheme-report-environment
which contains
four bindings not specified in R5RS, bindings which
are needed by R5RS syntactic keywords.
6.6.2 - SISC currently only
warns when end-of-file is reached in
read
, rather than signaling an
error. The unterminated datum is discarded.
All of the liberties described above are implemented for the
convenience of the programmer. If desired,
strict R5RS syntax and semantics may be
enabled with the strictR5RSCompliance
configuration parameter (see the section called “Configuration Parameters”), causing SISC to raise errors
in all R5RS situations that result in "an error", as well as
respect the lexical syntax's reserved characters. When in
strict compliance mode, the above mentioned
deviations no longer apply and SISC is entirely R5RS
compliant.