PyHeapTypeObject errors with PyPy

<[email protected]> Fri, 15 Apr 2022 17:13:32 +0200
Newsgroups gmane.comp.programming.swig
Message-ID <[email protected]>
Hi

 

Our conda-forge feedstock received an automatic PR to add PyPy support.
Unfortunately, I get a lot of errors when compiling the SWIG wrapper like
this:

 

$SRC_DIR/build/src/swig/CMakeFiles/_stir.dir/stirPYTHON_wrap.cxx:158287:1:

   error: too many initializers for 'PyHeapTypeObject' {aka
'_heaptypeobject'}

 

This is with swig 4.0.2 and pypy 3.8. You can find the log at Pipelines -
Run 20220414.1 logs (azure.com)
<https://dev.azure.com/conda-forge/feedstock-builds/_build/results?buildId=4
92070&view=logs&j=4f922444-fdfe-5dcf-b824-02f86439ef14&t=b2a8456a-fb11-5506-
ca32-5ccd32538dc0&l=6141> 

 

I find the following in the wrapped file

 

 

#if PY_VERSION_HEX < 0x02030000

typedef struct {

  PyTypeObject type;

  PyNumberMethods as_number;

  PyMappingMethods as_mapping;

  PySequenceMethods as_sequence;

  PyBufferProcs as_buffer;

  PyObject *name, *slots;

} PyHeapTypeObject;

#endif

 

/// stuff

 

static PyHeapTypeObject SwigPyBuiltin__swig__SwigPyIterator_type = {

  {

#if PY_VERSION_HEX >= 0x03000000

    PyVarObject_HEAD_INIT(NULL, 0)

#else

    PyObject_HEAD_INIT(NULL)

    0,                                        /* ob_size */

#endif

    "stir.SwigPyIterator",                    /* tp_name */

    sizeof(SwigPyObject),                     /* tp_basicsize */

    0,                                        /* tp_itemsize */

    /// more stuff

 

 

I cannot find any reference to PyHeapTypeObject but wonder if the #if
PY_VERSION_HEX statements are failing with PyPy.

 

Anyone any suggestions?

 

Thanks a lot

 

Kris

_______________________________________________
Swig-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/swig-user