[Python.NET] Python 2.5 compatibility and interop.cs

Brian Lloyd brian.lloyd at revolution.com
Mon Jul 2 17:18:38 CEST 2007


I'm pretty sure there were some changes to type structures in 2.5, so
probably the only sane thing to do would be to do a 2.5-specific branch :(

The interop stuff is some fairly deep voodoo - it essentially generates a
bunch of thunks and wrappers matching the in-memory layouts of various
python type objects and things. What would need to be done is an assessment
of what changed in 2.5, then go into interop and change / add offsets etc.
accordingly. I can say with some experience that it won't be fun ;)

My available time (and the fact that IronPython gets 99% of the oxygen
these days) means that I probably won't be able to get to this any time
soon, but I'd be more than happy to help anyone who wants to take this on
in any way I can.

-Brian


On 7/1/07 5:33 PM, "Christian Heimes" <lists at cheimes.de> wrote:

> Hello!
> 
> I want to the pythonnet with Python 2.5 and .NET 2.0. So far I was able
> to fix the svn trunk revision 42 for .NET 2.0 using the tutorial from
> http://thread.gmane.org/gmane.comp.python.dotnet/576. I had to change
> clrModule to ModuleObject but it works under Python 2.4.
> 
> Python 2.5 however doesn't work. I changed the dll in runtime.cs to
> 
>    internal static string dll = "python25";
> 
> in the hope that pythonnet doesn't need more changes. At first it looked
> promising. I was able to import clr and some other .NET assemblies.
> However using them is a different story. Python crashes everytime I try
> to use an object from an assembly.
> 
> I compiled my own Python version in order to debug the error. It fails
> in typeobject.c:387
> 
>     name = type_name(type, NULL);
> 
> with an access violation. Something is trying to write to 0x00000000.
> 
> I studied the pythonnet code a bit and I guess I have to alter
> interop.cs in order to make pythonnet compatible with Python 2.5. I
> don't know how it has to be changed and what it causing the error. Maybe
> ssize_t -> Py_ssize_t transition (I'm using a 32 bit Windows XP SP2)?
> 
> Christian




More information about the PythonDotNet mailing list