Skip to content

simdjson requires a compiler compliant with the C++11 standard #127

@nineteendo

Description

@nineteendo

I can't install #124 on macOS:

$ pip install git+https://github.com/TkTech/pysimdjson@draft_7 -v
Using pip 25.0.1 from /usr/local/lib/python3.13/site-packages/pip (python 3.13)
Collecting git+https://github.com/TkTech/pysimdjson@draft_7
  Cloning https://github.com/TkTech/pysimdjson (to revision draft_7) to /private/var/folders/q6/k4kvhdds6zxg_d2b3mhdck0c0000gp/T/pip-req-build-4i9v5t5z
  Running command git version
  git version 2.39.3 (Apple Git-145)
  Running command git clone --filter=blob:none https://github.com/TkTech/pysimdjson /private/var/folders/q6/k4kvhdds6zxg_d2b3mhdck0c0000gp/T/pip-req-build-4i9v5t5z
  Cloning into '/private/var/folders/q6/k4kvhdds6zxg_d2b3mhdck0c0000gp/T/pip-req-build-4i9v5t5z'...
  Updating files:  96% (393/408)
  Updating files:  97% (396/408)
  Updating files:  98% (400/408)
  Updating files:  99% (404/408)
  Updating files: 100% (408/408)
  Updating files: 100% (408/408), done.
  Running command git show-ref draft_7
  c6f89f99b77e31a3bce0bb10da9977b6a4306822 refs/remotes/origin/draft_7
  Running command git symbolic-ref -q HEAD
  refs/heads/master
  Running command git checkout -b draft_7 --track origin/draft_7
  Switched to a new branch 'draft_7'
  branch 'draft_7' set up to track 'origin/draft_7'.
  Resolved https://github.com/TkTech/pysimdjson to commit c6f89f99b77e31a3bce0bb10da9977b6a4306822
  Running command git rev-parse HEAD
  c6f89f99b77e31a3bce0bb10da9977b6a4306822
  Running command pip subprocess to install build dependencies
  Using pip 25.0.1 from /usr/local/lib/python3.13/site-packages/pip (python 3.13)
  Collecting setuptools>=74.1
    Obtaining dependency information for setuptools>=74.1 from https://files.pythonhosted.org/packages/90/99/158ad0609729111163fc1f674a5a42f2605371a4cf036d0441070e2f7455/setuptools-78.1.1-py3-none-any.whl.metadata
    Using cached setuptools-78.1.1-py3-none-any.whl.metadata (6.5 kB)
  Collecting Cython
    Obtaining dependency information for Cython from https://files.pythonhosted.org/packages/67/ad/550ddcb8b5a5d9949fe6606595cce36984c1d42309f1e04af98f5933a7ea/Cython-3.0.12-cp313-cp313-macosx_10_13_x86_64.whl.metadata
    Using cached Cython-3.0.12-cp313-cp313-macosx_10_13_x86_64.whl.metadata (3.5 kB)
  Using cached setuptools-78.1.1-py3-none-any.whl (1.3 MB)
  Using cached Cython-3.0.12-cp313-cp313-macosx_10_13_x86_64.whl (3.4 MB)
  Installing collected packages: setuptools, Cython
    Creating /private/var/folders/q6/k4kvhdds6zxg_d2b3mhdck0c0000gp/T/pip-build-env-7ctqlx2h/overlay/bin
    changing mode of /private/var/folders/q6/k4kvhdds6zxg_d2b3mhdck0c0000gp/T/pip-build-env-7ctqlx2h/overlay/bin/cygdb to 755
    changing mode of /private/var/folders/q6/k4kvhdds6zxg_d2b3mhdck0c0000gp/T/pip-build-env-7ctqlx2h/overlay/bin/cython to 755
    changing mode of /private/var/folders/q6/k4kvhdds6zxg_d2b3mhdck0c0000gp/T/pip-build-env-7ctqlx2h/overlay/bin/cythonize to 755
  Successfully installed Cython-3.0.12 setuptools-78.1.1
  Installing build dependencies ... done
  Running command Getting requirements to build wheel
  /private/var/folders/q6/k4kvhdds6zxg_d2b3mhdck0c0000gp/T/pip-build-env-7ctqlx2h/overlay/lib/python3.13/site-packages/setuptools/config/pyprojecttoml.py:72: _ExperimentalConfiguration: `[tool.setuptools.ext-modules]` in `pyproject.toml` is still *experimental* and likely to change in future releases.
    config = read_configuration(filepath, True, ignore_option_errors, dist)
  running egg_info
  creating pysimdjson.egg-info
  writing pysimdjson.egg-info/PKG-INFO
  writing dependency_links to pysimdjson.egg-info/dependency_links.txt
  writing requirements to pysimdjson.egg-info/requires.txt
  writing top-level names to pysimdjson.egg-info/top_level.txt
  writing manifest file 'pysimdjson.egg-info/SOURCES.txt'
  reading manifest file 'pysimdjson.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  adding license file 'LICENSE'
  writing manifest file 'pysimdjson.egg-info/SOURCES.txt'
  Getting requirements to build wheel ... done
  Running command Preparing metadata (pyproject.toml)
  /private/var/folders/q6/k4kvhdds6zxg_d2b3mhdck0c0000gp/T/pip-build-env-7ctqlx2h/overlay/lib/python3.13/site-packages/setuptools/config/pyprojecttoml.py:72: _ExperimentalConfiguration: `[tool.setuptools.ext-modules]` in `pyproject.toml` is still *experimental* and likely to change in future releases.
    config = read_configuration(filepath, True, ignore_option_errors, dist)
  running dist_info
  creating /private/var/folders/q6/k4kvhdds6zxg_d2b3mhdck0c0000gp/T/pip-modern-metadata-e2ohmivk/pysimdjson.egg-info
  writing /private/var/folders/q6/k4kvhdds6zxg_d2b3mhdck0c0000gp/T/pip-modern-metadata-e2ohmivk/pysimdjson.egg-info/PKG-INFO
  writing dependency_links to /private/var/folders/q6/k4kvhdds6zxg_d2b3mhdck0c0000gp/T/pip-modern-metadata-e2ohmivk/pysimdjson.egg-info/dependency_links.txt
  writing requirements to /private/var/folders/q6/k4kvhdds6zxg_d2b3mhdck0c0000gp/T/pip-modern-metadata-e2ohmivk/pysimdjson.egg-info/requires.txt
  writing top-level names to /private/var/folders/q6/k4kvhdds6zxg_d2b3mhdck0c0000gp/T/pip-modern-metadata-e2ohmivk/pysimdjson.egg-info/top_level.txt
  writing manifest file '/private/var/folders/q6/k4kvhdds6zxg_d2b3mhdck0c0000gp/T/pip-modern-metadata-e2ohmivk/pysimdjson.egg-info/SOURCES.txt'
  reading manifest file '/private/var/folders/q6/k4kvhdds6zxg_d2b3mhdck0c0000gp/T/pip-modern-metadata-e2ohmivk/pysimdjson.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  adding license file 'LICENSE'
  writing manifest file '/private/var/folders/q6/k4kvhdds6zxg_d2b3mhdck0c0000gp/T/pip-modern-metadata-e2ohmivk/pysimdjson.egg-info/SOURCES.txt'
  creating '/private/var/folders/q6/k4kvhdds6zxg_d2b3mhdck0c0000gp/T/pip-modern-metadata-e2ohmivk/pysimdjson-7.0.0.dist-info'
  Preparing metadata (pyproject.toml) ... done
Building wheels for collected packages: pysimdjson
  Running command git rev-parse HEAD
  c6f89f99b77e31a3bce0bb10da9977b6a4306822
  Running command Building wheel for pysimdjson (pyproject.toml)
  /private/var/folders/q6/k4kvhdds6zxg_d2b3mhdck0c0000gp/T/pip-build-env-7ctqlx2h/overlay/lib/python3.13/site-packages/setuptools/config/pyprojecttoml.py:72: _ExperimentalConfiguration: `[tool.setuptools.ext-modules]` in `pyproject.toml` is still *experimental* and likely to change in future releases.
    config = read_configuration(filepath, True, ignore_option_errors, dist)
  running bdist_wheel
  running build
  running build_py
  creating build/lib.macosx-13.0-x86_64-cpython-313/simdjson
  copying simdjson/__init__.py -> build/lib.macosx-13.0-x86_64-cpython-313/simdjson
  running egg_info
  writing pysimdjson.egg-info/PKG-INFO
  writing dependency_links to pysimdjson.egg-info/dependency_links.txt
  writing requirements to pysimdjson.egg-info/requires.txt
  writing top-level names to pysimdjson.egg-info/top_level.txt
  reading manifest file 'pysimdjson.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  adding license file 'LICENSE'
  writing manifest file 'pysimdjson.egg-info/SOURCES.txt'
  copying simdjson/__init__.pyi -> build/lib.macosx-13.0-x86_64-cpython-313/simdjson
  copying simdjson/csimdjson.pyx -> build/lib.macosx-13.0-x86_64-cpython-313/simdjson
  copying simdjson/py.typed -> build/lib.macosx-13.0-x86_64-cpython-313/simdjson
  copying simdjson/simdjson.cpp -> build/lib.macosx-13.0-x86_64-cpython-313/simdjson
  copying simdjson/simdjson.h -> build/lib.macosx-13.0-x86_64-cpython-313/simdjson
  copying simdjson/util.cpp -> build/lib.macosx-13.0-x86_64-cpython-313/simdjson
  copying simdjson/util.h -> build/lib.macosx-13.0-x86_64-cpython-313/simdjson
  running build_ext
  Compiling simdjson/csimdjson.pyx because it changed.
  [1/1] Cythonizing simdjson/csimdjson.pyx
  building 'csimdjson' extension
  creating build/temp.macosx-13.0-x86_64-cpython-313/simdjson
  clang++ -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk -I/usr/local/opt/python@3.13/Frameworks/Python.framework/Versions/3.13/include/python3.13 -c simdjson/csimdjson.cpp -o build/temp.macosx-13.0-x86_64-cpython-313/simdjson/csimdjson.o
  In file included from simdjson/csimdjson.cpp:1265:
  In file included from simdjson/util.h:3:
  simdjson/simdjson.h:89:2: error: simdjson requires a compiler compliant with the C++11 standard
  #error simdjson requires a compiler compliant with the C++11 standard
   ^
  simdjson/simdjson.h:391:38: error: expected function body after function declarator
  double from_chars(const char *first) noexcept;
                                       ^
  simdjson/simdjson.h:392:55: error: expected function body after function declarator
  double from_chars(const char *first, const char* end) noexcept;
                                                        ^
  simdjson/simdjson.h:2546:52: error: expected function body after function declarator
  inline const char *error_message(error_code error) noexcept;
                                                     ^
  simdjson/simdjson.h:2551:70: error: expected function body after function declarator
  inline std::ostream& operator<<(std::ostream& out, error_code error) noexcept;
                                                                       ^
  simdjson/simdjson.h:2561:35: error: expected ';' at end of declaration list
    simdjson_error(error_code error) noexcept : _error{error} { }
                                    ^
                                    ;
  simdjson/simdjson.h:2599:41: error: expected ';' at end of declaration list
    simdjson_inline simdjson_result_base() noexcept;
                                          ^
                                          ;
  simdjson/simdjson.h:2604:57: error: expected ';' at end of declaration list
    simdjson_inline simdjson_result_base(error_code error) noexcept;
                                                          ^
                                                          ;
  simdjson/simdjson.h:2609:42: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
    simdjson_inline simdjson_result_base(T &&value) noexcept;
                                           ^
  simdjson/simdjson.h:2609:50: error: expected ';' at end of declaration list
    simdjson_inline simdjson_result_base(T &&value) noexcept;
                                                   ^
                                                   ;
  simdjson/simdjson.h:2614:42: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
    simdjson_inline simdjson_result_base(T &&value, error_code error) noexcept;
                                           ^
  simdjson/simdjson.h:2614:68: error: expected ';' at end of declaration list
    simdjson_inline simdjson_result_base(T &&value, error_code error) noexcept;
                                                                     ^
                                                                     ;
  simdjson/simdjson.h:2622:57: warning: reference qualifiers on functions are a C++11 extension [-Wc++11-extensions]
    simdjson_inline void tie(T &value, error_code &error) && noexcept;
                                                          ^
  simdjson/simdjson.h:2622:59: error: expected ';' at end of declaration list
    simdjson_inline void tie(T &value, error_code &error) && noexcept;
                                                            ^
                                                            ;
  simdjson/simdjson.h:2629:44: warning: reference qualifiers on functions are a C++11 extension [-Wc++11-extensions]
    simdjson_inline error_code get(T &value) && noexcept;
                                             ^
  simdjson/simdjson.h:2629:46: error: expected ';' at end of declaration list
    simdjson_inline error_code get(T &value) && noexcept;
                                               ^
                                               ;
  simdjson/simdjson.h:2634:43: error: expected ';' at end of declaration list
    simdjson_inline error_code error() const noexcept;
                                            ^
                                            ;
  simdjson/simdjson.h:2643:30: warning: reference qualifiers on functions are a C++11 extension [-Wc++11-extensions]
    simdjson_inline T& value() & noexcept(false);
                               ^
  simdjson/simdjson.h:2643:31: error: expected ';' at end of declaration list
    simdjson_inline T& value() & noexcept(false);
                                ^
                                ;
  simdjson/simdjson.h:2650:20: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
    simdjson_inline T&& value() && noexcept(false);
                     ^
  simdjson/simdjson.h:2650:31: warning: reference qualifiers on functions are a C++11 extension [-Wc++11-extensions]
    simdjson_inline T&& value() && noexcept(false);
                                ^
  simdjson/simdjson.h:2650:33: error: expected ';' at end of declaration list
    simdjson_inline T&& value() && noexcept(false);
                                  ^
                                  ;
  simdjson/simdjson.h:2657:20: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
    simdjson_inline T&& take_value() && noexcept(false);
                     ^
  simdjson/simdjson.h:2657:36: warning: reference qualifiers on functions are a C++11 extension [-Wc++11-extensions]
    simdjson_inline T&& take_value() && noexcept(false);
                                     ^
  simdjson/simdjson.h:2657:38: error: expected ';' at end of declaration list
    simdjson_inline T&& take_value() && noexcept(false);
                                       ^
                                       ;
  simdjson/simdjson.h:2664:19: error: 'operator type-parameter-0-0' cannot be the name of a variable or data member
    simdjson_inline operator T&&() && noexcept(false);
                    ^
  simdjson/simdjson.h:2664:29: error: expected ';' at end of declaration list
    simdjson_inline operator T&&() && noexcept(false);
                              ^
                              ;
  simdjson/simdjson.h:2671:48: warning: reference qualifiers on functions are a C++11 extension [-Wc++11-extensions]
    simdjson_inline const T& value_unsafe() const& noexcept;
                                                 ^
  simdjson/simdjson.h:2671:49: error: expected ';' at end of declaration list
    simdjson_inline const T& value_unsafe() const& noexcept;
                                                  ^
                                                  ;
  simdjson/simdjson.h:2677:20: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
    simdjson_inline T&& value_unsafe() && noexcept;
                     ^
  simdjson/simdjson.h:2677:38: warning: reference qualifiers on functions are a C++11 extension [-Wc++11-extensions]
    simdjson_inline T&& value_unsafe() && noexcept;
                                       ^
  fatal error: too many errors emitted, stopping now [-ferror-limit=]
  12 warnings and 20 errors generated.
  error: command '/usr/bin/clang++' failed with exit code 1
  error: subprocess-exited-with-error
  
  × Building wheel for pysimdjson (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> See above for output.
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  full command: /usr/local/opt/python@3.13/bin/python3.13 /usr/local/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py build_wheel /var/folders/q6/k4kvhdds6zxg_d2b3mhdck0c0000gp/T/tmpjz10ndxc
  cwd: /private/var/folders/q6/k4kvhdds6zxg_d2b3mhdck0c0000gp/T/pip-req-build-4i9v5t5z
  Building wheel for pysimdjson (pyproject.toml) ... error
  ERROR: Failed building wheel for pysimdjson
Failed to build pysimdjson
ERROR: Failed to build installable wheels for some pyproject.toml based projects (pysimdjson)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions