This site is a static rendering of the Trac instance that was used by R7RS-WG1 for its work on R7RS-small (PDF), which was ratified in 2013. For more information, see Home.

Ticket 336: Editorial: Clarify that empty strings, vectors, bytevectors may or may not be EQ?

2012-02-03 07:39:33
WG1 - Core
2012-01-21 21:52:46

When the report speaks of newly allocated strings (vectors, bytevectors), 6.3.5 explains that this means ones containing newly allocated locations. However, empty strings (vectors, bytevectors) have no locations, so an implementation is free to make all of them EQ? (within the same type, that is) or not, as it sees fit. The report should say so.

TODO: add stats on what various implementations actually do.

Most of the 40 Schemes create newly allocated strings and vectors even when empty. Here are the exceptions:

All empty strings are identical: Shoe, XLisp.

All empty vectors are identical: MIT, Chibi, Ikarus (but not Vicare).

Both: Chez, Larceny, Ypsilon, Elk, UMB, Owl Lisp (which lacks mutability, so all strings/vectors with identical content are eqv?).


Closing this ticket, because the necessary information appears at eqv?.