[pypy-dev] Building on case-insensitive file system
Cyrus Daboo
cyrus at daboo.name
Wed Aug 5 17:59:54 CEST 2015
Hi,
OS X defaults to having a case-insensitive file system. I believe there is
a problem with building pypy from source on such a system.
During the build process I see files being written to the jitcodes
directory in the /tmp build directory. There are some "W_ArrayTypeX.*"
files being written there, where "X" is a typecode (which I believe comes
from pypy/module/array/interp_array.py). The allowable codes come from the
set "c, b, B, u, h, H, i, I, l, L, f or d". Note that there are a mixture
of lower and upper case characters that are the same.
When I build on OS X, with an option to force an error when trying to
create a file with a name that matches another, but with different case, I
see this:
[translation:ERROR] EEXIST: [File exists]:
file('/tmp/usession-release-2.6.x-0/jitcodes/W_ArrayTypel._charbuf_stop',
'w')
That is because "W_ArrayTypeL._charbuf_stop" exists - i.e., "l" and "L" are
in conflict.
Now, I am not a PyPy dev expert, so I have no idea what the impact of this
might be, but it seems wrong to me. Though I cannot detect any obvious
problems in the built pypy binary.
I am not sure what an appropriate fix for this would be. Perhaps changing
the typecode set to use unique characters (case insensitive) for all the
different types?
--
Cyrus Daboo
More information about the pypy-dev
mailing list