Thx, I hope I would do justice to this in terms of time...! .. Let me just dive into this and look in..
PS: Wish a day had 48 hrs to it.. with rest 24 to your own pursuit.. not for work or home. On 3/9/12, Eliot Miranda <[email protected]> wrote: > Hi Krish, Hi Esteban, > > On Thu, Mar 8, 2012 at 9:17 AM, S Krish <[email protected]> > wrote: > >> Let me know if I can help in any way.. on this.. > > > On Thu, Mar 8, 2012 at 9:22 AM, Esteban Lorenzano > <[email protected]>wrote: > >> 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 >> > > you are both most welcome. i will definitely involve you. > > If you want something to do now, the first thing to do is to produce an ARM > simulator plugin, analogous to the Bochs simulator. The first thing to do > is go out and find a suitable software simulator, written in either C or > C++ (cuz these suit the plugin compilation system) and play with it, > configuring an ARM and running some simple assembler on it. Once that's > working you can write a plugin, and an Alien interface a la BochsIA32Plugin > and BochsIA32Alien. You can find tests you could use as a model in > source.squeak.org/VMMaker/Cog-Processors-Tests BochsIA32AlienTests. e.g. > testNFib16 runs machine code that implements NFib (same as benchFib). > > > this is exciting! > > cheers! > > >> 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 >> >> >> > > > -- > best, > Eliot >
