Could you be more specific about which commit hash built and which didn't? That would help to pin down the problematic code. In 439f4942e2bd we added a test that fails on 32 bit but succeeds on 64 bit.
To be clear, this is 64 bit. Also, I don't really know which hashes as I get the sourceballs directly and I can't tell you exactly which one of those it was since you guys changed the content of the releases while keeping the name the same.
I can confirm that translation is broken for me in the same way using CPython and the current py3.6 head (43bb1c622881). Translating on pypy does work.
In Arch, we only ever build pypy using cpython so we don't have a cyclic dependency on ourselves so this should work.
I think I now understand why there's a difference between pypy and CPython. It has to do with the order of the items in the effects set in rpython.jit.codewriter.effectinfo.effectinfo_from_writeanalyze.
add_array() crashes when called on rpython.rlib.rutf8.UTF8_INDEX_STORAGE. However, if add_interiorfield() is called first, it raises the same exception, but swallows and ignores it while sticking an incomplete ArrayDescr in the cache (see rpython/jit/backend/llsupport/descr.py::get_array_descr()), which the following calls to add_array() or add_interiorfield() will pick up. On PyPy, the "array" effect is always last (because sets are ordered) but on CPython it may randomly come first.
This weird behaviour of add_interiorfield() is apparently a hack added in ecf3b7cd79eb. Adding it to add_array() might fix translation, but the question is how comes that the bogus ArrayDescr doesn't cause any issues?
@svenstaro I'm not sure is this helpful but it can be built with python-3.7.2-3 on Arch.
I've tested this by running extra-x86_64-build -- -I /var/cache/pacman/pkg/python-3.7.2-3-x86_64.pkg.tar.xz.
This error only occurs with python-3.7.3-1.
Assume the error has to do with the add_array and it's order for PyPy2-7.1.0
-> raise UnsupportedFieldExc("unexpected array(struct(struct))")
Traceback (most recent call last):
File "../../rpython/bin/rpython", line 20, in <module>
File "/root/builds/sources/pypy2/rpython/translator/goal/translate.py", line 325, in main
File "/root/builds/sources/pypy2/rpython/translator/goal/translate.py", line 278, in debug
File "/root/builds/sources/pypy2/rpython/translator/tool/pdbplus.py", line 442, in start
File "/root/builds/sources/pypy2/rpython/translator/tool/pdbplus.py", line 25, in post_mortem
File "/usr/local/lib/python2.7/pdb.py", line 210, in interaction
File "/usr/local/lib/python2.7/cmd.py", line 109, in cmdloop
File "/root/builds/sources/pypy2/rpython/translator/tool/pdbplus.py", line 29, in preloop
raise NoTTY("Cannot start the debugger when stdout is captured.")
rpython.translator.tool.pdbplus.NoTTY: Cannot start the debugger when stdout is captured.