Re: building an image

"oe" <[email protected]>
Newsgroups gmane.comp.lang.smalltalk.strongtalk
Message-ID <[email protected]>
Hello,

I'm still trying to figure out, like a high level model of the VM. The
available documentation doesn't help me much here, I have to say, and
it took some time to get into this. So not sure what you mean exactly
with

> trying to sort out how the image gets built so I can track the
> entrypoint into the runtime environment and see what how the UI gets
> loaded.

, but I'll try to explain briefly what I've found out about how the VM
starts into the GUI.

- VM starts in shell.cpp, initialization (bootstrap.cpp, mainly
bootstrap::parse_file())
- in process.cpp: VMProcess::activate_system(). This is where things
get interesting (and difficult, at least for me ;). The VM process
tries to retrieve a 'Delta level Processor' (see comments there) from
the system dictionary, which was (supposedly) previously loaded from
the image by the bootstrap code. I guess that the OOPs (processOop
etc.) involved are actually C++ representations of Smalltalk classes/
objects stored in the image (if this makes sense). You can inspect the
Smalltalk code by opening Strongtalk, then Browse->All Classes-
>Processor(->ProcessorScheduler).
- then, the "initial process" is created (new DeltaProcess) to call
the "start" method of scheduler just created (a method written in
Smalltalk, see Strongtalk class browser: Class ProcessorScheduler-
>Instance side->restricted->start).
- the actual call to "start" originates in the delta process once it
is run (that is, control is transfered by the scheduler): process.cpp
DeltaProcess::launch_delta, then delta.cpp Delta::call, all the way
down to interpreter_asm.asm call_delta, where the actual call takes
place. So I assume this is the point where Smalltalk code takes over
and drives further initialization of the system and GUI.
- also, if you look at the Smalltalk classes, especially
ExternalProxy, External* and Win32, I believe that there is a lot of
platform specific code written in Smalltalk, using Windows DLL calls
to interface with the OS (hence all the dll stuff/primitives in the C+
+ code)... just speculating, though!

So, that's about my quick tour of the VM startup, hope it helps -- or
maybe I've just missed the point of your post?  I haven't even manage
to build a new image file from within the Strongtalk GUI, but it's
been a while.Some information about the image file format and its
contents would definitely be helpful; I have to look at this again
when time permits.

Oliver


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Strongtalk-general" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [email protected]
For more options, visit this group at http://groups.google.com/group/strongtalk-general?hl=en
-~----------~----~----~----~------~----~------~--~---
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.