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