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
>

Reply via email to