vaexio / vaex

Out-of-Core hybrid Apache Arrow/NumPy DataFrame for Python, ML, visualization and exploration of big tabular data at a billion rows per second 🚀
https://vaex.io
MIT License
8.22k stars 589 forks source link

[BUG-REPORT] pip install vaex-core==4.16.1 on Linux leads to build failure with gcc 13.1.1 #2382

Open Mortal opened 12 months ago

Mortal commented 12 months ago

When I try to run pip install vaex in a fresh virtualenv on Python 3.11.3, Arch Linux, running gcc 13.1.1, I get the following build failure when trying to build vaex-core==4.16.1:

  building 'vaex.superstrings' extension
  gcc -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -g -ffile-prefix-map=/build/python/src=/usr/src/debug/python -flto=auto -ffat-lto-objects -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -g -ffile-prefix-map=/build/python/src=/usr/src/debug/python -flto=auto -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -g -ffile-prefix-map=/build/python/src=/usr/src/debug/python -flto=auto -fPIC -I/tmp/pip-build-env-5_4um6a5/overlay/lib/python3.11/site-packages/numpy/core/include -Ivendor/pybind11/include -Ivendor/pybind11/include -Ivendor/string-view-lite/include -Ivendor/boost -I.venv/include -I.venv/Library/include -I/tmp/pip-install-glb_ywl6/vaex-core_90c85da07235445f8a1d4c7fd6de4efc/vendor/pcre/Library/include -I.venv/include -I/usr/include/python3.11 -c src/string_utils.cpp -o build/temp.linux-x86_64-cpython-311/src/string_utils.o -std=c++11 -O3 -funroll-loops -Werror=return-type -Wno-unused-parameter -g
  In file included from src/string_utils.cpp:3:
  src/string_utils.hpp:8:14: error: ‘uint8_t’ does not name a type
      8 | extern const uint8_t category_index[CHARS >> 8];
        |              ^~~~~~~
  src/string_utils.hpp:4:1: note: ‘uint8_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
      3 | #include <regex>
    +++ |+#include <cstdint>
      4 |

I have encountered similar errors in other C++ projects after I updated to gcc 13, in which version they reshuffled some C++ standard library files, meaning you now need to include certain header files that were previously implicitly included.

ddelange commented 8 months ago

https://github.com/vaexio/vaex/pull/2331 bumps the wheel builds to gcc 12