[[tags: manual]]
== Deviations from the standard
Identifiers are by default case-sensitive (see
[[http://galinha.ucpel.tche.br:8080/Using%20the%20compiler#Compiler%20command%20line%20format|Compiler command line format]]).
[4.1.3] The maximal number of arguments that may be passed to a
compiled procedure or macro is 120. A macro-definition that has a
single rest-parameter can have any number of arguments.
[4.2.2] {{letrec}} does evaluate the initial values for the bound
variables sequentially and not in parallel, that is:
(letrec ((x 1) (y 2)) (cons x y))
is equivalent to
(let ((x (void)) (y (void)))
(set! x 1)
(set! y 2)
(cons x y) )
where R5RS requires
(let ((x (void)) (y (void)))
(let ((tmp1 1) (tmp2 2))
(set! x tmp1)
(set! y tmp2)
(cons x y) ) )
[6.1] {{equal?}} compares all structured data recursively, while R5RS
specifies that {{eqv?}} is used for data other than pairs, strings and
vectors.
[6.2.4] The runtime system uses the numerical string-conversion
routines of the underlying C library and so does only understand
standard (C-library) syntax for floating-point constants.
[6.2.5] There is no built-in support for rationals, complex numbers or
extended-precision integers (bignums). The routines {{complex?}},
{{real?}} and {{rational?}} are identical to the standard procedure
{{number?}}. The procedures {{rationalize}}, {{make-rectangular}} and
{{make-polar}} are not implemented. Fixnums are limited to
±2^{30} (or ±2^{62}
on 64-bit hardware). Support for extended numbers is available as a
separate package, provided the GNU multiprecision library is
installed.
[6.2.6] The procedure {{string->number}} does not obey read/write
invariance on inexact numbers.
[6.4] The maximum number of values that can be passed to continuations
captured using {{call-with-current-continuation}} is 120.
[6.5] Code evaluated in {{scheme-report-environment}} or
{{null-environment}} still sees non-standard syntax.
[6.6.2] The procedure {{char-ready?}} always returns {{#t}} for
terminal ports. The procedure {{read}} does not obey read/write
invariance on inexact numbers.
[6.6.3] The procedures {{write}} and {{display}} do not obey
read/write invariance to inexact numbers.
[6.6.4] The {{transcript-on}} and {{transcript-off}} procedures are
not implemented.
---
Previous: [[Supported language]]
Next: [[Extensions to the standard]]