pyjq
pyjq copied to clipboard
PyJQ Does Not Build in Python 3.12
I recently tried to install pyjq in a Python 3.12 environment, and encountered the following error (along with a slew of deprecation warnings, omitted):
_pyjq.c:6953:55: error: no member named 'ob_digit' in 'struct _longobject'
const digit* digits = ((PyLongObject*)x)->ob_digit;
~~~~~~~~~~~~~~~~~~ ^
_pyjq.c:7008:55: error: no member named 'ob_digit' in 'struct _longobject'
const digit* digits = ((PyLongObject*)x)->ob_digit;
~~~~~~~~~~~~~~~~~~ ^
_pyjq.c:7187:55: error: no member named 'ob_digit' in 'struct _longobject'
const digit* digits = ((PyLongObject*)x)->ob_digit;
~~~~~~~~~~~~~~~~~~ ^
_pyjq.c:7242:55: error: no member named 'ob_digit' in 'struct _longobject'
const digit* digits = ((PyLongObject*)x)->ob_digit;
~~~~~~~~~~~~~~~~~~ ^
_pyjq.c:7693:47: error: no member named 'ob_digit' in 'struct _longobject'
const digit* digits = ((PyLongObject*)b)->ob_digit;
Based on the discussion here I believe references to ob_digit should be changed to ->long_value->ob_digit; I am unsure whether if there other breaking issues in 3.12.
I came here because of Python 3.11 issues (the FreeBSD ports is tagged as working only with Python 3.8-3.9) and I was hoping for an updated release.