Subject: bug#14792: Error in manual "(guile-2) Object Properties"

From: Mark H Weaver <[email-masked]>
Date: Fri, 05 Jul 2013 12:37:47 -0400

Hi David,

David Kastrup <[email-masked]> writes:

> The manual states in "Object Properties":
>
>        A single object property created by `make-object-property' can
>     associate distinct property values with all Scheme values that are
>     distinguishable by `eq?' (including, for example, integers).
>
> Integers are not documented to be reliably distinguishable by eq? (which
> means that equal integers might not be eq).

Indeed, good point!

I think we should change object-properties to use 'eqv?' hash operations
instead of 'eq?'.  The only advantage to 'eq?' is a marginal efficiency
benefit, but that's no doubt lost in the noise, not only from the hash
table operations but from the use of fat mutexes.

The only functional difference between Guile's 'eq?' and 'eqv?' is that
'eq?' is not reliable on numbers.  Our manual has been telling people
for years that integers can be used as keys for object properties.
Therefore, we should make it so.  IMO, anyway.

What do other people think?

      Mark