[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [MIT-Scheme-devel] bug in shadowing caches
From: |
Joe Marshall |
Subject: |
Re: [MIT-Scheme-devel] bug in shadowing caches |
Date: |
Fri, 20 Aug 2010 09:10:31 -0700 |
On Thu, Aug 19, 2010 at 6:40 PM, Taylor R Campbell <address@hidden> wrote:
>
> I think the problem is that update_cache_references and the associated
> routines don't take the name of the binding involved, causing them to
> update references that they shouldn't update, because they were to
> different names.
I'm not sure that the name is supposed to be taken into account. When
LINK-VARIABLES is called, it irrevocably causes the first variable to be
an alias for the second.
When the (runtime miscellaneous-global) package is loaded, REFERENCE-BARRIER
is exported as an alias to IDENTITY-PROCEDURE, as we can see in this
nasty bit of code:
1 ]=> (fluid-let ((identity-procedure 'woohoo)) reference-barrier)
;Value: woohoo
1 ]=> (fluid-let ((reference-barrier 'yow)) identity-procedure)
;Value: yow
I think the behavior you are seeing is the expected one. You probably
don't want to
alias the two variables but simply initialize REFERENCE-BARRIER to
IDENTITY-PROCEDURE.
--
~jrm