[pypy-dev] Bringing Cython and PyPy closer together

Stefan Behnel stefan_ml at behnel.de
Sun Feb 19 12:10:37 CET 2012


Amaury Forgeot d'Arc, 18.02.2012 21:20:
> 2012/2/18 Stefan Behnel
> 
>> And now the question is: how do I debug into PyPy? From the nightly build,
>> I don't get any debugging symbols in gdb, just a useless list of call
>> addresses (running the ref-counting related "arg_incref" test here):
>>
>> """
>> #0  0x0000000000ef93ef in ?? ()
>> #1  0x0000000000fca0cb in PyDict_Next ()
>>
> 
> This one I know:
> It's a bug in our implementation of PyDict_Next() that I fixed
> today with 568fc4237bf8:
> http://mail.python.org/pipermail/pypy-commit/2012-February/059826.html

It passes this test now.

https://sage.math.washington.edu:8091/hudson/view/dev-scoder/job/cython-scoder-pypy-nightly/9/console

After continuing a bit, it next crashes in the "builtin_abs" test. The code
in this test grabs a reference to the "__builtins__" module at the start of
the module init code which it stored in a static variable. Then, in a test
function, it tries to get the "abs" function from it, and that crashes PyPy
in the PyObject_GetAttr() call. In gdb, it looks like the module got
corrupted somehow, at least its ob_type reference points to dead memory.

Could this be another one of those borrowed reference issues? The module
reference is retrieved using PyImport_AddModule(), which returns a borrowed
reference.


Some more errors that I see in the logs up to that point, which all hint at
missing bits of the C-API implementation:

specialfloatvals.c:490: error: ‘Py_HUGE_VAL’ undeclared

autotestdict_cdef.c:2087: error: ‘PyWrapperDescrObject’ undeclared

bufaccess.c:22714: error: ‘PyBoolObject’ undeclared

bufaccess.c:22715: error: ‘PyComplexObject’ undeclared

buffmt.c:2589: warning: implicit declaration of function ‘PyUnicode_Replace’

Stefan



More information about the pypy-dev mailing list