Changes between Version 37 and Version 38 of WG1Ballot


Ignore:
Timestamp:
06/27/11 13:00:15 (6 years ago)
Author:
alexshinn
Comment:

some clarifications and a few new options

Legend:

Unmodified
Added
Removed
Modified
  • WG1Ballot

    v37 v38  
    238238 
    239239In issue #70, WG1 voted to make `current-seconds` an optional 
    240 procedure, but there is no guidance about what it returns.  The second 
    241 choice, TimeCowan, calls it `current-posix-second` and makes it return 
    242 the integral number of seconds since the Posix epoch, excluding all 
    243 leap seconds.  We need a final decision on name and semantics. 
    244  
    245 Need proposals. 
    246  
    247   * '''Options:'''  
    248   * '''Default:'''  
    249   * '''Preferences:'''  
     240procedure, but there is no guidance about what it returns. 
     241 
     242If we choose to specify this further, the big question is whether or 
     243not to include leap seconds - i.e. do we specify it as TAI or POSIX 
     244time (the choice of the epoch itself is less controversial and 
     245defaults to the POSIX epoch).  TAI time has the advantage that it 
     246measures real, unambiguous time, and two calls to current-seconds more 
     247than a second apart are guaranteed to actually differ.  POSIX time has 
     248the advantage of bug-for-bug compatibility with POSIX systems - the 
     249times are ambiguous, but they already have to deal with that. 
     250 
     251The other issue is whether to return an integral number of seconds and 
     252lose the ability to specify subsecond real times, or return an inexact 
     253real (flonum) number of seconds and have to deal with variable 
     254precision depending on the date. 
     255 
     256TimeCowan is equivalent to the `posix-integer` option, and in addition 
     257changes the name to `current-posix-second`. 
     258 
     259  * '''Proposals:''' 
     260    * '''cowan:''' TimeCowan 
     261    * '''posix-integer:''' POSIX time as an exact integer value 
     262    * '''posix-flonum:''' POSIX time as an inexact real value 
     263    * '''tai-integer:''' TAI time as an exact integer value 
     264    * '''tai-flonum:''' TAI time as an inexact real value 
     265  * '''Options:''' cowan, unspecified, undecided, none 
     266  * '''Default:''' unspecified 
     267  * '''Preferences:''' tai-flonum, tai-integer, unspecified 
    250268 
    251269=== #147 Allow literal file spec lists in include and include-ci === 
     
    380398nonexistent Unicode Numeric property.  That has to be fixed.  Options: 
    381399 
    382  1. `char-numeric?` returns `#t` if the character's Numeric_Type 
    383  property value is other than `None`.  This means that many hanzi are 
    384  both alphabetic and numeric. 
     400 1. '''Any.''' `char-numeric?` returns `#t` if the character's 
     401 Numeric_Type property value is other than `None`.  This means that 
     402 many hanzi are both alphabetic and numeric. 
    385403 
    386404 2. (Omitted, because it does not preserve IEEE Scheme) 
    387405 
    388  3. Define `char-numeric?` to return `#t` only for 0, 1, 2, 3, 4, 5, 
    389  6, 7, 8, and 9.  This retains compatibility witht R5RS, and we can 
    390  still use `char-numeric?` to parse numbers, and safely use `(- 
    391  (char->integer c) (char->integer #\0))` to obtain the digit value the 
    392  character represents.  (Note: R5RS programs that use `char-numeric?` 
    393  to parse numbers will break if we adopt the current draft's 
    394  definition of `char-numeric?`).  Gauche, Gambit, and Chicken (without 
    395  the utf8 egg) work like this. 
    396  
    397  4. Define `char-numeric?` as equivalent to the Numeric_Digit property 
    398  (general category value of Nd).  Guile 2.0, Kawa, Larceny, Ypsilon, 
    399  Mosh, and IronScheme work like this. 
    400  
    401  5. define `char-numeric?` as equivalent to the Number property 
    402  (general category values of Nd, Nl, No).  Scheme48, Chez, and Ikarus 
    403  work like this. 
     406 3. '''ASCII.''' Define `char-numeric?` to return `#t` only for ASCII 
     407 0, 1, 2, 3, 4, 5, 6, 7, 8, and 9.  This retains compatibility witht 
     408 R5RS, and we can still use `char-numeric?` to parse numbers, and 
     409 safely use `(- (char->integer c) (char->integer #\0))` to obtain the 
     410 digit value the character represents.  (Note: R5RS programs that use 
     411 `char-numeric?` to parse numbers will break if we adopt the current 
     412 draft's definition of `char-numeric?`).  Gauche, Gambit, and Chicken 
     413 (without the utf8 egg) work like this. 
     414 
     415 4. '''Digit.''' Define `char-numeric?` as equivalent to the 
     416 Numeric_Digit property (general category value of Nd).  Guile 2.0, 
     417 Kawa, Larceny, Ypsilon, Mosh, and IronScheme work like this. 
     418 
     419 5. '''Number.''' Define `char-numeric?` as equivalent to the Number 
     420 property (general category values of Nd, Nl, No).  Scheme48, Chez, 
     421 and Ikarus work like this. 
    404422 
    405423  * '''Options:''' any, number, digit, ascii, undecided 
     
    692710 
    693711Not all 64 combinations necessarily make sense.  The default from R5RS 
    694 is "unspecified", which means all 16 values are unspecified. 
     712is "unspecified", which means all 16 values are unspecified.  Note in 
     713most implementations there is no such thing as a "reference" to 
     714existing syntax, since macros are expanded once, but this is not the 
     715case for SCM or Wraith Scheme. 
    695716 
    696717  * '''Proposals:''' 
     
    698719    * '''preserve:''' preserve for all 16 values (must always create a new definition, not mutate, contrary to most implementations) 
    699720    * '''common:''' most common behavior among implementations - override, except preserve for non-syntax to syntax 
    700     * '''dynamic:''' override, except unspecified for non-syntax to syntax (compatible with all implementations) 
     721    * '''simple:''' override, except unspecified for non-syntax to syntax 
     722    * '''dynamic:''' override, except unspecified for syntax to anything (compatible with SCM/Wraith) 
    701723  * '''Options:''' override, preserve, common, dynamic, unspecified, undecided 
    702724  * '''Default:''' unspecified 
     
    11411163From the Guile manual: 
    11421164 
    1143  Scheme Procedure: centered/ x y 
    1144  Scheme Procedure: centered-quotient x y 
    1145  Scheme Procedure: centered-remainder x y 
     1165* Scheme Procedure: centered/ x y 
     1166* Scheme Procedure: centered-quotient x y 
     1167* Scheme Procedure: centered-remainder x y 
    11461168 
    11471169These procedures accept two real numbers x and y, where the divisor y