Micro Squeak

Yoshiki Ohshima ohshima at is.titech.ac.jp
Wed Mar 28 03:00:59 UTC 2001


  Hello Luciano,

  As for the small size image, I heard that John (Maloney)
made a some small image, something smaller than 300k
(200k?).

  Recently, I also did an attempt to reduce the RAM
requirement to run Squeak.

I tweaked the SystemTracer so that I can create two
separated images from a normal image.  One of those is a
collection of immutable objects, while the other is the
mutable objects.

  My intention was that those immutable objects can reside
in ROM so that I could reduce the RAM-footprint size.  (I
assume on the platform where both of .text and .data share
the same 32-bit address space.)  Such immutable objects
cannot contain any pointer to the RAM object, otherwise the
system break when GC happens.

  In current implementation, the tracer traverses the object
graph, and recursively checks if the object (transitively)
points to RAM.  However, the result is a kind of
dissapointing: when I use an 800k shrunken image, about 200k
out of 800k can go to ROM.  (Yeah, it's working in the
Simulator.)

  As you see, the amount of objects that can go to ROM is
not as much as expected.  One reason is the Object
(transitively) contains the pointer to (mutable)
DependentsFields.  This means, all class objects cannot goes
to ROM because they transitively points to Object via 'superclass'
field, and the CompiledMethods that contain class objects as
literals cannot go to ROM.  If I put the DependentsField in
global rather than class variable of Object, I could put
more objects to ROM.

  -- Yoshiki





More information about the Squeak-dev mailing list