Changes between Version 6 and Version 7 of WG1BallotShinn


Ignore:
Timestamp:
06/27/11 12:55:23 (6 years ago)
Author:
alexshinn
Comment:

updating my votes

Legend:

Unmodified
Added
Removed
Modified
  • WG1BallotShinn

    v6 v7  
    124124    * '''r6rs:''' no proposal yet 
    125125    * '''cowan:''' ModuleFactoringCowan 
     126    * '''gleckler:''' ModuleFactoringGleckler 
     127    * '''medernach:''' ModuleFactoringMedernach 
    126128    * '''shinn:''' ModuleFactoringShinn 
    127   * '''Options:''' draft-1, r5rs, r6rs, cowan, shinn, undecided 
     129  * '''Options:''' draft-1, r5rs, r6rs, cowan, gleckler, medernach, shinn, undecided 
    128130  * '''Default:''' draft-1 
    129   * '''Preferences:''' shinn, cowan, draft-1 
    130  
    131 I like my own choice as a good balance of well factored and convenient 
    132 for users. 
     131  * '''Preferences:''' medernach, shinn, gleckler, cowan, draft-1 
     132 
     133I prefer Medernach's proposal to my own here. 
    133134 
    134135= New Ballot Items = 
     
    272273 
    273274In issue #70, WG1 voted to make `current-seconds` an optional 
    274 procedure, but there is no guidance about what it returns.  The second 
    275 choice, TimeCowan, calls it `current-posix-second` and makes it return 
    276 the integral number of seconds since the Posix epoch, excluding all 
    277 leap seconds.  We need a final decision on name and semantics. 
    278  
     275procedure, but there is no guidance about what it returns. 
     276 
     277If we choose to specify this further, the big question is whether or 
     278not to include leap seconds - i.e. do we specify it as TAI or POSIX 
     279time (the choice of the epoch itself is less controversial and 
     280defaults to the POSIX epoch).  TAI time has the advantage that it 
     281measures real, unambiguous time, and two calls to current-seconds more 
     282than a second apart are guaranteed to actually differ.  POSIX time has 
     283the advantage of bug-for-bug compatibility with POSIX systems - the 
     284times are ambiguous, but they already have to deal with that. 
     285 
     286The other issue is whether to return an integral number of seconds and 
     287lose the ability to specify subsecond real times, or return an inexact 
     288real (flonum) number of seconds and have to deal with variable 
     289precision depending on the date. 
     290 
     291TimeCowan is equivalent to the `posix-integer` option, and in addition 
     292changes the name to `current-posix-second`. 
     293 
     294  * '''Proposals:''' 
     295    * '''cowan:''' TimeCowan 
     296    * '''posix-integer:''' POSIX time as an exact integer value 
     297    * '''posix-flonum:''' POSIX time as an inexact real value 
     298    * '''tai-integer:''' TAI time as an exact integer value 
     299    * '''tai-flonum:''' TAI time as an inexact real value 
    279300  * '''Options:''' cowan, unspecified, undecided, none 
    280301  * '''Default:''' unspecified 
    281   * '''Preferences:''' undecided 
     302  * '''Preferences:''' tai-flonum, tai-integer, unspecified 
     303 
     304POSIX is just broken, too horribly to defend.  It can neither reliably 
     305be used to measure real time (duration) because it shifts, nor can it 
     306be used to measure absolute time because it is ambiguous.  If we don't 
     307settle on TAI we can only leave this unspecified. 
    282308 
    283309=== #147 Allow literal file spec lists in include and include-ci === 
     
    290316  * '''Options:''' yes, no, undecided 
    291317  * '''Default:''' no 
    292   * '''Preferences:''' undecided 
     318  * '''Preferences:''' no 
     319 
     320The file spec list isn't needed here, and can always be added later 
     321anyway. 
    293322 
    294323=== #148 Allow include-ci at top level === 
     
    432461nonexistent Unicode Numeric property.  That has to be fixed.  Options: 
    433462 
    434  1. `char-numeric?` returns `#t` if the character's Numeric_Type 
    435  property value is other than `None`.  This means that many hanzi are 
    436  both alphabetic and numeric. 
     463 1. '''Any.''' `char-numeric?` returns `#t` if the character's 
     464 Numeric_Type property value is other than `None`.  This means that 
     465 many hanzi are both alphabetic and numeric. 
    437466 
    438467 2. (Omitted, because it does not preserve IEEE Scheme) 
    439468 
    440  3. Define `char-numeric?` to return `#t` only for 0, 1, 2, 3, 4, 5, 
    441  6, 7, 8, and 9.  This retains compatibility witht R5RS, and we can 
    442  still use `char-numeric?` to parse numbers, and safely use `(- 
    443  (char->integer c) (char->integer #\0))` to obtain the digit value the 
    444  character represents.  (Note: R5RS programs that use `char-numeric?` 
    445  to parse numbers will break if we adopt the current draft's 
    446  definition of `char-numeric?`).  Gauche, Gambit, and Chicken (without 
    447  the utf8 egg) work like this. 
    448  
    449  4. Define `char-numeric?` as equivalent to the Numeric_Digit property 
    450  (general category value of Nd).  Guile 2.0, Kawa, Larceny, Ypsilon, 
    451  Mosh, and IronScheme work like this. 
    452  
    453  5. define `char-numeric?` as equivalent to the Number property 
    454  (general category values of Nd, Nl, No).  Scheme48, Chez, and Ikarus 
    455  work like this. 
     469 3. '''ASCII.''' Define `char-numeric?` to return `#t` only for ASCII 
     470 0, 1, 2, 3, 4, 5, 6, 7, 8, and 9.  This retains compatibility witht 
     471 R5RS, and we can still use `char-numeric?` to parse numbers, and 
     472 safely use `(- (char->integer c) (char->integer #\0))` to obtain the 
     473 digit value the character represents.  (Note: R5RS programs that use 
     474 `char-numeric?` to parse numbers will break if we adopt the current 
     475 draft's definition of `char-numeric?`).  Gauche, Gambit, and Chicken 
     476 (without the utf8 egg) work like this. 
     477 
     478 4. '''Digit.''' Define `char-numeric?` as equivalent to the 
     479 Numeric_Digit property (general category value of Nd).  Guile 2.0, 
     480 Kawa, Larceny, Ypsilon, Mosh, and IronScheme work like this. 
     481 
     482 5. '''Number.''' Define `char-numeric?` as equivalent to the Number 
     483 property (general category values of Nd, Nl, No).  Scheme48, Chez, 
     484 and Ikarus work like this. 
    456485 
    457486  * '''Options:''' any, number, digit, ascii, undecided 
    458487  * '''Default:''' ascii 
    459   * '''Preferences:''' undecided 
     488  * '''Preferences:''' digit, number, ascii, any 
     489 
     490I agree with John's reasoning on this, and second it with `number` 
     491because I think that's what the R6RS intended, and would prefer to be 
     492inclusive here. 
    460493 
    461494=== #166 Add predicate and accessors for error objects === 
     
    759792 
    760793Not all 64 combinations necessarily make sense.  The default from R5RS 
    761 is "unspecified", which means all 16 values are unspecified. 
     794is "unspecified", which means all 16 values are unspecified.  Note in 
     795most implementations there is no such thing as a "reference" to 
     796existing syntax, since macros are expanded once, but this is not the 
     797case for SCM or Wraith Scheme. 
    762798 
    763799  * '''Proposals:''' 
     
    765801    * '''preserve:''' preserve for all 16 values (must always create a new definition, not mutate, contrary to most implementations) 
    766802    * '''common:''' most common behavior among implementations - override, except preserve for non-syntax to syntax 
    767     * '''dynamic:''' override, except unspecified for non-syntax to syntax (compatible with all implementations) 
     803    * '''simple:''' override, except unspecified for non-syntax to syntax 
     804    * '''dynamic:''' override, except unspecified for syntax to anything (compatible with SCM/Wraith) 
    768805  * '''Options:''' override, preserve, common, dynamic, unspecified, undecided 
    769806  * '''Default:''' unspecified 
    770   * '''Preferences:''' dynamic 
    771  
    772 I'm not convinced it's worth forbidding the SCM/Wraith behavior. 
     807  * '''Preferences:''' common, simple, dynamic 
     808 
     809This is largely a de facto standard. 
    773810 
    774811=== #132 Imports override previous imports? === 
     
    10331070  * '''Options:''' r6rs, r5rs, undecided 
    10341071  * '''Default:''' r5rs 
    1035   * '''Preferences:''' undecided 
     1072  * '''Preferences:''' r6rs 
    10361073 
    10371074=== #122 Make infinity, NaN, and -0.0 semantics (when supported) consistent with IEEE 754 === 
     
    12641301From the Guile manual: 
    12651302 
    1266  Scheme Procedure: centered/ x y 
    1267  Scheme Procedure: centered-quotient x y 
    1268  Scheme Procedure: centered-remainder x y 
     1303* Scheme Procedure: centered/ x y 
     1304* Scheme Procedure: centered-quotient x y 
     1305* Scheme Procedure: centered-remainder x y 
    12691306 
    12701307These procedures accept two real numbers x and y, where the divisor y