IronLanguages Ideas for GSoC 2011

IronPython Ideas

Implementing Python 3 Features

IronPython currently only implements Python 2.7, which includes some but not all Python 3.x features. This task is all about adding support for Python 3.x to IronPython.

Just saying “port IronPython to 3.x” will not be enough; student proposals should list exactly which 3.x features they intend to work on.

This will involve understanding almost every area of IronPython, including the parser, compiler, and code generator. Ideally the student will have some experience with compiler construction and C#.

Difficulty: medium-hard

Mentor: ?

Implement missing modules

IronPython is still missing some modules that are included with CPython - sqlite3, _csv, _multiprocessing, zipimport, etc. A student should pick one or two missing modules and implement them.

This will involve understanding the IronPython repo layout and build process. The student will need to have some knowledge of C#.

Difficulty: easy-medium (depending on module chosen)

Mentor: Jeff Hardy

Merge IronClad

Work to bring the IronClad project into the core IronPython codebase so that CPython extensions will work out of the box. Also work on improving IronClad’s compatibility with existing extensions, with special attention to PEP 384 support

A student should have a solid knowledge of both native and managed code and how to interoperate between them.

Difficulty: integration - medium; improvements - hard

Mentor: ?

Convert IronPython tests to unittest, where possible

Many of the IronPython-specific tests could be converted to use unittest instead of the current test harness. This would allow them to be run under unittest’s test runner like the Python standard library. Not all tests can be easily be converted, but somehow integrating them would be useful as well.

Difficulty; Low-medium

Mentor: ?

Rewrite Importer

Some pure Python packages have trouble importing on IronPython. The way IronPython imports should be rewritten so that it more closely follows the CPython semantics.

A student should have a solid knowledge of C# and Python (maybe some knowledge of C)

References: PEP 302, _importlib.py, import.c

Difficulty: medium - hard

Mentor: ?

IronRuby Ideas

IronRuby FFI

Write a foreign function interface to allow CRuby extensions written for Ruby FFI to work in IronRuby. This is similar to IronPython’s IronClad project.

A student should have a solid knowledge of both native and managed code and how to interoperate between them.

Difficulty: hard

Mentor: ?

IronRuby Linq gem

Write a Linq gem to allow IronRuby work with any kind of .net object through Linq

A student should have a solid knowledge of both linq and how to construct a gem.

Difficulty: medium

Mentor: ?