Sequence numbering problem... solved.

Chris Muller asqueaker at gmail.com
Sat Nov 22 16:45:45 UTC 2008


There are two rules for proxies:

  - avoid sending an inlined message to proxies (i.e., #==)
  - avoid sending a proxy as an argument to a primitive

ReadStrategies are the main tool provided to abide these rules.

There is an option, #debugProxies, which can help in that it won't
allow the printString to reify the proxy.

Keith Hodges also did some work, now included in the base Magma
package that, when this is turned on, when you explore a tree of
objects it will initially show them as proxies (just the first time).

I see that MaMutatingProxy reponds to #respondsTo:.  This may be from
Keith, make sure this isn't the one causing your pain..

Regards,
  Chris



On Sat, Nov 22, 2008 at 3:32 AM, Göran Krampe <goran at krampe.se> wrote:
> Hi again!
>
> Chris Muller wrote:
>>
>> Thanks for the report Göran.  Good debugging, another option would be
>> to employ a ReadStrategy to ensure the UUID is dereferenced in the
>> original server call.
>
> Right, I need to look into readstrategies again - it seems we have ours
> disabled right now.
>
>> This never came up because serverPerform: was added solely for this
>> purpose (sequence # generators), and a proxy would never be part of
>> any of the other requests.  Still, you've piqued my curiousity whether
>> Magma could make this invisible for you.
>
> I was also going nuts trying to debug another (turned out very similar)
> issue where we send #respondsTo: to a proxy. We got false but then I
> realized we only got false *the first time* (restarting in debugger made it
> answer true and thus I immediately started suspecting proxies) but I was
> still totally confused because the Magma DNU code looked perfectly fine.
>
> Then I realized the problem was not the *receiver* - it was (probably) the
> argument - the symbol. I think it happens to be a proxy... I haven't
> finished this little adventure yet - I am fairly sure it is because the
> argument is a proxy and the method dict lookup fails somehow because of
> that. I will try to establish this.
>
> regards, Göran
>
> _______________________________________________
> Magma mailing list
> Magma at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/mailman/listinfo/magma
>


More information about the Magma mailing list