Adding loop primitives/optimizations (was MakingSet/Dictionaryetc. loops more robust)

Andreas Raab andreas.raab at gmx.de
Wed Dec 1 22:31:42 UTC 2004


John -

> I believe we had talked about a change to the GC so that if a plugin  call 
> is active we would not trigger a GC, I don't recall if we actually 
> implemented that thought?

I had a demoable version of it at some point (and then my machine 
crashed...) This might still be in your inbox - IIRC, then I posted this to 
vm-dev.

> At this time it is not outlandish to think about having a class that 
> would have a fixed storage attribute. The object header can move, but  the 
> data is fixed. Most other Smalltalks support this.

Yes. But there are some significant issues with this. My proposal (the one 
that I'm hoping to implement for Croquet) is to allow a fixed storage 
attribute but ONLY for bit objects (no pointers). That's because otherwise 
we'd need to deal with the write barrier and that would be VERY messy. "Bit 
objects" would mean most of the large data chunks that we're typically 
interested in for batch processing - float arrays, bitmaps, sound buffers 
and the like. These could then also be shared with hardware devices (google 
APPLE_client_storage to see what I mean), VPUs or whatever else you'd like.

Cheers,
  - Andreas




More information about the Squeak-dev mailing list