A while ago Amit Regmi, a student from Canada, started working on the clr module improvements branch as a university project.
During the sprint Carl Friedrich, Paul and me worked more on it and brought it to a mergeable state.
- full support to generic classes;
- a new importer hook, allowing things like from System import Math and so on;
- .NET classes that implements IEnumerator are treated as Python iterators; e.g. it's is possile to iterate over them with a for loop.
This is an example of a pypy-cli session:
>>>> from System import Math >>>> Math.Abs(-42) 42 >>>> from System.Collections.Generic import List >>>> mylist = List[int]() >>>> mylist.Add(42) >>>> mylist.Add(43) >>>> mylist.Add("foo") Traceback (most recent call last): File "<console>", line 1, in <interactive> TypeError: No overloads for Add could match >>>> mylist 42 >>>> for item in mylist: print item 42 43
This is still to be considered an alpha version; there are few known bugs and probably a lot of unknown ones :-), so don't expect it to work in every occasion. Still, it's a considerable step towards real world :-).