On Wed, 21 May 2008 20:57:33 +0200, "\"Martin v. Löwis\"" <[EMAIL PROTECTED]> 
wrote:
As said before, PyOpenGL is an example of an extension that moved from C
code to Python/ctypes, luckily we don't use it, but what if the
maintainers of MySQL-Python or cx_Oracle decide to move to ctypes.
Having the ctypes extension in the stdlib doesn't imply it runs on any
platform where python runs. Extension writers should keep this in mind
when they decide to use ctypes. They should document, that their
extension depends on ctypes and therefore doesn't run on platforms where
ctypes doesn't work.

Plus, even if ctypes works, the code might be incorrect, because they
had been assuming structure layouts and symbolic constants that have
just a different definition on some other platform, causing the
extension module to crash.

Writing portable ctypes modules is really hard - significantly harder
than writing portable C code (although writing non-portable ctypes
code is apparently easier than writing non-portable C code).

True.  There's some room for improvement in ctypes here, fortunately.

For example, PyPy has some tools which resolve the particular problem
you're talking about; the library is even available separately and can
(and probably should) be used by anyone writing a ctypes module.

Sample usage and installation instructions available here:

 http://codespeak.net/~fijal/configure.html

Jean-Paul
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to