[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