On Nov 26, 2008, at 7:14 AM, marcomaggi wrote:


The following change in "clos/private/compat.ss" is needed and will
make it work under Ypsilon, too.

19,21c19,22
<                 make-parameter)
<           (only (ikarus)
<                 pointer-value))
---
                make-parameter))

  (define (pointer-value value)
    (equal-hash value))

Hmmm.  According to the usage of pointer-value (after a quick glance),
no, that's not what you want.

First, pointer-value is used only in one place in
  clos/private/fast-method-cache.ikarus.ss
so, it's better if you just add the import there and the rest of the
code should work (read: have the same behavior) as before and under
ypsilon as well.

Second, ikarus does not implement equal-hash, and it's unlikely that
it will do so.  Using equal-hash defeats the purpose of having *fast*
cache.

Third, I don't know if the fast-method-cache actually works or not.
The value of "pointer-value" changes as objects move in memory.  It
looks like it may be ok since there is some code for handling cache
misses and for fixing up these tables.  But I cannot say for sure
without more involved analysis.

Aziz,,,

Reply via email to