Ben Sizer wrote: > On Feb 10, 8:42 am, Steve Holden <[EMAIL PROTECTED]> wrote: >> Hendrik van Rooyen wrote: >>> <[EMAIL PROTECTED]> wrote: >>> "Ben Sizer" <[EMAIL PROTECTED]> wrote: >>>> Ben> Python extensions written in C require recompilation for each new >>>> Ben> version of Python, due to Python limitations. >>>> Can you propose a means to eliminate this limitation? >>> Yes. - Instead of calling something, send it a message... >> I suppose you are proposing to use the ISO 19999.333 generic >> message-passing interface for this? The one that doesn't actually call a >> function to pass a message? > > I'm assuming you're being facetious here..? > You're right.
> Of course, functions get called at the ends of the message passing > process, but those functions can stay the same across versions while > the messages themselves change. The important part is reducing the > binary interface between the two sides to a level where it's trivial > to guarantee that part of the equation is safe. > > eg. > Instead of having PySomeType_FromLong(long value) exposed to the API, > you could have a PyAnyObject_FromLong(long value, char* > object_type_name). That function can return NULL and set up an > exception if it doesn't understand the object you asked for, so Python > versions earlier than the one that implement the type you want will > just raise an exception gracefully rather than not linking. > > The other issue comes with interfaces that are fragile by definition - > eg. instead of returning a FILE* from Python to the extension, return > the file descriptor and create the FILE* on the extension side with > fdopen. > I agree that the coupling is rather tight at the moment and could do with being loosened to the degree you suggest. My previous post was a knee-jerk reaction to the suggestion that substituting one mechanism for another equivalent one would, by itself, solve anything. I am staying away from the Py3.0 discussions at the moment - does anybody know whether this problem is being addresses there? regards Steve -- Steve Holden +44 150 684 7255 +1 800 494 3119 Holden Web LLC/Ltd http://www.holdenweb.com Skype: holdenweb http://del.icio.us/steve.holden Blog of Note: http://holdenweb.blogspot.com See you at PyCon? http://us.pycon.org/TX2007 -- http://mail.python.org/mailman/listinfo/python-list