source: project/chicken/trunk/manual/Deviations from the standard @ 15321

Last change on this file since 15321 was 15321, checked in by felix winkelmann, 10 years ago

documentation fixes, read-symbolic-link enhancement by mario; rational? fixed (thanks to John Cowan)

File size: 2.4 KB
Line 
1[[tags: manual]]
2
3== Deviations from the standard
4
5Identifiers are by default case-sensitive (see
6[[http://galinha.ucpel.tche.br:8080/Using%20the%20compiler#Compiler%20command%20line%20format|Compiler command line format]]).
7
8[4.1.3] The maximal number of arguments that may be passed to a
9compiled procedure or macro is 120.  A macro-definition that has a
10single rest-parameter can have any number of arguments. 
11
12[4.2.2] {{letrec}} does evaluate the initial values for the bound
13variables sequentially and not in parallel, that is:
14
15  (letrec ((x 1) (y 2)) (cons x y))
16
17is equivalent to
18
19  (let ((x (void)) (y (void)))
20    (set! x 1)
21    (set! y 2)
22    (cons x y) )
23
24where R5RS requires
25
26  (let ((x (void)) (y (void)))
27    (let ((tmp1 1) (tmp2 2))
28      (set! x tmp1)
29      (set! y tmp2)
30      (cons x y) ) )
31
32[6.1] {{equal?}} compares all structured data recursively, while R5RS
33specifies that {{eqv?}} is used for data other than pairs, strings and
34vectors.
35
36[6.2.4] The runtime system uses the numerical string-conversion
37routines of the underlying C library and so does only understand
38standard (C-library) syntax for floating-point constants.
39
40[6.2.5] There is no built-in support for rationals, complex numbers or
41extended-precision integers (bignums). The routines {{complex?}},
42{{real?}} and {{rational?}} are identical to the standard procedure
43{{number?}}. The procedures {{rationalize}}, {{make-rectangular}} and
44{{make-polar}} are not implemented. Fixnums are limited to
45±2<nowiki><sup>30</sup></nowiki> (or ±2<nowiki><sup>62</sup></nowiki>
46on 64-bit hardware). Support for extended numbers is available as a
47separate package, provided the GNU multiprecision library is
48installed.
49
50[6.2.6] The procedure {{string->number}} does not obey read/write
51invariance on inexact numbers.
52
53[6.4] The maximum number of values that can be passed to continuations
54captured using {{call-with-current-continuation}} is 120.
55
56[6.5] Code evaluated in {{scheme-report-environment}} or
57{{null-environment}} still sees non-standard syntax.
58
59[6.6.2] The procedure {{char-ready?}} always returns {{#t}} for
60terminal ports.  The procedure {{read}} does not obey read/write
61invariance on inexact numbers.
62
63[6.6.3] The procedures {{write}} and {{display}} do not obey
64read/write invariance to inexact numbers.
65
66[6.6.4] The {{transcript-on}} and {{transcript-off}} procedures are
67not implemented.
68
69---
70Previous: [[Supported language]]
71
72Next: [[Extensions to the standard]]
Note: See TracBrowser for help on using the repository browser.