[Pyrex] Does __Pyx_ImportType need to check struct sizes? (Cython-relevant, too)
Robert Kern
robert.kern at gmail.com
Sun May 24 02:26:38 CEST 2009
What is the reasoning behind having __Pyx_ImportType check that the imported
type's size at runtime matches exactly the type's size at compile time? This
interferes with the ability to expand a type in an otherwise binary compatible
way by adding members to the end of the struct. This is causing me some pain as
I am adding things to a type in numpy. All of the other extension module
binaries built against the older numpy work with the new build of numpy, but the
Pyrex-built ones don't because of this explicit check. Cython has the same code.
Can this check be changed from "runtime_size!=compiled_size" to
"runtime_size>=compiled_size" or be gotten rid of altogether? Checking for a
change in the size of the struct is always an imperfect check for binary
incompatibility. Even >= will have false negatives, but at least it does not
have this particular false positive.
--
Robert Kern
"I have come to believe that the whole world is an enigma, a harmless enigma
that is made terrible by our own mad attempt to interpret it as though it had
an underlying truth."
-- Umberto Eco
More information about the Pyrex
mailing list