Changes between Version 5 and Version 6 of WG1BallotGleckler


Ignore:
Timestamp:
08/08/10 20:32:16 (7 years ago)
Author:
aag
Comment:

Voted in response to Alex Shinn's call for voting on Sun 1 Aug 2010.

Legend:

Unmodified
Added
Removed
Modified
  • WG1BallotGleckler

    v5 v6  
    11= WG1 New Ballot Votes by ArthurGleckler = 
    22 
    3 Notes about voting: 
     3Notes about results: 
    44 
    55  * you may list as many of the options as you want in order of preference 
     
    1313  * items up for final vote will be marked as such (none are final now) 
    1414 
     15== WG1 - Modules == 
     16 
     17=== 2 Module System === 
     18 
     19As per the charter, we need a module system 
     20proposal which allows sharing of code between 
     21implementations. 
     22 
     23This is one issue where we can't default to 
     24the R5RS, since it has no module system. If 
     25we can't come to consensus, we will have to 
     26take the R6RS module system as-is. 
     27 
     28  * '''Proposals:''' 
     29    * '''hsu:''' ModulesAndPackagesArcfide 
     30    * '''shinn:''' ModulesShinn 
     31  * '''Options:''' hsu, shinn, r6rs, undecided 
     32  * '''Preferences:''' hsu, shinn, r6rs 
     33 
    1534== WG1 - Core == 
    1635 
    17 === 37 transcript-on and transcript-off === 
    18  
    19 These were relegated to a compatibility library 
    20 in R6RS.  Do we want to keep them, drop them, or 
    21 move them to a library? 
    22  
    23   * '''Options:''' yes,no,module,wg2,undecided 
    24   * '''Preferences:''' module,no,wg2 
    25  
    26 === 38 letrec* === 
    27  
    28 R6RS added letrec* and defined the semantics 
    29 of internal define to be equivalent.  Do we 
    30 want to add this? 
    31  
    32   * '''Options:''' yes,no,module,wg2,undecided 
    33   * '''Preferences:''' undecided 
    34  
    35 === 41 Should we adopt the SRFI-1 extension to MAP and FOR-EACH? === 
    36  
    37 This extension allows the list arguments to be of unequal length, and 
    38 stops the procedure whenever any of them run out.  R5RS says the lists 
    39 ''must'' be of the same length, R6RS says they ''should'' be. 
    40  
    41 `Yes` to allow unequal length. 
    42  
    43   * '''Options:''' yes,no,module,wg2,undecided 
    44   * '''Preferences:''' yes 
    45  
    46 === 42 Should we adopt the SRFI-1 extension to ASSOC and MEMBER? === 
    47  
    48 This extension accepts a third argument, the equality predicate to be 
    49 used.  Alternatively we could use the R6RS predicates ASSP and MEMP. 
    50  
    51   * '''Options:''' srfi-1,r6rs,no,module,wg2,undecided 
    52   * '''Preferences:''' srfi-1,r6rs 
     36=== 50 Byte-Vectors === 
     37 
     38Several SRFIs, R6RS, and most Scheme implementations 
     39support some sort of uniform packed integer vectors. 
     40In particular, these are necessary for efficient 
     41binary I/O, and for memory mapping, so WG2 will 
     42certainly want them. 
     43 
     44Do we provide a syntax and basic API for these in WG1? 
     45 
     46  * '''Proposals:''' 
     47    * '''cowan:''' BlobAPI 
     48    * '''snellpym:''' BlobsAndSRFI4SnellPym 
     49  * '''Options:''' cowan, snellpym, wg2, none, undecided 
     50  * '''Preferences:''' cowan 
     51 
     52=== 69 Parameters === 
     53 
     54Most Scheme implementations provide some form of dynamic bindings such 
     55as those provided by SRFI-39 parameters. 
     56 
     57  * '''Proposals:''' 
     58    * '''cowan:''' ImmutableParametersCowan 
     59    * '''snellpym:''' ParametersSnellPym 
     60  * '''Options:''' cowan, snellpym, srfi-39, wg2, none, undecided 
     61  * '''Preferences:''' cowan, srfi-39, wg2 
     62 
     63== WG1 - Exceptions == 
     64 
     65=== 18 Exception System === 
     66 
     67R6RS provided a detailed exception system with 
     68support for raising and catching exceptions, using 
     69a hierarchy of exception types. 
     70 
     71Do we use this, or parts of it, or a new exception 
     72system? 
     73 
     74  * '''Proposals:''' 
     75    * '''cowan:''' ExceptionHandlingCowan 
     76  * '''Options:''' cowan, wg2, none, undecided 
     77  * '''Preferences:''' cowan, wg2 
     78 
     79---- 
     80 
     81= WG1 Controversial Ballot Items = 
     82 
     83== WG1 - Core == 
    5384 
    5485=== 40 SRFI vs. R6RS precedence === 
     
    69100 
    70101  * '''Proposals:''' 
     102    * '''hsu:''' RecordsArcfide 
     103    * '''rush:''' UserAggregatesRush 
    71104    * '''snellpym:''' UniqueTypesSnellPym 
    72     * '''hsu:''' RecordsArcfide 
    73   * '''Options:''' snellpym,hsu,srfi-9,no,wg2,undecided 
     105  * '''Options:''' hsu,rush,snellpym,srfi-9,srfi-99,no,wg2,undecided 
    74106  * '''Preferences:''' srfi-99,srfi-9,hsu,snellpym 
    75  
    76 === 33 dynamic-wind === 
    77  
    78 New to R5RS, do we reaffirm the sometimes debated dynamic-wind? 
    79  
    80   * '''Options:''' yes,no,module,wg2,undecided 
    81   * '''Preferences:''' yes,module,wg2 
    82  
    83 === 34 multiple values === 
    84  
    85 New to R5RS, do we reaffirm multiple values, specifically the 
    86 procedures `call-with-values` and `values`? 
    87  
    88   * '''Options:''' yes,no,module,wg2,undecided 
    89   * '''Preferences:''' yes,module,wg2 
    90107 
    91108=== 51 support for cyclic structures in primitives === 
     
    102119  * '''Options:''' yes,no,module,wg2,undecided 
    103120  * '''Preferences:''' yes,wg2 
     121 
     122=== 58 exact-integer-sqrt === 
     123 
     124Should WG1 include `exact-integer-sqrt` from R6RS?  It allows square 
     125root operations in Schemes that don't provide inexact arithmetic, and 
     126has different semantics from `sqrt`, as it rounds its argument down to 
     127the nearest exact square. 
     128 
     129  * '''Options:''' yes,no,module,wg2,undecided 
     130  * '''Preferences:''' yes,module,wg2 
     131 
     132=== 61 finite? nan? === 
     133 
     134Shall we add these numeric predicates? 
     135 
     136  * '''Options:''' yes,no,module,wg2,undecided 
     137  * '''Preferences:''' undecided 
     138 
     139=== 63 call/cc short name === 
     140 
     141Should we allow `call/cc` as an equivalent to 
     142`call-with-current-continuation`? 
     143 
     144  * '''Options:''' yes,no,module,wg2,undecided 
     145  * '''Preferences:''' no,module,wg2 
     146 
     147=== 53 Implicit BEGIN to implicit LET-NIL === 
     148 
     149In general, in places where an implict BEGIN occurs, it is possible to 
     150change this to an implicit LET-NIL and remain backwards 
     151compatible. Should we do this? 
     152 
     153  * '''Options:''' yes,no,module,wg2,undecided 
     154  * '''Preferences:''' yes 
     155 
     156== WG1 - I/O == 
     157 
     158=== 52 read/write cyclic data === 
     159 
     160SRFI-38 standardizes the #0=(1 . #0#) shared 
     161structure notation for read/write.  In the case 
     162of write, this can be expensive to compute, but 
     163otherwise the common case of the repl printing 
     164a cyclic structure results in an infinite loop. 
     165 
     166Do we want to add support for this, as an option 
     167or separate set of procedures? 
     168 
     169  * '''Options:''' yes,no,module,wg2,undecided 
     170  * '''Preferences:''' no,module,wg2 
     171 
     172== WG1 - Libraries == 
     173 
     174=== 36 hash-tables === 
     175 
     176R6RS and SRFI-69 both provide hash-table interfaces. 
     177Do we provide either of these, or try to provide 
     178some primitives on which efficient hash-tables can 
     179be implemented? 
     180 
     181  * '''Options:''' srfi-69,r6rs,no,module,wg2,undecided 
     182  * '''Preferences:''' wg2,r6rs,srfi-69 
     183 
     184== WG1 - Macros == 
     185 
     186=== 6 syntax-rules _ patterns === 
     187 
     188R6RS adds _ as a wild-card pattern, breaking 
     189some existing R5RS macros.  Do we add the _ wildcard, 
     190or leave it as a normal identifier as in R5RS? 
     191 
     192Yes to add, no for R5RS. 
     193 
     194  * '''Options:''' yes,no,wg2,undecided 
     195  * '''Preferences:''' no 
     196 
     197=== 8 SRFI-46 ellipse specifier in syntax-rules === 
     198 
     199As an alternative to #7, SRFI-46 proposed 
     200allowing an optional ellipse specified as 
     201an identifier before the literals list in 
     202syntax-rules: 
     203 
     204  (syntax-rules ::: () 
     205     <ellipse now represented as ::: instead of ...>) 
     206 
     207Do we allow this? 
     208 
     209  * '''Options:''' yes,no,module,wg2,undecided 
     210  * '''Preferences:''' no 
     211 
     212=== 9 tail patterns in syntax-rules === 
     213 
     214SRFI-46 and R6RS both allow a fixed number of 
     215tail patterns following an ellipsis in a syntax-rules 
     216pattern: 
     217 
     218  (P1 ... Pk Pe <ellipsis> Pm+1 ... Pn) 
     219 
     220R6RS further allows dotted tail patterns 
     221 
     222  (P1 ... Pk Pe <ellipsis> Pm+1 ... Pn . Px) 
     223 
     224where Px only matches a dotted list. 
     225 
     226Do we allow either or both of these extensions? 
     227 
     228  * '''Options:''' tail,dotted-tail,both,no,module,wg2,undecided 
     229  * '''Preferences:''' both, tail, wg2 
     230 
     231== WG1 - Numerics == 
     232 
     233=== 21 limited type arithmetic === 
     234 
     235R6RS provides libraries for limited type arithmetic 
     236on fixnums only and flonums only.  Do we want these? 
     237 
     238  * '''Options:''' yes,no,module,wg2,undecided 
     239  * '''Preferences:''' module,wg2,yes 
     240 
     241=== 22 mantissa widths === 
     242 
     243R6RS introduced the concept of mantissa widths 
     244as an alternative to the R5RS #s in numbers. 
     245Do we want either or both of these? 
     246 
     247  * '''Options:''' r5rs,r6rs,both,no,wg2,undecided 
     248  * '''Preferences:''' undecided 
     249 
     250== WG1 - Reader Syntax == 
     251 
     252=== 11 case-sensitivity === 
     253 
     254Does the reader fold case by default, and if so how? 
     255 
     256Yes to fold-case (R5RS) no to preserve case (R6RS), additional votes 
     257to come later from specific proposals. 
     258 
     259  * '''Options:''' yes,no,undecided 
     260  * '''Preferences:''' yes 
     261 
     262== Working Group 1 == 
     263 
     264=== 1 Which VCS do we use? === 
     265 
     266There is the question of the right VCS to use. I prefer 
     267Monotone. Currently we are having an email vote on the list. I have 
     268entered this ticket to play with the Trac ticketing system. We can 
     269finalize the ticket once we have chosen a VCS. 
     270 
     271  * '''Options:''' bzr,darcs,git,hg,monotone,svn,undecided 
     272  * '''Preferences:''' monotone,hg,bzr,git,svn,darcs 
     273 
     274---- 
     275 
     276= WG1 Old Items = 
     277 
     278== WG1 - Core == 
     279 
     280=== 37 transcript-on and transcript-off === 
     281 
     282These were relegated to a compatibility library 
     283in R6RS.  Do we want to keep them, drop them, or 
     284move them to a library? 
     285 
     286Yes means to keep them in the core, as in R5RS, 
     287and no means to remove them entirely. 
     288 
     289  * '''Options:''' yes,no,module,wg2,undecided 
     290  * '''Preferences:''' module,no,wg2 
     291 
     292=== 38 letrec* === 
     293 
     294R6RS added letrec* and defined the semantics 
     295of internal define to be equivalent.  Do we 
     296want to add this? 
     297 
     298  * '''Options:''' yes,no,module,wg2,undecided 
     299  * '''Preferences:''' undecided 
     300 
     301=== 41 Should we adopt the SRFI-1 extension to MAP and FOR-EACH? === 
     302 
     303This extension allows the list arguments to be of unequal length, and 
     304stops the procedure whenever any of them run out.  R5RS says the lists 
     305''must'' be of the same length, R6RS says they ''should'' be. 
     306 
     307`Yes` to allow unequal length. 
     308 
     309  * '''Options:''' yes,no,module,wg2,undecided 
     310  * '''Preferences:''' yes 
     311 
     312=== 42 Should we adopt the SRFI-1 extension to ASSOC and MEMBER? === 
     313 
     314This extension accepts a third argument, the equality predicate to be 
     315used.  Alternatively we could use the R6RS predicates ASSP and MEMP. 
     316 
     317  * '''Options:''' srfi-1,r6rs,no,module,wg2,undecided 
     318  * '''Preferences:''' srfi-1,r6rs 
     319 
     320=== 33 dynamic-wind === 
     321 
     322New to R5RS, do we reaffirm the sometimes debated dynamic-wind? 
     323 
     324  * '''Options:''' yes,no,module,wg2,undecided 
     325  * '''Preferences:''' yes,module,wg2 
     326 
     327=== 34 multiple values === 
     328 
     329New to R5RS, do we reaffirm multiple values, specifically the 
     330procedures `call-with-values` and `values`? 
     331 
     332  * '''Options:''' yes,no,module,wg2,undecided 
     333  * '''Preferences:''' yes,module,wg2 
    104334 
    105335=== 54 optional arguments === 
     
    128358  * '''Preferences:''' wg2,no 
    129359 
    130 === 58 exact-integer-sqrt === 
    131  
    132 Should WG1 include `exact-integer-sqrt` from R6RS?  It allows square 
    133 root operations in Schemes that don't provide inexact arithmetic, and 
    134 has different semantics from `sqrt`, as it rounds its argument down to 
    135 the nearest exact square. 
    136  
    137   * '''Options:''' yes,no,module,wg2,undecided 
    138   * '''Preferences:''' yes,module,wg2 
    139  
    140360=== 59 current-error-port === 
    141361 
     
    155375  * '''Options:''' yes,no,module,wg2,undecided 
    156376  * '''Preferences:''' module,yes 
    157  
    158 === 61 finite? nan? === 
    159  
    160 Shall we add these numeric predicates? 
    161  
    162   * '''Options:''' yes,no,module,wg2,undecided 
    163   * '''Preferences:''' undecided 
    164  
    165 === 63 call/cc short name === 
    166  
    167 Should we allow `call/cc` as an equivalent to 
    168 `call-with-current-continuation`? 
    169  
    170   * '''Options:''' yes,no,module,wg2,undecided 
    171   * '''Preferences:''' no,module,wg2 
    172377 
    173378=== 64 Consistency in sequence procedures === 
     
    205410=== 44 Testing function arity === 
    206411 
    207 We would like a standard for checking function arity.  
     412We would like a standard for checking function arity. 
    208413SRFI-102 proposes a way to check function arity: 
    209414 
     
    211416  * '''Preferences:''' srfi-102,wg2,no 
    212417 
    213 === 53 Implicit BEGIN to implicit LET-NIL === 
    214  
    215 In general, in places where an implict BEGIN occurs, it is possible to 
    216 change this to an implicit LET-NIL and remain backwards 
    217 compatible. Should we do this? 
    218  
    219   * '''Options:''' yes,no,module,wg2,undecided 
    220   * '''Preferences:''' yes 
    221  
    222418== WG1 - Exceptions == 
    223419 
    224420=== 17 error === 
    225421 
    226 Do we support the near ubiquitous SRFI-23 error procedure? 
    227  
    228   * '''Options:''' yes,no,module,wg2,undecided 
    229   * '''Preferences:''' yes,module,wg2 
     422Do we support the near ubiquitous SRFI-23 error procedure, 
     423and if so should it use the SRFI-23 signature, R6RS, or 
     424type-dispatch on the first argument to allow both? 
     425 
     426  * '''Options:''' srfi-23,r6rs,both,no,module,wg2,undecided 
     427  * '''Preferences:''' r6rs,srfi-23,module,wg2 
    230428 
    231429== WG1 - I/O === 
     
    233431=== 30 string ports === 
    234432 
    235 Do we support SRFI-6 string ports, reaffirmed by R6RS? 
    236  
    237   * '''Options:''' yes,no,module,wg2,undecided 
    238   * '''Preferences:''' yes,module,wg2 
    239  
    240 === 52 read/write cyclic data === 
    241  
    242 SRFI-38 standardizes the #0=(1 . #0#) shared 
    243 structure notation for read/write.  In the case 
    244 of write, this can be expensive to compute, but 
    245 otherwise the common case of the repl printing 
    246 a cyclic structure results in an infinite loop. 
    247  
    248 Do we want to add support for this, as an option 
    249 or separate set of procedures? 
    250  
    251   * '''Options:''' yes,no,module,wg2,undecided 
    252   * '''Preferences:''' no,module,wg2 
    253  
    254 == WG1 - Libraries == 
    255  
    256 === 36 hash-tables === 
    257  
    258 R6RS and SRFI-69 both provide hash-table interfaces. 
    259 Do we provide either of these, or try to provide 
    260 some primitives on which efficient hash-tables can 
    261 be implemented? 
    262  
    263   * '''Options:''' srfi-69,r6rs,no,module,wg2,undecided 
    264   * '''Preferences:''' wg2,r6rs,srfi-69 
     433Do we support string ports, as implemented by SRFI-6 
     434or as by R6RS? 
     435 
     436  * '''Options:''' srfi-6,r6rs,no,module,wg2,undecided 
     437  * '''Preferences:''' srfi-6,r6rs,module,wg2 
    265438 
    266439== WG1 - Macros == 
    267  
    268 === 6 syntax-rules _ and ... patterns === 
    269  
    270 R6RS adds _ as a wild-card pattern, breaking 
    271 some existing R5RS macros.  Do we keep the _? 
    272  
    273   * '''Options:''' yes,no,wg2,undecided 
    274   * '''Preferences:''' no 
    275440 
    276441=== 7 (... ...) ellipse escaping in syntax patterns === 
     
    284449  * '''Preferences:''' yes 
    285450 
    286 === 8 SRFI-46 ellipse specifier in syntax-rules === 
    287  
    288 As an alternative to #7, SRFI-46 proposed 
    289 allowing an optional ellipse specified as 
    290 an identifier before the literals list in 
    291 syntax-rules: 
    292  
    293   (syntax-rules ::: () 
    294      <ellipse now represented as ::: instead of ...>) 
    295  
    296 Do we allow this? 
    297  
    298   * '''Options:''' yes,no,module,wg2,undecided 
    299   * '''Preferences:''' no 
    300  
    301 === 9 tail patterns in syntax-rules === 
    302  
    303 SRFI-46 and R6RS both allow a fixed number of 
    304 tail patterns following an ellipsis in a syntax-rules 
    305 pattern: 
    306  
    307   (P1 ... Pk Pe <ellipsis> Pm+1 ... Pn) 
    308  
    309 R6RS further allows dotted tail patterns 
    310  
    311   (P1 ... Pk Pe <ellipsis> Pm+1 ... Pn . Px) 
    312  
    313 where Px only matches a dotted list. 
    314  
    315 Do we allow either or both of these extensions? 
    316  
    317   * '''Options:''' yes,no,module,wg2,undecided 
    318   * '''Preferences:''' undecided 
    319  
    320451=== 39 syntax-error === 
    321452 
    322453Should we have syntax-error parallel to SRFI-23 error?  This is evoked 
    323454when macros are expanded. 
    324  
    325 There is a definition in JRM's Syntax-Rules Primer using syntax-rules, 
    326 but it relies on the syntax-rules implementation reporting an 
    327 unmatchable pattern with a complaint that includes the pattern. 
    328455 
    329456  * '''Options:''' yes,no,module,wg2,undecided 
     
    374501  * '''Preferences:''' yes 
    375502 
    376 === 21 limited type arithmetic === 
    377  
    378 R6RS provides libraries for limited type arithmetic 
    379 on fixnums only and flonums only.  Do we want these? 
    380  
    381   * '''Options:''' yes,no,module,wg2,undecided 
    382   * '''Preferences:''' module,wg2,yes 
    383  
    384 === 22 mantissa widths === 
    385  
    386 R6RS introduced the concept of mantissa widths 
    387 as an alternative to the R5RS #s in numbers. 
    388 Do we want either or both of these? 
    389  
    390   * '''Options:''' r5rs,r6rs,both,no,wg2,undecided 
    391   * '''Preferences:''' undecided 
    392  
    393503== WG1 - Reader Syntax == 
    394  
    395 === 11 case-sensitivity === 
    396  
    397 Does the reader fold case by default, and if so how? 
    398  
    399 Yes to fold-case (R5RS) no to preserve case (R6RS), additional votes 
    400 to come later from specific proposals. 
    401  
    402   * '''Options:''' yes,no,undecided 
    403   * '''Preferences:''' yes 
    404504 
    405505=== 15 #\foo character names === 
     
    433533=== 16 symbol escapes === 
    434534 
    435 [This ticket was originally about string escapes, but commenters have 
    436 been talking about symbol escapes instead.] 
    437  
    438535R6RS provides character escapes in symbols of the form `\xnnnn;`, 
    439536where nnnn is 1-5 hex digits.  Do we accept this extension?  Do we 
    440537also allow |...| to escape a whole symbol or a part of one? 
    441538 
    442   * '''Options:''' yes,no,module,wg2,undecided 
    443   * '''Preferences:''' yes 
     539  * '''Options:''' numeric,quoted,both,no,wg2,undecided 
     540  * '''Preferences:''' both,quoted,numeric,no 
    444541 
    445542=== 67 string escapes === 
     
    496593  * '''Options:''' cowan,r5rs,wg2,undecided 
    497594  * '''Preferences:''' cowan,wg2,r5rs 
    498  
    499 == Working Group 1 == 
    500  
    501 === 1 Which VCS do we use? === 
    502  
    503 There is the question of the right VCS to use. I prefer 
    504 Monotone. Currently we are having an email vote on the list. I have 
    505 entered this ticket to play with the Trac ticketing system. We can 
    506 finalize the ticket once we have chosen a VCS. 
    507  
    508   * '''Options:''' bzr,darcs,git,hg,monotone,svn,undecided 
    509   * '''Preferences:''' monotone,hg,bzr,git,svn,darcs