pyjq icon indicating copy to clipboard operation
pyjq copied to clipboard

PyJQ Does Not Build in Python 3.12

Open benbini opened this issue 1 year ago • 2 comments

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.

benbini avatar Mar 18 '24 20:03 benbini

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.

dlangille avatar Jun 11 '24 14:06 dlangille