[r6rs-discuss] [Formal] Record nongenerative UID should be library name where record is defined

From: Aubrey Jaffer <agj>
Date: Tue Nov 7 03:11:57 2006

---
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: Aubrey Jaffer
	submitter's email address: agj_at_alum.mit.edu
		    type of issue: Simplification
		         priority: Major
		   R6RS component: 13 Records
	    version of the report: 5.91
one-sentence summary of the issue: 
Record nongenerative UID should be library name where record is defined.
    full description of the issue:
Page 66 of R5.91RS suggests the use of "UUID namespace" for
nongenerative UIDs, presumably to avoid name conflicts with other
record-types of the same name:
  Note: Users are encouraged to use symbol names constructed using the
  UUID namespace (for example, using the record-type name as a prefix)
  for the uid argument.
RFC-4122 "Universally Unique IDentifier"s are cryptic to humans.  To
interchange records between modules, the 36-digit hexadecimal number
must be extracted from one and pasted into the source of the others.
Were there no other context where Scheme programs needed to resolve
external resources, this might be good enough.  But R6.91RS libraries
must be resolved, libraries which already must contain the record
definitions!
I propose that a UID argument be either #f or a library-name; and that
two record definitions be identified with each other only when their
record-names and UIDs match.
Going one step further, I propose that generative record-types be
removed, and that a #f UID default to the library-name in which this
record definition appears.  If modules have unique names, then record
definitions with a #f UID will not conflict with each other; and
record definitions with a #f UID will effectively export themselves
for sharing.
Received on Sat Nov 04 2006 - 16:40:08 UTC

This archive was generated by hypermail 2.3.0 : Wed Oct 23 2024 - 09:15:00 UTC