[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