|
From: Craig L. <cr...@ne...> - 2004-04-08 15:49:20
|
Hi Andreas-- > > Incorporate method-lookup change to support remote message-sending, > > in anticipation of Squat's support for minimal snapshots and > > inter-system communication. > > What kind of method-lookup change? What is needed here... The current Squat implementation checks if the receiver's class is a special "proxy" class (currently called "Other"), which is in the special objects array. If it is, it kicks the send back to image, using the same mechanism as for >>doesNotUnderstand:, so that the message may be forwarded by the proxy. > and what are the implications for both speed and potential impact on > JIT? I have found the performance impact negligible; the usual case is one additional identity check against a special object (in C, "class == (longAt(((((char *) specialObjectsOop)) + someInteger"). I see no impact on JIT (assuming it can deals acceptably with the way method lookup happens now). Hopefully Ian will chime in about that. > > Allocate header format five for Squat's method dictionary > > [activation] marking, and version bits in method trailers for > > Squat's module system. > > I'm slightly hesitent to reserve an object format for something like > method dictionary marking. Can you elaborate on why this would be > needed? The VM is the thing that does the activation marking. I'm using that mark to tell when any method from a method dictionary has been run; it's useful for, e.g., calculating which classes can be swapped out of an image at some point in time. (There are also primitives for reading and clearing the marks.) > ...we only have so many object format types. Well, the one I want to use (5) has gone unused for Squeak's entire history, as far as I can tell. :) And it's not the only one (format 7 is also unused). And in eight years I've yet to hear of anyone else wanting one of them. :) And this is a very good cause. :) And I'm not asking for any additional header bits. ;) (oops, smilie overload...) > Version bits in method trailers shouldn't be needed if I understand the > CM changes correctly - you might just add another iVar to CMs. True, it just seemed like a logical thing to put in the trailer, and I was already adding a known-to-the-VM bit there. Oops, I forgot to mention that in my previous message. That's for *method* activation marking. > > The Squat homepage is http://netjam.org/squat/. The release page has > > links to all the relevant code. > > Hm... something a little more specific would be nice ;-) 'Sorry, I was pressed for time (still am :). See http://www.netjam.org/squat/releases/current/vmChanges.zip . Pick a VM and snapshot from http://www.netjam.org/squat/releases/current/#theBits to see the image side of things. thanks again, -C -- Craig Latta improvisational musical informaticist cr...@ne... www.netjam.org [|] Proceed for Truth! |