Changed
- Added a Mono makefile. Thanks to Camilo Uribe for help in testing and
working out problems on Mono. Note that it not currently possible to
build PythonNet using mono, due to the use of some IL attributes that
the mono assembler / disassembler doesn't support yet.
- Preliminary tests show that PythonNet _does_ actually run under mono,
though the test suite bombs out before the end with an "out of memory"
error from the mono runtime. It's just a guess at this point, but I
suspect there may be a limited pool for allocating certain reflection
structures, and Python uses the reflection infrastructure quite heavily.
- Removed decoys like the non-working embedding APIs; lots of internal
refactoring.
- Implemented indexer support. Managed instances that implement indexers
can now be used naturally from Python (e.g. `someobject[0]`).
- Implemented sequence protocol support for managed arrays.
- Implemented basic thread state management; calls to managed methods
no longer block Python. I won't go so far as to say the thread
choreography is "finished", as I don't have a comprehensive set of
tests to back that up yet (and it will take some work to write a
sufficiently large and evil set of tests).
- Fixed a bug that caused conversions of managed strings to PyUnicode to
produce mangled values in certain situations.
- Fixed a number of problems related to subclassing a managed class,
including the fact that it didn't work :)
- Fixed all of the bugs that were causing tests to fail. This release
contains all new bugs and new failing tests. Progress! :)