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

Reply via email to