Changeset 15365 in project


Ignore:
Timestamp:
08/07/09 23:58:55 (10 years ago)
Author:
svnwiki
Message:

Changes applied for John Cowan (72.14.228.129) through svnwiki:

Rearranged the deviations into four categories.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • wiki/man/4/Deviations from the standard

    r14118 r15365  
    11[[tags: manual]]
    22
    3 == Deviations from the standard
     3== Confirmed deviations
    44
    55Identifiers are by default case-sensitive (see
     
    77
    88[4.1.3] The maximal number of arguments that may be passed to a
    9 compiled procedure or macro is 120.  A macro-definition that has a
    10 single rest-parameter can have any number of arguments. 
     9compiled procedure or macro is 120. (However, a macro-definition
     10that has a single rest-parameter can have any number of arguments.)
     11Likewise, [6.4] the maximum number of values that can be passed
     12to continuations captured using {{call-with-current-continuation}}
     13is 120.  This is an implementation restriction that is unlikely
     14to be lifted.
     15
     16[6.2.5] The {{numerator}} and {{denominator}} procedures cannot be
     17applied to inexact numbers, and the procedure {{rationalize}} is not
     18implemented at all.  This will be fixed in a later release.
     19
     20[6.2.4] The runtime system uses the numerical string-conversion
     21routines of the underlying C library and so does only understand
     22standard (C-library) syntax for floating-point constants.  Consequently,
     23the procedures [6.2.6] {{string->number}}, [6.6.2] {{read}},
     24[6.6.3] {{write}}, and [6.6.3] {{display}} do not obey
     25read/write invariance to inexact numbers.
     26
     27[6.5] Code evaluated in {{scheme-report-environment}} or
     28{{null-environment}} still sees non-standard syntax.
     29
     30== Unconfirmed deviations
     31
     32[6.6.2] The procedure {{char-ready?}} always returns {{#t}} for
     33terminal ports.
     34
     35== Doubtful deviations
    1136
    1237[4.2.2] {{letrec}} does evaluate the initial values for the bound
     
    3055      (cons x y) ) )
    3156
     57It is unclear whether R5RS permits this behavior or not; in any case,
     58this only affects letrecs where the bound values are not
     59lambda-expressions.
     60
     61== Non-deviations
     62
    3263[6.1] {{equal?}} compares all structured data recursively, while R5RS
    3364specifies that {{eqv?}} is used for data other than pairs, strings and
    34 vectors.
     65vectors.  However, R5RS does not dictate the treatment of data types
     66that are not specified by R5RS.
    3567
    36 [6.2.4] The runtime system uses the numerical string-conversion
    37 routines of the underlying C library and so does only understand
    38 standard (C-library) syntax for floating-point constants.
    39 
    40 [6.2.5] There is no built-in support for rationals, complex numbers or
    41 extended-precision integers (bignums). The routines {{complex?}},
    42 {{real?}} and {{rational?}} are identical to the standard procedure
    43 {{number?}}. The procedures {{numerator}}, {{denominator}},
    44 {{rationalize}}, {{make-rectangular}} and {{make-polar}} are not
    45 implemented. Fixnums are limited to ±2<nowiki><sup>30</sup></nowiki>
    46 (or ±2<nowiki><sup>62</sup></nowiki> on 64-bit 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 {{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
    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 built-in support for exact rationals, complex
     69numbers or extended-precision integers (bignums). The routines
     70{{complex?}}, {{real?}} and {{rational?}} are identical to
     71he standard procedure {{number?}}. The procedures {{make-rectangular}}
     72and {{make-polar}} are not implemented. Fixnums are limited to
     73±2<nowiki><sup>30</sup></nowiki> (or ±2<nowiki><sup>62</sup></nowiki>
     74on 64-bit hardware).  Support for the full numeric tower is available
     75as a separate package, provided the GNU multiprecision library is installed.
    6576
    6677[6.6.4] The {{transcript-on}} and {{transcript-off}} procedures are
    67 not implemented.
     78not implemented.  R5RS does not require them.
    6879
    6980---
Note: See TracChangeset for help on using the changeset viewer.