Re: VM images and working in the VM image
Richard <[email protected]> Mon, 14 May 2007 06:48:22 -0000
| Newsgroups | gmane.comp.lang.smalltalk.strongtalk |
|---|---|
| Message-ID | <[email protected]> |
Thanks all for taking the time to answers my questions and provide the pointers and links. It is much appreciated from my end. I'm presuming that any who don't want to read the thread, can just decide not to read it (sorry for the extra page load and the unfulfilled expectation of some juicy conversation). It's good to hear that some Smalltalk systems have notions of packages (universes) and that there are ways of working that allow one to source in, and source out and so interface with existing source control systems. I'll have to lookup in-image mechanisms for source control and see how it is that if you're working in your image and fix a bug or add a feature, how I can pick up that change in my image. One point about packages (only relevant to some of the replies to my initial question): packages allow you make a statement, in this class or method, that: when I say Widget, I mean GTK2.Widget not one of the hundred or so other Widget classes defined in other packages. using GTK2, BLAS; x = Widget.new # if Widget is ambiguously defined maybe I want an exception, maybe resolve by choosing the one in BLAS rather than the one in GTK2. It is also true that packages have versions and being able to run a system that can includes two versions of a package and have stuff just work would be very cool, but as I understand it, this is a problem at least for Java, C++ and Ruby. Why would you want to do this? Because someone made a backward incompatible change to Wisiwig and Superthing hasn't been patched yet to use the new version of Wisiwig, but Coolthing requires the latest version of Wisiwig. If Coolthing and Superthing don't pass objects from Wisiwig back and forth probably this would be ok.Sounds a bit risky though doesn't it? One of the nice aspects of Ruby on Rails is that it watches for changes to source files and reloads them if they change. This moves one a little in the direction of smalltalk. It's better than having to restart the entire program (because that can take more than a second), but not as good as running directly in the VM I suppose. For example, in the VM, while in development mode, when you load a webpage and so invoke Rails (or perhaps Seaside) the IDE could load the action, and view classes you just invoked and also have the object instances right there ready for you to inspect on the off chance that you've got a bug. It also interesting to discover that a lot of the state of a VM (in some ways of working) is in the objects not the class definitions. So for example some of your application data, e.g. configuration, might be captured in the current state of objects, so to pick up your changes to configuration I would also need to synchronize object instances, not just class definitions. I'm used to systems that have a clear distinction between startup state and runtime state. I understood that the discipline of starting afresh each morning with a startup image (and presumably running regression tests) is the way to make sure the distinction is properly enforced. regards, Richard. --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---