Hi all!
Eliot Miranda wrote:
I need to at least hurry up and get the StackInterpreter released.
Which of course tickles me enough to ask again about your status? :)
Let me indulge in some "braindumping" here about Squeak vs Android:
Android is coming on a broad front right now and I am interested in how Squeak can "fit" into that platform.
Unless you have been living under a rock (or working hard on a JIT we all want!) the mobile industry is heating up a LOT. Android is really impressive and is getting thrown on all sorts of interesting hardware, not only phones. I think that it really will be disruptive in a way that IPhone can never be since it is a "high end only" product from a single hardware company.
The Android SDK/dev stack is interesting, it is a Linux kernel etc, has the Dalvik VM which is a VM with its own bytecode set that is designed for phones and "runs Java". It does it by using a cross compiler from java .class files to so called "dex" files and then runs those. So it is not a "Java VM (tm)".
It is actually *register based* and I have peeked at its sources. It seems to have been written with a "brute force" approach by C-coders - nothing wrong in that of course.
First they wrote a simple interpreter core in a single C function. Then they split it up using macros etc in order to be able to implement each bytecode in assembler for each major CPU. The "old" C-only interpreter is still there and it basically is a "while (!) { FETCH; switch (bytecode) for-each-bytecode}"-loop. :)
There is no JIT. It is not fast. BUT... it is the VM on the Android and it comes with tons of libraries etc.
Now... there is also an NDK (Native SDK) that allows one to compile C to libraries (but not executables, not sure) that can in turn be used from java/Dalvik... humm...
So in order to be able to write anything remotely interesting for an Android one needs to go "through" Dalvik somehow.
My silly first "funny idea" was to somehow marry the Squeak VM with the Dalvik VM. Merge the sources and somehow make it possibly to "drive" the Dalvik interpreter by feeding it "dex" bytecodes from Squeak. Sure, this will only work on a "rooted phone" I presume, but anyway, would be cool.
If we could do that I guess one could open a VNC connection into the Squeak VM (if we can get Sockets to work) running inside the Android simulator/device and then using Squeak producing dex bytecodes one could perhaps dynamically "drive" Dalvik?
I am probably talking totally "out of my hat". Would be really interesting to hear thoughts from Eliot on all this.
Anyway, getting Squeak running on Android in any fashion would be awesomely interesting :) - it IS coming, all over.
Sidenote: Getting Squeak to run on Maemo (Nokia's Linux based OS for n900 etc) and derivatives of Maemo is probably tons of less work (because it is not a java centric thing and has much more standard Linux stuff) - but tons of less interesting given the market...
regards, Göran
PS. This article + comments (by Dan Bernstein also, creator of Dalvik) is a bit interesting.