explosion / cython-blis

💥 Fast matrix-multiplication as a self-contained Python library – no system dependencies!
Other
218 stars 37 forks source link

error whille building on M2 ARM Mac: expression is not assignable ++Py_REFCNT(o) #80

Open DSLituiev opened 1 year ago

DSLituiev commented 1 year ago

I am trying to install / build blis on Mac M2 and running into such an issue:

Compiler gcc
            building 'blis.cy' extension
            creating build/temp.macosx-10.9-x86_64-3.10
            creating build/temp.macosx-10.9-x86_64-3.10/blis
            clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O2 -Wall -fPIC -O2 -isystem /Users/dlituiev/opt/anaconda3/envs/spacy3/include -fPIC -O2 -isystem /Users/dlituiev/opt/anaconda3/envs/spacy3/include -I/private/var/folders/qz/tt8wl6hn2cs6rw77r5mcmll00000gp/T/pip-install-tqzt5dlh/blis_e4a4e54f5c374774981f6ecff79be5af/include -I/private/var/folders/qz/tt8wl6hn2cs6rw77r5mcmll00000gp/T/pip-install-tqzt5dlh/blis_e4a4e54f5c374774981f6ecff79be5af/blis/_src/include/darwin-x86_64 -I/Users/dlituiev/.virtualenvs/clinspacy/include -I/Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10 -c blis/cy.c -o build/temp.macosx-10.9-x86_64-3.10/blis/cy.o -std=c99
[...]
           executed [-Wunreachable-code]
                  PyErr_SetNone(PyExc_AssertionError);
                  ^~~~~~~~~~~~~
            blis/cy.c:2626:7: warning: code will never be executed [-Wunreachable-code]
                  PyErr_SetNone(PyExc_AssertionError);
                  ^~~~~~~~~~~~~
            blis/cy.c:2642:7: warning: code will never be executed [-Wunreachable-code]
                  PyErr_SetNone(PyExc_AssertionError);
                  ^~~~~~~~~~~~~
            blis/cy.c:2658:7: warning: code will never be executed [-Wunreachable-code]
                  PyErr_SetNone(PyExc_AssertionError);
                  ^~~~~~~~~~~~~
            blis/cy.c:2674:7: warning: code will never be executed [-Wunreachable-code]
                  PyErr_SetNone(PyExc_AssertionError);
                  ^~~~~~~~~~~~~
            blis/cy.c:2690:7: warning: code will never be executed [-Wunreachable-code]
                  PyErr_SetNone(PyExc_AssertionError);
                  ^~~~~~~~~~~~~
            blis/cy.c:2706:7: warning: code will never be executed [-Wunreachable-code]
                  PyErr_SetNone(PyExc_AssertionError);
                  ^~~~~~~~~~~~~
            blis/cy.c:2722:7: warning: code will never be executed [-Wunreachable-code]
                  PyErr_SetNone(PyExc_AssertionError);
                  ^~~~~~~~~~~~~
            blis/cy.c:2738:7: warning: code will never be executed [-Wunreachable-code]
                  PyErr_SetNone(PyExc_AssertionError);
                  ^~~~~~~~~~~~~
            blis/cy.c:5816:3: warning: code will never be executed [-Wunreachable-code]
              goto __pyx_L0;
              ^~~~~~~~~~~~~
            blis/cy.c:5947:3: warning: code will never be executed [-Wunreachable-code]
              goto __pyx_L0;
              ^~~~~~~~~~~~~
            blis/cy.c:20514:5: error: expression is not assignable
                ++Py_REFCNT(o);
                ^ ~~~~~~~~~~~~
            blis/cy.c:20516:5: error: expression is not assignable
                --Py_REFCNT(o);
                ^ ~~~~~~~~~~~~
            blis/cy.c:20809:5: error: expression is not assignable
                ++Py_REFCNT(o);
                ^ ~~~~~~~~~~~~
            blis/cy.c:20811:5: error: expression is not assignable
                --Py_REFCNT(o);
                ^ ~~~~~~~~~~~~
            blis/cy.c:21051:5: error: expression is not assignable
                ++Py_REFCNT(o);
                ^ ~~~~~~~~~~~~
            blis/cy.c:21053:5: error: expression is not assignable
                --Py_REFCNT(o);
                ^ ~~~~~~~~~~~~
[...]

            blis/cy.c:24316:22: warning: '_PyUnicode_get_wstr_length' is deprecated [-Wdeprecated-declarations]
                                (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
                                 ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/cpython/unicodeobject.h:261:7: note: expanded from macro 'PyUnicode_GET_SIZE'
                  PyUnicode_WSTR_LENGTH(op) :                    \
                  ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/cpython/unicodeobject.h:451:35: note: expanded from macro 'PyUnicode_WSTR_LENGTH'
            #define PyUnicode_WSTR_LENGTH(op) _PyUnicode_get_wstr_length((PyObject*)op)
                                              ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/cpython/unicodeobject.h:445:1: note: '_PyUnicode_get_wstr_length' has been explicitly marked deprecated here
            Py_DEPRECATED(3.3)
            ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
            #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                                 ^
            blis/cy.c:24316:22: warning: 'PyUnicode_AsUnicode' is deprecated [-Wdeprecated-declarations]
                                (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
                                 ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/cpython/unicodeobject.h:262:14: note: expanded from macro 'PyUnicode_GET_SIZE'
                  ((void)PyUnicode_AsUnicode(_PyObject_CAST(op)),\
                         ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/cpython/unicodeobject.h:580:1: note: 'PyUnicode_AsUnicode' has been explicitly marked deprecated here
            Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode(
            ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
            #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                                 ^
            blis/cy.c:24316:22: warning: '_PyUnicode_get_wstr_length' is deprecated [-Wdeprecated-declarations]
                                (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
                                 ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/cpython/unicodeobject.h:264:8: note: expanded from macro 'PyUnicode_GET_SIZE'
                   PyUnicode_WSTR_LENGTH(op)))
                   ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/cpython/unicodeobject.h:451:35: note: expanded from macro 'PyUnicode_WSTR_LENGTH'
            #define PyUnicode_WSTR_LENGTH(op) _PyUnicode_get_wstr_length((PyObject*)op)
                                              ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/cpython/unicodeobject.h:445:1: note: '_PyUnicode_get_wstr_length' has been explicitly marked deprecated here
            Py_DEPRECATED(3.3)
            ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
            #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                                 ^
            blis/cy.c:24316:52: warning: '_PyUnicode_get_wstr_length' is deprecated [-Wdeprecated-declarations]
                                (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
                                                               ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/cpython/unicodeobject.h:261:7: note: expanded from macro 'PyUnicode_GET_SIZE'
                  PyUnicode_WSTR_LENGTH(op) :                    \
                  ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/cpython/unicodeobject.h:451:35: note: expanded from macro 'PyUnicode_WSTR_LENGTH'
            #define PyUnicode_WSTR_LENGTH(op) _PyUnicode_get_wstr_length((PyObject*)op)
                                              ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/cpython/unicodeobject.h:445:1: note: '_PyUnicode_get_wstr_length' has been explicitly marked deprecated here
            Py_DEPRECATED(3.3)
            ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
            #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                                 ^
            blis/cy.c:24316:52: warning: 'PyUnicode_AsUnicode' is deprecated [-Wdeprecated-declarations]
                                (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
                                                               ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/cpython/unicodeobject.h:262:14: note: expanded from macro 'PyUnicode_GET_SIZE'
                  ((void)PyUnicode_AsUnicode(_PyObject_CAST(op)),\
                         ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/cpython/unicodeobject.h:580:1: note: 'PyUnicode_AsUnicode' has been explicitly marked deprecated here
            Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode(
            ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
            #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                                 ^
            blis/cy.c:24316:52: warning: '_PyUnicode_get_wstr_length' is deprecated [-Wdeprecated-declarations]
                                (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
                                                               ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/cpython/unicodeobject.h:264:8: note: expanded from macro 'PyUnicode_GET_SIZE'
                   PyUnicode_WSTR_LENGTH(op)))
                   ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/cpython/unicodeobject.h:451:35: note: expanded from macro 'PyUnicode_WSTR_LENGTH'
            #define PyUnicode_WSTR_LENGTH(op) _PyUnicode_get_wstr_length((PyObject*)op)
                                              ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/cpython/unicodeobject.h:445:1: note: '_PyUnicode_get_wstr_length' has been explicitly marked deprecated here
            Py_DEPRECATED(3.3)
            ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
            #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                                 ^
            blis/cy.c:24332:26: warning: '_PyUnicode_get_wstr_length' is deprecated [-Wdeprecated-declarations]
                                    (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
                                     ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/cpython/unicodeobject.h:261:7: note: expanded from macro 'PyUnicode_GET_SIZE'
                  PyUnicode_WSTR_LENGTH(op) :                    \
                  ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/cpython/unicodeobject.h:451:35: note: expanded from macro 'PyUnicode_WSTR_LENGTH'
            #define PyUnicode_WSTR_LENGTH(op) _PyUnicode_get_wstr_length((PyObject*)op)
                                              ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/cpython/unicodeobject.h:445:1: note: '_PyUnicode_get_wstr_length' has been explicitly marked deprecated here
            Py_DEPRECATED(3.3)
            ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
            #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                                 ^
            blis/cy.c:24332:26: warning: 'PyUnicode_AsUnicode' is deprecated [-Wdeprecated-declarations]
                                    (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
                                     ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/cpython/unicodeobject.h:262:14: note: expanded from macro 'PyUnicode_GET_SIZE'
                  ((void)PyUnicode_AsUnicode(_PyObject_CAST(op)),\
                         ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/cpython/unicodeobject.h:580:1: note: 'PyUnicode_AsUnicode' has been explicitly marked deprecated here
            Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode(
            ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
            #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                                 ^
            blis/cy.c:24332:26: warning: '_PyUnicode_get_wstr_length' is deprecated [-Wdeprecated-declarations]
                                    (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
                                     ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/cpython/unicodeobject.h:264:8: note: expanded from macro 'PyUnicode_GET_SIZE'
                   PyUnicode_WSTR_LENGTH(op)))
                   ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/cpython/unicodeobject.h:451:35: note: expanded from macro 'PyUnicode_WSTR_LENGTH'
            #define PyUnicode_WSTR_LENGTH(op) _PyUnicode_get_wstr_length((PyObject*)op)
                                              ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/cpython/unicodeobject.h:445:1: note: '_PyUnicode_get_wstr_length' has been explicitly marked deprecated here
            Py_DEPRECATED(3.3)
            ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
            #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                                 ^
            blis/cy.c:24332:59: warning: '_PyUnicode_get_wstr_length' is deprecated [-Wdeprecated-declarations]
                                    (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
                                                                      ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/cpython/unicodeobject.h:261:7: note: expanded from macro 'PyUnicode_GET_SIZE'
                  PyUnicode_WSTR_LENGTH(op) :                    \
                  ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/cpython/unicodeobject.h:451:35: note: expanded from macro 'PyUnicode_WSTR_LENGTH'
            #define PyUnicode_WSTR_LENGTH(op) _PyUnicode_get_wstr_length((PyObject*)op)
                                              ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/cpython/unicodeobject.h:445:1: note: '_PyUnicode_get_wstr_length' has been explicitly marked deprecated here
            Py_DEPRECATED(3.3)
            ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
            #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                                 ^
            blis/cy.c:24332:59: warning: 'PyUnicode_AsUnicode' is deprecated [-Wdeprecated-declarations]
                                    (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
                                                                      ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/cpython/unicodeobject.h:262:14: note: expanded from macro 'PyUnicode_GET_SIZE'
                  ((void)PyUnicode_AsUnicode(_PyObject_CAST(op)),\
                         ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/cpython/unicodeobject.h:580:1: note: 'PyUnicode_AsUnicode' has been explicitly marked deprecated here
            Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode(
            ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
            #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                                 ^
            blis/cy.c:24332:59: warning: '_PyUnicode_get_wstr_length' is deprecated [-Wdeprecated-declarations]
                                    (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
                                                                      ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/cpython/unicodeobject.h:264:8: note: expanded from macro 'PyUnicode_GET_SIZE'
                   PyUnicode_WSTR_LENGTH(op)))
                   ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/cpython/unicodeobject.h:451:35: note: expanded from macro 'PyUnicode_WSTR_LENGTH'
            #define PyUnicode_WSTR_LENGTH(op) _PyUnicode_get_wstr_length((PyObject*)op)
                                              ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/cpython/unicodeobject.h:445:1: note: '_PyUnicode_get_wstr_length' has been explicitly marked deprecated here
            Py_DEPRECATED(3.3)
            ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
            #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                                 ^
            blis/cy.c:25165:16: warning: 'PyUnicode_FromUnicode' is deprecated [-Wdeprecated-declarations]
                    return PyUnicode_FromUnicode(NULL, 0);
                           ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/cpython/unicodeobject.h:551:1: note: 'PyUnicode_FromUnicode' has been explicitly marked deprecated here
            Py_DEPRECATED(3.3) PyAPI_FUNC(PyObject*) PyUnicode_FromUnicode(
            ^
            /Users/dlituiev/opt/anaconda3/envs/spacy3/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
            #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                                 ^
            28 warnings and 6 errors generated.
            error: command '/usr/bin/clang' failed with exit code 1
            [end of output]

        note: This error originates from a subprocess, and is likely not a problem with pip.
      error: legacy-install-failure

      × Encountered error while trying to install package.
      ╰─> blis

      note: This is an issue with the package mentioned above, not pip.
      hint: See above for output from the failure.
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× pip subprocess to install build dependencies did not run successfully.
│ exit code: 1
╰─> See above for output.
DSLituiev commented 1 year ago

The abovementioned installation was launched from R clinspacy package.

I now try to install / build it manually. Strangely, pip install blis runs w/o errors, but pip install spacy or pip install spacy --no-binary blis returns errors:

BLIS_ARCH="arm64" pip install spacy==2.3 or BLIS_ARCH="arm64" pip install spacy==2.3 --no-binary blis

No such file or directory: '.../blis/_src/make/darwin-arm64.jsonl'
``` DEPRECATION: --no-binary currently disables reading from the cache of locally built wheels. In the future --no-binary will not influence the wheel cache. pip 23.1 will enforce this behaviour change. A possible replacement is to use the --no-cache-dir option. You can use the flag --use-feature=no-binary-enable-wheel-cache to test the upcoming behaviour. Discussion can be found at https://github.com/pypa/pip/issues/11453 Collecting spacy==2.3 Using cached spacy-2.3.0.tar.gz (6.0 MB) Installing build dependencies ... error error: subprocess-exited-with-error × pip subprocess to install build dependencies did not run successfully. │ exit code: 1 ╰─> [75 lines of output] DEPRECATION: --no-binary currently disables reading from the cache of locally built wheels. In the future --no-binary will not influence the wheel cache. pip 23.1 will enforce this behaviour change. A possible replacement is to use the --no-cache-dir option. You can use the flag --use-feature=no-binary-enable-wheel-cache to test the upcoming behaviour. Discussion can be found at https://github.com/pypa/pip/issues/11453 Collecting setuptools Using cached setuptools-65.5.0-py3-none-any.whl (1.2 MB) Collecting wheel Using cached wheel-0.37.1-py2.py3-none-any.whl (35 kB) Collecting cython>=0.25 Using cached Cython-0.29.32-py2.py3-none-any.whl (986 kB) Collecting cymem<2.1.0,>=2.0.2 Using cached cymem-2.0.7-cp38-cp38-macosx_11_0_arm64.whl (31 kB) Collecting preshed<3.1.0,>=3.0.2 Using cached preshed-3.0.8-cp38-cp38-macosx_11_0_arm64.whl (101 kB) Collecting murmurhash<1.1.0,>=0.28.0 Using cached murmurhash-1.0.9-cp38-cp38-macosx_11_0_arm64.whl (19 kB) Collecting thinc==7.4.1 Using cached thinc-7.4.1-cp38-cp38-macosx_11_0_arm64.whl Collecting tqdm<5.0.0,>=4.10.0 Using cached tqdm-4.64.1-py2.py3-none-any.whl (78 kB) Collecting blis<0.5.0,>=0.4.0 Using cached blis-0.4.1.tar.gz (1.8 MB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Collecting numpy>=1.7.0 Using cached numpy-1.23.4-cp38-cp38-macosx_11_0_arm64.whl (13.3 MB) Collecting wasabi<1.1.0,>=0.0.9 Using cached wasabi-0.10.1-py3-none-any.whl (26 kB) Collecting plac<1.2.0,>=0.9.6 Using cached plac-1.1.3-py2.py3-none-any.whl (20 kB) Collecting srsly<1.1.0,>=0.0.6 Using cached srsly-1.0.6-cp38-cp38-macosx_11_0_arm64.whl (206 kB) Collecting catalogue<1.1.0,>=0.0.7 Using cached catalogue-1.0.2-py2.py3-none-any.whl (16 kB) Installing collected packages: wasabi, plac, cymem, wheel, tqdm, srsly, setuptools, numpy, murmurhash, cython, catalogue, preshed, blis, thinc DEPRECATION: blis is being installed using the legacy 'setup.py install' method, because the '--no-binary' option was enabled for it and this currently disables local wheel building for projects that don't have a 'pyproject.toml' file. pip 23.1 will enforce this behaviour change. A possible replacement is to enable the '--use-pep517' option. Discussion can be found at https://github.com/pypa/pip/issues/11451 Running setup.py install for blis: started Running setup.py install for blis: finished with status 'error' error: subprocess-exited-with-error × Running setup.py install for blis did not run successfully. │ exit code: 1 ╰─> [25 lines of output] BLIS_COMPILER? None running install /Users/dlituiev/Library/r-miniconda-arm64/envs/clinspacy/lib/python3.8/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools. warnings.warn( running build running build_py creating build creating build/lib.macosx-11.0-arm64-cpython-38 creating build/lib.macosx-11.0-arm64-cpython-38/blis copying blis/benchmark.py -> build/lib.macosx-11.0-arm64-cpython-38/blis copying blis/__init__.py -> build/lib.macosx-11.0-arm64-cpython-38/blis copying blis/about.py -> build/lib.macosx-11.0-arm64-cpython-38/blis creating build/lib.macosx-11.0-arm64-cpython-38/blis/tests copying blis/tests/__init__.py -> build/lib.macosx-11.0-arm64-cpython-38/blis/tests copying blis/tests/test_dotv.py -> build/lib.macosx-11.0-arm64-cpython-38/blis/tests copying blis/tests/test_gemm.py -> build/lib.macosx-11.0-arm64-cpython-38/blis/tests copying blis/tests/common.py -> build/lib.macosx-11.0-arm64-cpython-38/blis/tests copying blis/cy.pyx -> build/lib.macosx-11.0-arm64-cpython-38/blis copying blis/py.pyx -> build/lib.macosx-11.0-arm64-cpython-38/blis copying blis/__init__.pxd -> build/lib.macosx-11.0-arm64-cpython-38/blis copying blis/cy.pxd -> build/lib.macosx-11.0-arm64-cpython-38/blis running build_ext unix py_compiler gcc error: [Errno 2] No such file or directory: '/private/var/folders/qz/tt8wl6hn2cs6rw77r5mcmll00000gp/T/pip-install-617je19m/blis_2a2c0b6972204108a3a7b5a1a8ab7f6d/blis/_src/make/darwin-arm64.jsonl' [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. error: legacy-install-failure × Encountered error while trying to install package. ╰─> blis note: This is an issue with the package mentioned above, not pip. hint: See above for output from the failure. [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. error: subprocess-exited-with-error × pip subprocess to install build dependencies 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 ```

Similarly with BLIS_ARCH="generic":

No such file or directory: .../blis/_src/make/darwin-generic.jsonl
adrianeboyd commented 1 year ago

If you want to use spacy v2, please try using 'spacy~=2.3.0' instead, which will install the latest version of v2.3.x, which should have binary wheels for osx arm64 (and should also compile from source correctly).

blis v0.7.x uses the generic arch for M1/M2 and will be very slow. For spacy v3 you should install spacy with 'spacy[apple]' to install thinc-apple-ops, which uses apple's Accelerate library instead of blis. There's no equivalent package for spacy v2, though.

There's no arm64 architecture for blis. You should be able to rely on the autodetection for newer releases, but you can see the supported architectures here: https://github.com/explosion/cython-blis/tree/v0.7.x/blis/_src/make . blis v0.9.x supports firestorm, but there are bugs in some kernels that are preventing us from using it generally for spacy yet.