[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Scheme-reports] Preliminary vote
I just added my preliminary vote: http://trac.sacrideo.us/wg/wiki/WG1BallotMedernach
Below are relevant votes and rationales, comments are welcome.
#460 Semantics of eqv?
Preferences: unspecified, undecided, different
Rationale: It will depend on the #460 item result, but personnaly I would prefer to be able to distinguish different NaNs and to identify identical NaNs ("same" vote)
#125 Allow procedures not to be locations (making EQV? unspecified in some additional cases)
The problematic R5RS paragraph is the following (end of section 4.1.4):
Each procedure created as the result of evaluating a lambda _expression_ is (conceptually) tagged with a storage location, in order to make `eqv?' and `eq?' work on procedures (see section *note Equivalence predicates::).
I have the tendency to think that (eqv? p p) should always return #t whatever p may be, at least when this is so syntactically manifest. However the point here is more about forcing all procedures to have location or not (i.e. deciding "Does lambda is an allocator or not ?"). Inlined functions or unrolled loops are examples of such "beasts". As such optimizations are really worth to have, especially in our functional programming world, I recommend:
- either not using (hence requiring) a location tag for comparisons between procedures
- or allowing eqv? to sometimes return #f on procedures
My personal preference is first to remove the requirement to have a location tag for all procedures. Is it possible to add this option ?
#393 Defining record equality
Preferences: identity, unspecified, undecided, recursive
Rationale: I believe that one may have 2 records containing identical fields and despite that being semantically distincts. (records have "bag" behaviour instead of set behaviour)
#458 Remove the formal semantics from the report
Rationale: Please produce it in a separate forthcoming document, in order for experts to have enough time to do it as well as possible.
#398 Allow repeated keys in case
Preferences: r5rs, leftmost, r6rs, unspecified, undecided
Rationale: There is a risk of having repeated keys in case of an oversight.
#402 Add an export-all form.
Rationale: Not in the standard does not disallow some implementation to have it, but allow other not to provide it if they think this is an overkill.
#448 Add library declaration include-library-declarations
Preferences: include-library-declarations, no, undecided, export-from
Rationale: Having a way to separate interfaces from implementation is nice.
All the best,
Scheme-reports mailing list