lattam at mac.com
Fri Dec 9 21:59:44 UTC 2011
Another option worth thinking about is the use of LLVM for the low level code generation potions of a Self VM. This would gain multi-platorm support and a supported core that could be built upon. Of all the projects proposed Klein is the most interesting, but of course the highest risk. It is the only option that has the option of producing something of lasting and unique value. Given the number of dynamic languages with good performance these days (Rubinius in particular which uses LLVM for Ruby and has many advantages borrowed from ST), just getting Self to run on a new platform may not increase the size of the user base or attention received by much. While those are not the only motivation, it would be easier to get funding if there was a good story on how the result of the work could have real value.
Also, if the idea is to make Self available on an Arm platform better integration with the host OS and graphics libraries are worth considering as well. That would again favor Klein rather than a port of the current VM/image which are weak in this area. In particular a bridge to OpenGL could make the UI for the new project much more interesting.
On Dec 9, 2011, at 3:48 PM, Jecel Assumpcao Jr. wrote:
> I worked on Self for ARM back in 1993 and 1994. It was my own
> implementation rather than a port and back then ARM had a 26 bit PC
> rather than a 32 bit one, which was a major factor in the design.
> Unfotunately, I don't think anything from that project would be useful
> Jan mentioned using a different VM for Self. I agree that this is a
> possibility. Even one as different as the Squeak VM (now with the Cog
> JIT) could work. This would be the opposite of Mario's Smalltalk-on-Self
> or the Pepe Java-on-Self.
> David and Russell mentioned that the current Self VM is a better
> immediate project than Klein. It is a pity that this is the case, but
> Klein was cancelled when it was one or two years away from being a
> usable replacement for traditional Self.
> Baltasar suggested an interpreter, and David has put a lot of work on
> making this possible. The changes in the bytecodes from Self 4.0 to 4.1
> were exactly to make it more interpreter friendly. Klein includes an
> interpreter (called Yoda) but for work outside of Klein a new
> interpreter would have to be written.
> About Hotspot, that work came to Java from Self (through Strongtalk and
> a company called Animorphic that Sun bought) so there would be no need
> to borrow back anything from Java.
> Is the PowerPC still supported on recent Selfs? It would probably be the
> best starting point for an ARM port. But I wonder what ARM machines are
> people interested in? The most popular are the ones from Apple and I
> wouldn't waste my time with them given how hostile they have been to the
> various languages. Though at least they have allowed a native Lua
> development environment on their store, but they make it a pain to move
> code on or off the devices.
> The soon to be released Raspberry Pi (http://www.raspberrypi.org/) could
> be a good option. It runs Linux, so the port would only have to deal
> with the processor differences and not OS changes. It is pretty weak,
> but should be much faster than my Sun Ultra 5 (which is a very
> reasonable Self machine). At $25 (or $35 with more memory and Ethernet)
> it can go places normal PCs don't.
> My PhD project involves hardware and VMs. If it works, it might be an
> interesting option for Self. But it would be an even worse idea for you
> guys to wait for this than it would to work on Klein, so I encourage the
> idea of cleaning and porting the C++ VM even though I can't participate
> in that myself.
> -- Jecel
> Yahoo! Groups Links
More information about the Self-interest