DanielStutzbach / blist

A list-like type with better asymptotic performance and similar performance on small lists
Other
310 stars 36 forks source link

Currently does not build in Windows with Python 3.7 #81

Open EmilStenstrom opened 5 years ago

EmilStenstrom commented 5 years ago

Seems the current package does not build using Windows 10, with Visual C++ Build tools installed. Against Python 3.7. Here's the exact output:

... blist/_blist.c(7742): fatal error C1070: mismatched #if/#endif pair in file 'c:\...\_blist.c' ... ``` C:\Emils\Dropbox\Projekt\adventofcode\2018>pip install blist Collecting blist Using cached https://files.pythonhosted.org/packages/6b/a8/dca5224abe81ccf8db81f8a2ca3d63e7a5fa7a86adc198d4e268c67ce884/blist-1.3.6.tar.gz Building wheels for collected packages: blist Running setup.py bdist_wheel for blist ... error Complete output from command c:\users\admin\envs\adventofcode2018\scripts\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\Admin\\AppData\\Local\\Temp\\pip-install-bza_1ugc\\blist\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d C:\Users\Admin\AppData\Local\Temp\pip-wheel-svzxbs43 --python-tag cp37: running bdist_wheel running build running build_py creating build creating build\lib.win-amd64-3.7 creating build\lib.win-amd64-3.7\blist copying blist\_btuple.py -> build\lib.win-amd64-3.7\blist copying blist\_sorteddict.py -> build\lib.win-amd64-3.7\blist copying blist\_sortedlist.py -> build\lib.win-amd64-3.7\blist copying blist\__init__.py -> build\lib.win-amd64-3.7\blist running build_ext building 'blist._blist' extension creating build\temp.win-amd64-3.7 creating build\temp.win-amd64-3.7\Release creating build\temp.win-amd64-3.7\Release\blist C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DBLIST_FLOAT_RADIX_SORT=1 "-Ic:\program files\python37\include" "-Ic:\program files\python37\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\cppwinrt" /Tcblist/_blist.c /Fobuild\temp.win-amd64-3.7\Release\blist/_blist.obj _blist.c blist/_blist.c(1525): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(1537): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(1717): warning C4244: 'function': conversion from 'Py_ssize_t' to 'unsigned int', possible loss of data blist/_blist.c(1812): warning C4244: 'function': conversion from 'Py_ssize_t' to 'unsigned int', possible loss of data blist/_blist.c(2003): warning C4244: 'function': conversion from 'Py_ssize_t' to 'unsigned int', possible loss of data blist/_blist.c(2536): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(2543): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(2567): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(2569): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(2625): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(2859): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(3046): warning C4244: 'function': conversion from 'Py_ssize_t' to 'long', possible loss of data blist/_blist.c(3043): warning C4244: 'initializing': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(3115): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(3197): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(3257): warning C4244: 'function': conversion from 'Py_ssize_t' to 'long', possible loss of data blist/_blist.c(3541): warning C4244: '=': conversion from 'Py_ssize_t' to 'unsigned int', possible loss of data blist/_blist.c(3554): warning C4244: '=': conversion from 'Py_ssize_t' to 'unsigned int', possible loss of data blist/_blist.c(3643): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(3676): warning C4244: '=': conversion from '__int64' to 'int', possible loss of data blist/_blist.c(4305): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(4308): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(4310): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(4329): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(4330): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(4437): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5008): warning C4244: 'initializing': conversion from '__int64' to 'int', possible loss of data blist/_blist.c(5145): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5148): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5159): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5180): warning C4244: 'return': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5239): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5243): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5244): warning C4244: '-=': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5246): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5253): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5254): warning C4244: '-=': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5256): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5262): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5282): warning C4244: 'return': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5551): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5582): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5590): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5601): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5602): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5892): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5894): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5895): warning C4244: '+=': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5896): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5958): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5994): error C2121: '#': invalid character: possibly the result of a macro expansion blist/_blist.c(5994): error C2065: 'endif': undeclared identifier blist/_blist.c(5994): warning C4047: 'function': 'Py_ssize_t *' differs in levels of indirection from 'Py_ssize_t' blist/_blist.c(5994): warning C4024: 'PySlice_Unpack': different types for formal and actual parameter 2 blist/_blist.c(5994): warning C4024: 'PySlice_AdjustIndices': different types for formal and actual parameter 2 blist/_blist.c(6216): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(6217): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(6323): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(6324): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(6325): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(6614): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(6883): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(6963): error C2121: '#': invalid character: possibly the result of a macro expansion blist/_blist.c(6963): error C2065: 'endif': undeclared identifier blist/_blist.c(6963): warning C4047: 'function': 'Py_ssize_t *' differs in levels of indirection from 'Py_ssize_t' blist/_blist.c(6963): warning C4024: 'PySlice_Unpack': different types for formal and actual parameter 2 blist/_blist.c(6963): warning C4024: 'PySlice_AdjustIndices': different types for formal and actual parameter 2 blist/_blist.c(7073): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(7742): fatal error C1070: mismatched #if/#endif pair in file 'c:\users\admin\appdata\local\temp\pip-install-bza_1ugc\blist\blist\_blist.c' error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\BuildTools\\VC\\Tools\\MSVC\\14.16.27023\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2 ---------------------------------------- Failed building wheel for blist Running setup.py clean for blist Failed to build blist Installing collected packages: blist Running setup.py install for blist ... error Complete output from command c:\users\admin\envs\adventofcode2018\scripts\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\Admin\\AppData\\Local\\Temp\\pip-install-bza_1ugc\\blist\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\Admin\AppData\Local\Temp\pip-record-3yncsxoj\install-record.txt --single-version-externally-managed --compile --install-headers c:\users\admin\envs\adventofcode2018\include\site\python3.7\blist: running install running build running build_py creating build creating build\lib.win-amd64-3.7 creating build\lib.win-amd64-3.7\blist copying blist\_btuple.py -> build\lib.win-amd64-3.7\blist copying blist\_sorteddict.py -> build\lib.win-amd64-3.7\blist copying blist\_sortedlist.py -> build\lib.win-amd64-3.7\blist copying blist\__init__.py -> build\lib.win-amd64-3.7\blist running build_ext building 'blist._blist' extension creating build\temp.win-amd64-3.7 creating build\temp.win-amd64-3.7\Release creating build\temp.win-amd64-3.7\Release\blist C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DBLIST_FLOAT_RADIX_SORT=1 "-Ic:\program files\python37\include" "-Ic:\program files\python37\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\cppwinrt" /Tcblist/_blist.c /Fobuild\temp.win-amd64-3.7\Release\blist/_blist.obj _blist.c blist/_blist.c(1525): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(1537): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(1717): warning C4244: 'function': conversion from 'Py_ssize_t' to 'unsigned int', possible loss of data blist/_blist.c(1812): warning C4244: 'function': conversion from 'Py_ssize_t' to 'unsigned int', possible loss of data blist/_blist.c(2003): warning C4244: 'function': conversion from 'Py_ssize_t' to 'unsigned int', possible loss of data blist/_blist.c(2536): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(2543): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(2567): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(2569): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(2625): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(2859): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(3046): warning C4244: 'function': conversion from 'Py_ssize_t' to 'long', possible loss of data blist/_blist.c(3043): warning C4244: 'initializing': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(3115): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(3197): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(3257): warning C4244: 'function': conversion from 'Py_ssize_t' to 'long', possible loss of data blist/_blist.c(3541): warning C4244: '=': conversion from 'Py_ssize_t' to 'unsigned int', possible loss of data blist/_blist.c(3554): warning C4244: '=': conversion from 'Py_ssize_t' to 'unsigned int', possible loss of data blist/_blist.c(3643): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(3676): warning C4244: '=': conversion from '__int64' to 'int', possible loss of data blist/_blist.c(4305): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(4308): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(4310): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(4329): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(4330): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(4437): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5008): warning C4244: 'initializing': conversion from '__int64' to 'int', possible loss of data blist/_blist.c(5145): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5148): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5159): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5180): warning C4244: 'return': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5239): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5243): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5244): warning C4244: '-=': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5246): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5253): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5254): warning C4244: '-=': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5256): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5262): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5282): warning C4244: 'return': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5551): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5582): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5590): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5601): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5602): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5892): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5894): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5895): warning C4244: '+=': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5896): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5958): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(5994): error C2121: '#': invalid character: possibly the result of a macro expansion blist/_blist.c(5994): error C2065: 'endif': undeclared identifier blist/_blist.c(5994): warning C4047: 'function': 'Py_ssize_t *' differs in levels of indirection from 'Py_ssize_t' blist/_blist.c(5994): warning C4024: 'PySlice_Unpack': different types for formal and actual parameter 2 blist/_blist.c(5994): warning C4024: 'PySlice_AdjustIndices': different types for formal and actual parameter 2 blist/_blist.c(6216): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(6217): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(6323): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(6324): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(6325): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(6614): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(6883): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(6963): error C2121: '#': invalid character: possibly the result of a macro expansion blist/_blist.c(6963): error C2065: 'endif': undeclared identifier blist/_blist.c(6963): warning C4047: 'function': 'Py_ssize_t *' differs in levels of indirection from 'Py_ssize_t' blist/_blist.c(6963): warning C4024: 'PySlice_Unpack': different types for formal and actual parameter 2 blist/_blist.c(6963): warning C4024: 'PySlice_AdjustIndices': different types for formal and actual parameter 2 blist/_blist.c(7073): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data blist/_blist.c(7742): fatal error C1070: mismatched #if/#endif pair in file 'c:\users\admin\appdata\local\temp\pip-install-bza_1ugc\blist\blist\_blist.c' error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\BuildTools\\VC\\Tools\\MSVC\\14.16.27023\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2 ---------------------------------------- Command "c:\users\admin\envs\adventofcode2018\scripts\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\Admin\\AppData\\Local\\Temp\\pip-install-bza_1ugc\\blist\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\Admin\AppData\Local\Temp\pip-record-3yncsxoj\install-record.txt --single-version-externally-managed --compile --install-headers c:\users\admin\envs\adventofcode2018\include\site\python3.7\blist" failed with error code 1 in C:\Users\Admin\AppData\Local\Temp\pip-install-bza_1ugc\blist\ ```
zetaraku commented 4 years ago

I was experiencing the same error during my building process.

The real problem causing the process to fail is nearby these lines:

...
blist/_blist.c(5994): error C2121: '#': invalid character: possibly the result of a macro expansion
blist/_blist.c(5994): error C2065: 'endif': undeclared identifier
...
blist/_blist.c(6963): error C2121: '#': invalid character: possibly the result of a macro expansion
blist/_blist.c(6963): error C2065: 'endif': undeclared identifier
...

It seems that the macros here are not expanded by the preprocessor before the code compiles. I don't know why but here is the corresponding source code, hope someone can help:

https://github.com/DanielStutzbach/blist/blob/0ed541a5f5fce18b3a8535d32ec64eef78485044/blist/_blist.c#L5989-L5993 https://github.com/DanielStutzbach/blist/blob/0ed541a5f5fce18b3a8535d32ec64eef78485044/blist/_blist.c#L6958-L6962