--- This message is a formal comment which was submitted to formal-comment_at_r6rs.org, following the requirements described at: http://www.r6rs.org/process.html --- Submitter's name: Mike Sperber Submitter's email address: sperber at deinprogramm dot de Type of issue: Enhancement Priority: Minor R6RS component: Base language Version of the report: 5.92 One-sentence summary of the issue: The specification of eq? and eqv? should allow portability-checking implementations Full description of the issue: In the current draft, the return value of `eq?' and `eqv?' isn't specified for all combinations of arguments. Yet, the return value is constrained to be #t or #f. This makes it easy to write unportable programs, for example by using `eq?' to compare characters under the assumption that it's faster than `char=?', or by using it to a number to assumed to be a fixnum with an immediate representation that `eq?' handles. As an implementation must return #t or #f even when applied to arguments where the return is unspecified, the draft does not permit an implementation that would detect (some) unspecified cases and notify the programmer and/or user in that case. Suggestion: Allow implementations to return other values than #t or #f for the unspecified cases, and also allow them to abort the program or raise an exception for those cases.Received on Thu Jan 25 2007 - 04:20:29 UTC
This archive was generated by hypermail 2.3.0 : Wed Oct 23 2024 - 09:15:01 UTC