Changeset 15365 in project
 Timestamp:
 08/07/09 23:58:55 (12 years ago)
 File:

 1 edited
Legend:
 Unmodified
 Added
 Removed

wiki/man/4/Deviations from the standard
r14118 r15365 1 1 [[tags: manual]] 2 2 3 == Deviations from the standard3 == Confirmed deviations 4 4 5 5 Identifiers are by default casesensitive (see … … 7 7 8 8 [4.1.3] The maximal number of arguments that may be passed to a 9 compiled procedure or macro is 120. A macrodefinition that has a 10 single restparameter can have any number of arguments. 9 compiled procedure or macro is 120. (However, a macrodefinition 10 that has a single restparameter can have any number of arguments.) 11 Likewise, [6.4] the maximum number of values that can be passed 12 to continuations captured using {{callwithcurrentcontinuation}} 13 is 120. This is an implementation restriction that is unlikely 14 to be lifted. 15 16 [6.2.5] The {{numerator}} and {{denominator}} procedures cannot be 17 applied to inexact numbers, and the procedure {{rationalize}} is not 18 implemented at all. This will be fixed in a later release. 19 20 [6.2.4] The runtime system uses the numerical stringconversion 21 routines of the underlying C library and so does only understand 22 standard (Clibrary) syntax for floatingpoint constants. Consequently, 23 the procedures [6.2.6] {{string>number}}, [6.6.2] {{read}}, 24 [6.6.3] {{write}}, and [6.6.3] {{display}} do not obey 25 read/write invariance to inexact numbers. 26 27 [6.5] Code evaluated in {{schemereportenvironment}} or 28 {{nullenvironment}} still sees nonstandard syntax. 29 30 == Unconfirmed deviations 31 32 [6.6.2] The procedure {{charready?}} always returns {{#t}} for 33 terminal ports. 34 35 == Doubtful deviations 11 36 12 37 [4.2.2] {{letrec}} does evaluate the initial values for the bound … … 30 55 (cons x y) ) ) 31 56 57 It is unclear whether R5RS permits this behavior or not; in any case, 58 this only affects letrecs where the bound values are not 59 lambdaexpressions. 60 61 == Nondeviations 62 32 63 [6.1] {{equal?}} compares all structured data recursively, while R5RS 33 64 specifies that {{eqv?}} is used for data other than pairs, strings and 34 vectors. 65 vectors. However, R5RS does not dictate the treatment of data types 66 that are not specified by R5RS. 35 67 36 [6.2.4] The runtime system uses the numerical stringconversion 37 routines of the underlying C library and so does only understand 38 standard (Clibrary) syntax for floatingpoint constants. 39 40 [6.2.5] There is no builtin support for rationals, complex numbers or 41 extendedprecision integers (bignums). The routines {{complex?}}, 42 {{real?}} and {{rational?}} are identical to the standard procedure 43 {{number?}}. The procedures {{numerator}}, {{denominator}}, 44 {{rationalize}}, {{makerectangular}} and {{makepolar}} are not 45 implemented. Fixnums are limited to Â±2<nowiki><sup>30</sup></nowiki> 46 (or Â±2<nowiki><sup>62</sup></nowiki> on 64bit hardware). Support for 47 extended numbers is available as a separate package, provided the GNU 48 multiprecision library is installed. 49 50 [6.2.6] The procedure {{string>number}} does not obey read/write 51 invariance on inexact numbers. 52 53 [6.4] The maximum number of values that can be passed to continuations 54 captured using {{callwithcurrentcontinuation}} is 120. 55 56 [6.5] Code evaluated in {{schemereportenvironment}} or 57 {{nullenvironment}} still sees nonstandard syntax. 58 59 [6.6.2] The procedure {{charready?}} always returns {{#t}} for 60 terminal ports. The procedure {{read}} does not obey read/write 61 invariance on inexact numbers. 62 63 [6.6.3] The procedures {{write}} and {{display}} do not obey 64 read/write invariance to inexact numbers. 68 [6.2.5] There is no builtin support for exact rationals, complex 69 numbers or extendedprecision integers (bignums). The routines 70 {{complex?}}, {{real?}} and {{rational?}} are identical to 71 he standard procedure {{number?}}. The procedures {{makerectangular}} 72 and {{makepolar}} are not implemented. Fixnums are limited to 73 Â±2<nowiki><sup>30</sup></nowiki> (or Â±2<nowiki><sup>62</sup></nowiki> 74 on 64bit hardware). Support for the full numeric tower is available 75 as a separate package, provided the GNU multiprecision library is installed. 65 76 66 77 [6.6.4] The {{transcripton}} and {{transcriptoff}} procedures are 67 not implemented. 78 not implemented. R5RS does not require them. 68 79 69 80 
Note: See TracChangeset
for help on using the changeset viewer.