Common Smalltalk VM Summit

goran at krampe.se goran at krampe.se
Thu Oct 5 12:41:09 UTC 2006


Hi David and all!

Some ramblings from a non VM hacker:

"David Griswold" <David.Griswold at acm.org> wrote:
> Hi everybody,
> 
> Dan Ingalls and I have been talking, trying to figure out what to do about
> the major opportunity offered by the recent release of the Strongtalk
> virtual machine as open source.
> 
> Rather than keep this discussion to ourselves, our thinking was that this
> would be the perfect time to call a kind of summit, with representatives of
> all the major Smalltalk implementations, both open-source and commercial.
> The topic: what if we could build a shared high-performance open-source
> platform suitable for hosting a number of different Smalltalk systems, one
> that we can all share and work on together?

Question #1: Will you and/or Dan be at OOPSLA now in October?

> While the details of the type-feedback techniques used in the Strongtalk VM
> are arcane, the benefits are not: *much* higher performance for general
> Smalltalk code.  Dan, myself, and many others who know about type-feedback
> and the pioneering Self system, have been dreaming for many years about the
> possibility that someday this technology might make it into mainstream
> Smalltalk VMs.  It would take Smalltalk performance to a whole new level.
> 
> That someday is here now, if the different factions within the Smalltalk
> community can pull together a little bit so that we don't miss this
> opportunity.

A few comments:

IMHO there are at least two very interesting projects in this arena:
Ian's pepsi/coke/idst and Bryce's Exupery.

It was a while since I heard anything about AoStA. And all the "other"
non-Smalltalk projects like Parrot, YARV (a fast Ruby VM - tons of those
projects apparently), Pypy etc are probably too far "away" from the
Smalltalk community to be of real interest.

Then of course we have Spoon - the "minimal Squeak project" that Craig
is pulling - which probably could form a very good new "kernel image" on
top of a new VM, but despite some low level modification to the VM like
his super proxies etc - he has AFAIK not yet touched the VM much.

Now, to most of us Squeakers it is joyful to see Strongtalk "back in
business" - especially since that includes people like you. :)

On the other hand, a big chunk of C++ doesn't really sound like an
attractive artifact - at least not to me ;). Ian has moved away from C++
as his choice of VM implementation platform (see idst/pepsi/coke etc)
and Bryce is building Exupery entirely in Squeak itself.

Getting the whole (including commercial ones) Smalltalk community united
behind a common execution platform is probably... hard. But getting the
open source subset of the Smalltalk community (GST, Squeak and so on)
united should be at least in the realm of possibilities.

Without actually knowing what I am blabbering about I would *love* to
see the following happening:

You (and other Strongtalk implementors) take your expertise (and
possibly even code) and take a hard look at Ian's and Bryce's work and
join up with them.

Exupery is probably the "backwards compatible" (since it more or less
piggy backs on the existing VM which is quite polished at this time) way
to real speed for the current Squeak VM in a reasonable timeframe.

But pepsi/idst/coke looks to me to be perhaps the most promising and
exciting low level platform ever. I am hoping that Exupery can somehow
eventually become a part of that, as one of several backends - and I am
also betting that Ian has the ambition to include type-feedback
optimizations into it.

Since pepsi/idst/coke is so malleable (it is not even a VM!) it seems
like it could have a chance to become a common platform for different
Smalltalks - it is meant to work for almost any kind of language, and
already has other languages running on top of it - like javascript (in
some form).

Well, there are others with much more insight than little me. But to be
frank - I don't see lots of Squeak VM experts rushing over to try to
grok a large C++ code body. I do however see people flocking towards
Exupery (since it is written in Smalltalk) and to pepsi/idst/coke (since
it too is written in Smalltalk to a large degree).

So not to put a damper on the enthusiasm here (which I probably did
anyway - but that is not my intention) but I think that the
Strongtalkers should join the Squeakers - and not hoping for the
opposite to happen. ;)

regards, Göran


PS. These are exciting times for Smalltalk. Let's have fun no matter
what! An appetizer to get you all interested in idst/pepsi/coke, have
you *ever* seen a Smalltalk hello world like this?!:

gokr at padme:~/pepsi/idst-5.7/examples/hw$ ls -la
total 16
drwxr-xr-x   2 gokr gokr 4096 Oct  5 14:30 .
drwxr-xr-x  16 gokr gokr 4096 Oct  3 03:21 ..
-rw-r--r--   1 gokr gokr  153 Jul 19 15:08 Makefile
-rw-r--r--   1 gokr gokr   48 Oct  2 20:35 hw.st
gokr at padme:~/pepsi/idst-5.7/examples/hw$ cat hw.st
{ import: st80 }

[
    'Hello, world' putln.
]
gokr at padme:~/pepsi/idst-5.7/examples/hw$ cat Makefile
PROGRAM = hw

all : $(PROGRAM)

% : %.st
 idc $<

tidy: .FORCE
 rm -f *~

clean : tidy .FORCE
 rm -f $(PROGRAM) *.exe

spotless : clean .FORCE

.FORCE :
gokr at padme:~/pepsi/idst-5.7/examples/hw$ time make
idc hw.st

real  0m1.244s
user  0m0.960s
sys 0m0.032s
gokr at padme:~/pepsi/idst-5.7/examples/hw$ time ./hw
Hello, world

real  0m0.083s
user  0m0.024s
sys 0m0.032s
gokr at padme:~/pepsi/idst-5.7/examples/hw$ ls -la
total 184
drwxr-xr-x   2 gokr gokr   4096 Oct  5 14:31 .
drwxr-xr-x  16 gokr gokr   4096 Oct  3 03:21 ..
-rw-r--r--   1 gokr gokr    153 Jul 19 15:08 Makefile
-rwxr-xr-x   1 gokr gokr 164658 Oct  5 14:31 hw
-rw-r--r--   1 gokr gokr     48 Oct  2 20:35 hw.st
gokr at padme:~/pepsi/idst-5.7/examples/hw$



More information about the Squeak-dev mailing list