[squeak-dev] Re: Creating an image from first principles

Andreas Raab andreas.raab at gmx.de
Tue Jul 8 05:19:45 UTC 2008


Craig Latta wrote:
> 
>  > ...do the bootstrap: Instantiate the first process, its first context,
>  > the first message. Run it in the simulator to set up the remaining
>  > parts of the kernel image (Delay, ProcessorScheduler etc).
> 
>      I guess I found that last sentence easier said than done. :)

It doesn't strike me as particularly difficiult but then I haven't tried 
it yet. What problems were you running into?

>      I don't even think the global lookup issue is all that hard. (I 
> advocate having no system dictionary; keep each class literal in the 
> name slot of the class itself, and have a means of traversing the class 
> tree from a well-known starting point. Scanning through memory for the 
> class and pool literals you want is straightforward.)

Actually, true *globals* (which for the bootstrap means only classes) 
are trivial to deal with: Since the skeleton is created first you have 
the oops for all the globals right there and then, so setting up a 
mapping that the compiler uses for these globals is utterly trivial. 
It's class and pool variables that are tricky because even 
Dictionary>>at: may not exist in the image that you're trying to compile 
so doing the lookup directly in there would be quite tricky. It would be 
doable if one assumed a particular organization of the classes (i.e., 
the n-th iVar is the dictionary of class vars) and then interpreted it 
externally but it seems like an unnecessary complication for an initial 
bootstrap.

Cheers,
   - Andreas




More information about the Squeak-dev mailing list