Re: building an image

"Dave Raymer" <[email protected]>
Newsgroups gmane.comp.lang.smalltalk.strongtalk
Message-ID <[email protected]>
Oliver,

Thanks for the response, your description mirrors pretty much my
understanding to date as well.

thanks,
the other dave

On 3/5/07, oe <[email protected]> wrote:
>
>
> 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
>
>
> >
>


-- 
A man's greatest treasure is his wife, she is a gift from the Lord
- Proverbs 18:22

--~--~---------~--~----~------------~-------~--~----~
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.