[pypy-issue] Issue #3107: Please expose _Py_Finalizing to C programs! (pypy/pypy)

Laël Cellier issues-reply at bitbucket.org
Tue Oct 29 21:01:37 EDT 2019


New issue 3107: Please expose _Py_Finalizing to C programs!
https://bitbucket.org/pypy/pypy/issues/3107/please-expose-_py_finalizing-to-c-programs

Laël Cellier:

PyPy can automatically vectorize everything \(even the base implementation can be jitted and benefit from multithread gc instead of the reference counter\) but it can’t parallelize even manually and vectorization is limited to sse on x86.  
Numba can parallelize using the full instruction set and it can even use the gpu. The definite difference with pypy is it can performs multithreading enabling to use 50 cpu cores. However, it requires manual instrumentation and even then it can definitely operate on less scenarios than PyPy.

Why not all simply combine both worlds? Especially since the variant of numpy for pypy is written in pure python code and thus it should be possible to use the `nofunc` feature of Numba everywhere.

```c
C compiler: gcc -pipe -fPIC
creating build/temp.linux-x86_64-3.6
creating build/temp.linux-x86_64-3.6/numba
compile options: '-I/usr/lib64/pypy3.6-v7.2.0-linux64/include -c'
extra options: '-g'
gcc: numba/_dynfuncmod.c
In file included from numba/_dynfuncmod.c:1:
numba/_dynfunc.c: In function ‘generator_dealloc’:
numba/_dynfunc.c:361:10: error: ‘_Py_Finalizing’ undeclared (first use in this function); did you mean ‘__issignaling’?
     if (!_Py_Finalizing)
          ^~~~~~~~~~~~~~
          __issignaling
numba/_dynfunc.c:361:10: note: each undeclared identifier is reported only once for each function it appears in
```

So the installation through pip fails.




More information about the pypy-issue mailing list