= Parrot On RTEMS = [[TOC(Projects/Parrot, depth=2)]] '''Status:''' Compiles and a couple of tests run. Needs clean up for submission to [http://www.parrot.org Parrot] and all appropriate tests passing. '''Mentors:''' [wiki:User:ChrisJohns Chris Johns] and [wiki:User:DukeLeto Jonathan Leto] from [http://www.parrot.org Parrot] with [wiki:User:JoelSherrill Joel Sherrill] as backup. '''Introduction:''' [http://www.parrot.org Parrot] is a cool project that Chris and Joel think would be an enabling technology for RTEMS. It would let RTEMS developers include code written in numerous dynamic languages into the hard real-time environment RTEMS supports. This would be especially useful for scripting on the target. Consider a remote control robot where the command language was in a dynamic language that could be converted to byte-code, uploaded to the target, and then executed. This is just the tip of the iceberg that is possible with Parrot on RTEMS.
''Parrot is a virtual machine designed to efficiently compile and execute bytecode for dynamic languages. Parrot currently hosts a variety of language implementations in various stages of completion, including Tcl, Javascript, Ruby, Lua, Scheme, PHP, Python, Perl 6, APL, and a .NET bytecode translator. Parrot is not about parrots, though we are rather fond of them for obvious reasons.''
'''Goal:''' Support [http://www.parrot.org Parrot] on [http://www.rtems.org RTEMS]. With all due respect to the [http://muppet.wikia.com/wiki/Pigs_in_Spac Muppets], we want "BIRDS IN SPACE!" '''Requirements:''' You will need to have to feel comfortable tracking now small issues, providing clean solutions and getting them integrated into their appropriate code base. Some issues will require modifications to the Parrot build system or [http://www.parrot.org Parrot] itself. Some may require augmenting RTEMS to make life easier for [http://www.parrot.org Parrot]. A lot of this project will be building a test framework for Parrot on RTEMS and fixing what is broken. We don't know how many tests will require investigation and debug but RTEMS is sufficiently POSIX compliant where we expect this to be minimal. There may be places where [http://www.parrot.org Parrot] can be tuned or "down sized" for embedded systems. This should be investigated. Also, there is the issue of Parrot not currently having a real-time garbage collector algorithm. This can be further investigated but may turn out to be too large a project for a single Summer of Code project. '''Resources:''' TBD '''Acknowledgements''' * [wiki:User:ChrisJohns Chris Johns] was inspired at the 2009 Google Summer of Code Mentors Summit and got an initial port running a few tests together very quickly. = Miscellaneous Sections = As the project progresses, you will need to add build instructions, etc and this page will evolve from a project description into a HOWTO. = References = * [http://www.parrot.org Parrot] * ''Introduction to Parrot Presentation'': The following are links to various digital representations of Jonathom Leto's early 2010 talk "Introduction to Parrot VM" talk that he gave to the Portland Perl Mongers (PDX.pm): * [http://pdxpm.podasp.com/archive.html?pname=meetings.xml mp3] * [http://www.ustream.tv/recorded/4630503 video] * [http://docs.google.com/present/view?id=dk89d5g_193ngx26cw slides]