Re: New binaries
Dave Mason <[email protected]> Thu, 31 Dec 2009 11:53:29 -0800 (PST)
| Newsgroups | gmane.comp.lang.smalltalk.strongtalk |
|---|---|
| Message-ID | <[email protected]> |
Thanks, Stephen. > Unless you were interested in a very constrained embedded application I d= oubt this would be significant enough an overhead to worry about. Actually, the memory-footprint/image-size isn't my primary concern, although anything that got moved-around/garbage-collected and hence would bump actual memory usage following a fork() would be an issue. The reasons for wanting to be able to minimize the image are 2-fold: 1) for reliability/security/audit reasons, I want to be able to review all the code in an image, so the less, the better; 2) presumably, the fewer classes, the higher the likelihood that the compiler can find singleton message dispatch and hence in-line code and get better performance. (I haven't looked at the compiler, so this is pure speculation.) > If you are interested in porting Seaside, one obstacle you will face > is the absence of continuations (either full or partial) in the > Strongtalk VM. Actually, Seaside 3.0 can work without continuations, although partial continuations are necessary for certain kinds of operations. ../Dave On Dec 29, 12:54=A0pm, talksmall <[email protected]> wrote: > Hi Dave, > The short answer is no, there is no build script or recipe for the > image. A bootstrap process for image would be a useful thing to have, > but it's not high on my priority list currently. One thing to note if > you are interested in implementing this is that the Smalltalk compiler > is pure Smalltalk. The only point at which the VM is involved in the > compilation of Smalltalk code is the installation of the compiled > bytecode as a compiled method. This makes bootstrapping trickier than > if the compiler was part of the VM, but it also means you have greater > flexibility over compilation. You can relatively easily replace the > compiler with a different parser or code generator. > > However, at roughly 2MB the current image is pretty small, even > without stripping out the Windows dependencies. Note that even though > the image contains platform classes for Windows, OSX and Linux, these > do not load any dynamic libraries unless and until they are actually > required, so there is no real harm (other than the memory occupied by > the classes and methods) in having them in the image. Unless you were > interested in a very constrained embedded application I doubt this > would be significant enough an overhead to worry about. > > The stop handler (a block that is called when a Smalltalk Process is > stopped in the VM) can certainly be replaced. When scripting the VM > using the -script command line option the stop handler normally used > by the UI is replaced by a version that invokes the command line > evaluator. This is a very primitive debugger that stops the VM while > debugging a process. You could also replace this with a stop handler > block of your own devising using > > =A0 =A0 Process stopHandler: [:process| ".... handle stop ..."] > > If you are interested in porting Seaside, one obstacle you will face > is the absence of continuations (either full or partial) in the > Strongtalk VM. I suspect it would not be all that hard to implement > continuation support, as the basic building blocks are there in order > to support dynamic deoptimization of compiled frames. This would > require VM changes though. > > You will also need to implement some Socket classes as there are none > in the image at the moment. > > Regards, talksmall > > On Dec 29, 3:55=A0pm, Dave Mason <[email protected]> wrote:> Thanks Dave = et al, > > > Is there a recipe/script anywhere that builds that image from the > > source code? =A0If so, it would presumably be not too difficult to stri= p > > it down to build an image without the Windows (or any) UI (presumably > > with an alternate error handler). > > > I would find that far more accessible than trying to run in Windows > > via Fusion (in my 36 year career, I've probably spent less than a > > dozen hours on Windows - so I'm a bit crippled in that environment) > > > This is exciting! =A0There is some work on a SeasideXUL UI, and I have = a > > grad student who will be working on a portable Seaside UI (a la Web > > Velocity), so I'm not very interested in porting the existing UI. =A0I'= m > > also very interested in building web servers without any UI. > > > On Dec 23, 11:50=A0pm, David Griswold <[email protected]> > > wrote: > > > > In fact, the Strongtalk image in this respect is the same as GNU. =A0= The image > > > is simply another form of the source code. =A0No non-programmatic obj= ects are > > > kept in the image, no global/class/etc variable state is saved etc. = =A0The > > > image can always be recreated exactly from the source code. =A0It is = that way > > > exactly because I always hated that image hysteresis (history depende= nce) > > > problem in ST-76. > > > -Dave > > > > On Wed, Dec 23, 2009 at 9:53 AM, John Cowan <[email protected]> wr= ote: > > > > In GNU Smalltalk, an image is just a binary cache of loaded source > > > > files: there are no bits in an image that aren't the result of load= ing > > > > source code. =A0As such, it is more like a Java .jar file than a > > > > traditional ST image. > > > > > IIRC, there are bits in the Squeak image that result from global > > > > assignments done under ST-76. > > > > > On Wed, Dec 23, 2009 at 10:02 AM, talksmall <stephenlr...@googlemai= l.com> > > > > wrote: > > > > > Hi Dave, > > > > > Not sure exactly what you mean. I'm not familiar with GNU Smallta= lk. > > > > > > talksmall > > > > > > On Dec 22, 7:48 pm, Dave Mason <[email protected]> wrote: > > > > >> Good to see someone's still working on Strongtalk - thanks Steph= en! I > > > > >> installed VMWare Fusion on my MacBook to explore Strongtalk unde= r > > > > >> Windows, but I can't seem to get to it. > > > > > >> Is it possible to create a version blowing away most of the imag= e and > > > > >> building it up a la GNU Smalltalk? =A0I think I'd find that much= more > > > > >> approachable. > > > > > >> Thanks =A0../Dave > > > > > > -- > > > > > > You received this message because you are subscribed to the Googl= e Groups > > > > "Strongtalk-general" group. > > > > > To post to this group, send email to strongtalk-general@googlegro= ups.com > > > > . > > > > > To unsubscribe from this group, send email to > > > > [email protected]<strongtalk-general%= [email protected]> > > > > . > > > > > For more options, visit this group at > > > >http://groups.google.com/group/strongtalk-general?hl=3Den. > > > > > -- > > > > GMail doesn't have rotating .sigs, but you can see mine at > > > >http://www.ccil.org/~cowan/signatures<http://www.ccil.org/%7Ecowan/s= ignatures> > > > > > -- > > > > > You received this message because you are subscribed to the Google = Groups > > > > "Strongtalk-general" group. > > > > To post to this group, send email to strongtalk-general@googlegroup= s.com. > > > > To unsubscribe from this group, send email to > > > > [email protected]<strongtalk-general%= [email protected]> > > > > . > > > > For more options, visit this group at > > > >http://groups.google.com/group/strongtalk-general?hl=3Den. -- 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 strongtalk-general+unsubscrib= [email protected]. For more options, visit this group at http://groups.google.com/group/strong= talk-general?hl=3Den.