Funding Again, and a project preannoucement

Bryce Kampjes bryce at kampjes.demon.co.uk
Sat Dec 14 15:23:13 UTC 2002


Good luck Anthony. I hope you find a supervisor and
funding. From my experience, once you've found the
right person everything should come together. I've
looked at your CV and it's better than mine.

I'm working on trying to set up a similar project (the
post graduate research route) for similar reasons and thought 
it might be useful to share our experience. Honestly, if
we can put this together, with the right people you 
shouldn't have a problem.

I've found a potential enthusiastic supervisor (he's on
the list) with the right skills and experience who I know
I can work with. We are trying to tie together the last few
details. In sales terms I think this is called closing.

Talking to personal contacts I've got two people as 
references for the project. One industry (95-99 European 
Java marketing) and one academic (the supervisor). As an 
academic project the industry contact isn't that useful 
except maybe open doors to people at Sun but that would 
need an introduction.

Our project is aimed at making dynamic compilation practical.
Basically we're trying to clear away a lot of the rubble so
it's easier to build this technology. 

Ideally we would like to describe building state of the art 
"VM" compilers well enough that they would become a safe 
Masters project. Sort of like the first half of Appel's "Modern 
Compiler Implementation in C" but for writing fast Smalltalk 
engines.

The biggest upfront design decision is not to be a JIT.
Compilation will happen either in a background process or
when code is accepted. This allows us to use normal
Smalltalk and avoids necessary real time constraints on
compilation.

I've currently got about 3000 lines of production code in
Squeak and another 3000 lines of test code. This is a test
first project. Currently, it's just enough to give me
confidence that I can do this project. It generates
about 5 instructions per bytecode on average for the current 
tests.

What I've got is a byte-code to assembly compiler with 
decent colouring register allocation. It only handles basic
arithmetic but should be able to compile the byte code 
benchmark with roughly one months more work. That was when 
I was planning on announcing this project.

After that features will be added as the customer (filtered
by us) requires. The aim is to get a compiler that is useful
somewhere for something as soon as absolutely possible. Users
create long term project stability.

It would help us if a few Big Names are interested enough to 
state that they would like to read thesis/paper drafts over 
the next two years. That should help convincing the gold 
holders at the university.


The above is really phase one, my degree and a foundation to
build on. With the technology outlined above Squeak would be
a great platform to build, say, a database engine several times
faster than Oracle. Query execution engines look surprisingly
like byte code interpreters. An Oracle manual states that
high performance databases should be CPU bound.

Looking around at the universities in the region there is
enough interest in Squeak that a successful project would
pull in (or back) enough local interest to create a solid
local network. Physically it will be a little isolated but
if you want to think differently sometimes that is an 
advantage.


Why am I working on this project now?

Well the company I was working for collapsed and I needed
a project to develop some ideas and pull my thinking away
from working at that job. 

It became obvious that there were not many "crap" jobs out 
there, they wanted good, cheap, and committed. Given the
market they felt they could get this until they decided you
were good. Catch 22.

So it was time to develop a big idea, if only to spark other
ideas that might play out.

The compiler is successful enough and generates enough interest
that I think it will work.

Given the focus of the last ten years of my life has been
trying to understand why good languages have not been
successful and a good chunk of time went into language 
implementation a compiler seemed an easy project to 
start.

A little industry experience gave me part of the answer.
Most development teams are not limited by C so they will
not gain by using Smalltalk. Most development teams 
are limited by "process" problems e.g. hard code freezes 
being their only tool to stabilize their code base. Or
no communication between the end customers and the 
developers.

An open source dynamic compiler that is used by industry
would be a good reference to demonstrate that we can do
better at building software. Hopefully that we can do
well enough that C becomes the next bottleneck to be 
replaced.

So is anybody here interested in discussing this little
project?

Bryce
P.S. The biggest lesson I've learned trying to "sell" my
project is to separate why it's worth doing from how to
justify doing it.

We've finished with why and may still have a few niggles
about justifying it. But why came first.



More information about the Squeak-dev mailing list