Magma and UUID?

Igor Stasenko siguctua at gmail.com
Wed Oct 15 00:03:40 UTC 2008


2008/10/13 Chris Muller <asqueaker at gmail.com>:
> Hi Jerry, what image are you using?  It sounds to me like #printString
> was moved up to ProtoObject in your image.  That's a bad idea, IMO; we
> should be moving things out of ProtoObject, not into.
>
> Remember, the proxy's are supposed to be lightweight stand-in's for
> their real object, they are not supposed to be able to understand
> anything but a most minimal protocol.  When it receives a message it
> does not understand itself, #doesNotUnderstand: is invoked on the
> proxy where it undergoes its transofrmation to the real object and
> forwards the message.  Any messages which have been moved to
> ProtoObject will actually be understood by the proxy and therefore not
> undergo the transformation to the real object when those messages are
> sent.
>
> I would make sure that #yourself is not implemented in ProtoObject
> either ,which would be a better message to force materialization than
> #copy.
>
Btw, Cris, have you thought about creating own proxy without
inheritance from ProtoObject , e.g.

Object subclass: #MyProxy.
MyProxy superclass: nil.

Then you don't have to care about things like #printString or
#yourself. This kind of proxy can be most transparent possible proxy
in Squeak. Beyond that , it will require to modify VM to understand
the concept of transparent proxies.

>  - Chris
>
> On Mon, Oct 13, 2008 at 7:58 AM, Jerry Bell <jdbell at oxfordmetamedia.com> wrote:
>> Hi,
>>
>> One of my models has a UUID stored in an instance variable.
>>
>> It appears that the UUID is not always converted back to a real object.
>> I'm using Seaside, and I often get walkbacks when dealing with this ivar.
>>  Specifically, I use this UUID to create a filename, using "(myUUID
>> printString), '.rss'."  The walkback shows that I am ending up with
>> something like "a MagmaMutatingProxy .rss".  When I examine the debugger, I
>> find a MagmaMutatingProxy where I would expect to find my UUID.
>>
>> If I open an explorer on the object, and click on the MagmaMutatingProxy, I
>> will see the real UUID appear.  After that happens, my application will run
>> with no further problems (I am using Magma seasideHelper and I suspect that
>> the reified object is cached).
>>
>> If I replace my accessor method "^ uuid" with "^ uuid copy" everything seems
>> to work correctly.   So far that seems like a good workaround but I'd like
>> to make sure I'm not doing something wrong.  Is it possible that Magma is
>> not always handling UUIDs correctly?
>>
>> Thanks,
>>
>> Jerry
>>
>>
>>
>>
>>
>> _______________________________________________
>> Magma mailing list
>> Magma at lists.squeakfoundation.org
>> http://lists.squeakfoundation.org/mailman/listinfo/magma
>>
> _______________________________________________
> Magma mailing list
> Magma at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/mailman/listinfo/magma
>



-- 
Best regards,
Igor Stasenko AKA sig.


More information about the Magma mailing list