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.