Skip to content
This repository has been archived by the owner on Sep 14, 2018. It is now read-only.

IronPython GSoC 2012 Ideas

jdhardy edited this page Apr 5, 2012 · 9 revisions

Google Summer of Code 2012 Ideas

Google Summer of Code is a program that pays students to write open source code. IronPython is participating through the Mono Project; you'll have to send your application through them.

Feel free to add ideas to this page.

Students: The Mono project has rules for participating. You will have to apply through them.


IronPython 3 Support

The nature of Python 3 means that it will be easier for IronPython to be compatible with it than Python 2. Almost all of the changes from Python 2 to 3 are codified in the 3xxx series PEPs; these will need to be sifted through and implemented.

Components: parser, modules, library, tests

Deliverables: A list of PEPs that need to be implemented, and implementations of as many as possible.

Mentor: Jeff Hardy (jdhardy), Doug Blank (dsblank)

Improve IronPython Compatibility

IronPython's compatibility with CPython is lacking in some areas. Large portions of the Python standard test suite do not pass; making these tests pass would greatly improve IronPython's compatibility. Having a major application or framework (i.e. Django) running would also further this goal.

Components: library, modules, tests

Deliverables: The standard CPython test suite should completely pass (with tests skipped if necessary), as well as the test suite for a major application/framework of the student's choosing.

Mentor: Jeff Hardy (jdhardy), Alex Earl (slide), Doug Blank (dsblank)

IronPython Mobile Support

This project is all about improving support for IronPython on mobile devices, such as Android, iOS, and Window Phone 7. iOS in particular is tricky because no dynamic code gen is allowed, and IronPython depends on it in a few places.

Components: Code generation, modules, compiler, tests

Deliverables: Pass as much of the IronPython test suite as possible and demonstrate a moderately complex app running on a mobile device. This includes figuring out a packaging and deployment strategy for each platform.

Mentor: Jeff Hardy (jdhardy), Doug Blank (dsblank)

Improve Performance

This project is focussed on improving performance, especially cold startup performance. Any part of IronPython or the DLR is fair game for improvements. Any changes to the DLR would also have to be compatible with IronRuby and any inner ring changes should be considered for proposal to Mono. Integration with speed.python.org is also desirable.

Components: DLR, modules, code generation, compiler ... almost everything :)

Deliverables: a set of benchmark tests (including http://hg.python.org/benchmarks/, but also IP-specific ones) as well as patches that show measurable improvements on those tests.

Mentor: Jeff Hardy (jdhardy), Doug Blank (dsblank)

Triage

There are many bugs currently in the system that may or may not be applicable to the current version of IronPython. It would be very helpful to have someone triage and update a significant portion of the bugs to determine what issues are really there and what issues are not. This would include creating reproduction test cases (and adding them to unit tests if possible so regressions don't occur) and doing initial triage of issues.

Components: DLR, modules, code generation, compiler ... almost everything :)

Deliverables: A set of reproduction test cases for a significant portion of the currently unresolved issues.

Mentor: Alex Earl (slide), Doug Blank (dsblank)