I would really like to co-mentor something like this... but I presume I have more things to learn than to teach :)
anyway, if there is a place to help, count me in. Esteban El 08/03/2012, a las 8:07a.m., Nick Ager escribió: > Here's hoping that in a similar way to Yanni and the ePUB proposal and > someone will jump in and say that they are already working on this. > > Quoting Eliot: > > It's not overambitious for someone good. And I'd love to see it happen. But > finding time to be a mentor has proven difficult for me in the past. I'd > happily be part-mentor, but I need someone to at least help in the GSoC > process... > > > so if there is anyone out there that can help Eliot and Igor with mentoring > or the GSoC process, jump in and offer support. > > The proposal: > > ----- > > Name: ARM jitter for Squeak VM > Level: Advanced > Possible mentor: Eliot Miranda > Possible second mentor: Igor Stasenko > > Description > The Squeak VM is the dynamic virtual machine used for many open-source > software projects such as Scratch [1], eToys [2], Pharo [3], the Newspeak > language [4], the innovative web framework Seaside [5] and many others. CogVM > [6] is a development of the Squeak VM which adds a powerful Intel x86 JITer > [7]. The CogVM JIT has significantly improved the performance of the > open-source Smalltalk projects which have adapted to use it. > Increasingly low cost highly capable ARM hardware such as the Raspberry Pi > [8] and the Beagle Board [9] have become widely available. In addition the > new version of the one-laptop-per-child is based on the ARM platform [10]. > The Squeak VM compiles for ARM platforms, but currently there is no JIT on > ARM platforms, significantly decreasing the performance of popular software > on ARM. The goal of this project is to add simple ARM JITTing capability to > the CogVM. > > [1] http://scratch.mit.edu/ > [2] http://www.squeakland.org/about/intro/ > [3] http://www.pharo-project.org > [4] http://newspeaklanguage.org/ > [5] http://seaside.st/ > [6] http://gitorious.org/cogvm > [7] http://en.wikipedia.org/wiki/Just-in-time_compilation > [8] http://www.raspberrypi.org/ > [9] http://beagleboard.org/bone > [10] http://one.laptop.org/about/xo-3 > > Technical Details > The work would require a interest in virtual machine optimisation, some > knowledge of Intel x86 and ARM assembler and knowledge of C and dynamic > languages. > The Squeak and Cog VM are written in a simplified subset of Smalltalk known > as slang [11] - which then generates C output and forms the basis of the VM. > As the Squeak VM is a Smalltalk program, it is developed in Smalltalk, and > the Cog JIT is no exception. The VM, including the JIT, is written in > Smalltalk and run in the context of the Smalltalk IDE, but the JIT still > generates machine-code that must be evaluated within the Smalltalk > environment. On x86 is done by interfacing to an x86 simulator library > derived from the Bochs x86/x86-64 PC simulator, written in C++. Implementing > the ARM port should be no different. The first task will be to choose and > interface to a suitable ARM simualtor/emulator. Once this is working, the > ARM code generator can be incrementally developed within Smalltalk. Finally > once the simulator is fully functional one can get down and dirty with an > actual physical ARM machine - such as the Raspberry Pi or Beagle Board. > [11] http://wiki.squeak.org/squeak/2267 > > > Benefits to the Student > The student will gain an in-depth knowledge of virtual machine optimisation, > working in a productive innovative environment - it's > great fun to be able to implement a JIT in a safe high-level dynamic > language, instead of the traditional route of developing in C/C++ and > debugging in GDB. > The student will have the satisfaction of seeing performance gains for a > range of high-profile projects which use the Squeak VM on ARM. > > Benefits to the Community > The Smalltalk community will gain an initial implementation of an ARM Jitter > which can then be further developed along-side the x86 dynamic translation > work. An ARM Jitter for the CogVM will improve the performance of many > notable open-source projects on low-cost ARM hardware, bringing innovative > software and development environments to wider community. > > ---- > > Cheers > > Nick
