Explain our use of mypyc in the FAQ (#3002)

I realized we don't have a FAQ entry about this, let's change that so
compiled: yes/no doesn't surprise as many people :)

Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
This commit is contained in:
Richard Si 2022-04-10 19:45:34 -04:00 committed by GitHub
parent 431bd09e15
commit 497a72560d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -113,3 +113,22 @@ _Black_ is an autoformatter, not a Python linter or interpreter. Detecting all s
errors is not a goal. It can format all code accepted by CPython (if you find an example errors is not a goal. It can format all code accepted by CPython (if you find an example
where that doesn't hold, please report a bug!), but it may also format some code that where that doesn't hold, please report a bug!), but it may also format some code that
CPython doesn't accept. CPython doesn't accept.
## What is `compiled: yes/no` all about in the version output?
While _Black_ is indeed a pure Python project, we use [mypyc] to compile _Black_ into a
C Python extension, usually doubling performance. These compiled wheels are available
for 64-bit versions of Windows, Linux (via the manylinux standard), and macOS across all
supported CPython versions.
Platforms including musl-based and/or ARM Linux distributions, and ARM Windows are
currently **not** supported. These platforms will fall back to the slower pure Python
wheel available on PyPI.
If you are experiencing exceptionally weird issues or even segfaults, you can try
passing `--no-binary black` to your pip install invocation. This flag excludes all
wheels (including the pure Python wheel), so this command will use the [sdist].
[mypyc]: https://mypyc.readthedocs.io/en/latest/
[sdist]:
https://packaging.python.org/en/latest/glossary/#term-Source-Distribution-or-sdist