Pyjion: Pyjion 0.8.0 fails importing pickle with pyjion enabled

On Windows, python -X dev -c "import pyjion; pyjion.enable(); import pickle" randomly emits different errors:

C:\msys64\home\ryuta\packages\coolprop>python -X dev -c "import pyjion; pyjion.enable(); import pickle"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Users\ryuta\AppData\Local\Programs\Python\Python39\lib\pickle.py", line 1134, in <module>
    class _Unpickler:
  File "C:\Users\ryuta\AppData\Local\Programs\Python\Python39\lib\pickle.py", line 1742, in _Unpickler
    dispatch[STOP[0]] = load_stop
NameError: name 'load_next_buffer' is not defined

C:\msys64\home\ryuta\packages\coolprop>python -X dev -c "import pyjion; pyjion.enable(); import pickle"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Users\ryuta\AppData\Local\Programs\Python\Python39\lib\pickle.py", line 405, in <module>
    class _Pickler:
  File "C:\Users\ryuta\AppData\Local\Programs\Python\Python39\lib\pickle.py", line 405, in _Pickler
    class _Pickler:
NameError: name 'save_long' is not defined

C:\msys64\home\ryuta\packages\coolprop>python -X dev -c "import pyjion; pyjion.enable(); import pickle"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Users\ryuta\AppData\Local\Programs\Python\Python39\lib\pickle.py", line 405, in <module>
    class _Pickler:
  File "C:\Users\ryuta\AppData\Local\Programs\Python\Python39\lib\pickle.py", line 405, in _Pickler
    class _Pickler:
NameError: name 'save_str' is not defined

C:\msys64\home\ryuta\packages\coolprop>python -X dev -c "import pyjion; pyjion.enable(); import pickle"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Users\ryuta\AppData\Local\Programs\Python\Python39\lib\pickle.py", line 1134, in <module>
    class _Unpickler:
  File "C:\Users\ryuta\AppData\Local\Programs\Python\Python39\lib\pickle.py", line 1742, in _Unpickler
    dispatch[STOP[0]] = load_stop
NameError: name 'load_additems' is not defined

C:\msys64\home\ryuta\packages\coolprop>python -X dev -c "import pyjion; pyjion.enable(); import pickle"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Users\ryuta\AppData\Local\Programs\Python\Python39\lib\pickle.py", line 1134, in <module>
    class _Unpickler:
  File "C:\Users\ryuta\AppData\Local\Programs\Python\Python39\lib\pickle.py", line 1742, in _Unpickler
    dispatch[STOP[0]] = load_stop
NameError: name 'SHORT_BINUNICODE' is not defined

C:\msys64\home\ryuta\packages\coolprop>python -X dev -c "import pyjion; pyjion.enable(); import pickle"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Users\ryuta\AppData\Local\Programs\Python\Python39\lib\pickle.py", line 405, in <module>
    class _Pickler:
  File "C:\Users\ryuta\AppData\Local\Programs\Python\Python39\lib\pickle.py", line 405, in _Pickler
    class _Pickler:
NameError: name 'save_picklebuffer' is not defined

C:\msys64\home\ryuta\packages\coolprop>python -X dev -c "import pyjion; pyjion.enable(); import pickle"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Users\ryuta\AppData\Local\Programs\Python\Python39\lib\pickle.py", line 1134, in <module>
    class _Unpickler:
  File "C:\Users\ryuta\AppData\Local\Programs\Python\Python39\lib\pickle.py", line 1238, in _Unpickler
    dispatch[FRAME[0]] = load_frame
NameError: name 'FRAME' is not defined

C:\msys64\home\ryuta\packages\coolprop>python -X dev -c "import pyjion; pyjion.enable(); import pickle"

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Comments: 25 (15 by maintainers)

Most upvoted comments

It seems to be failing even if I turn all the optimizations off in the CMakeOptimizations.txt.

@tonybaloney Do you know if there is a way to disassemble what gets generated by eval? I’m thinking that it’d be worth comparing the difference.

@tetsuo-cpp this is a pretty juicy issue, do you want to have a go at this one next?