New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Refactor Numba, part I #5197
Refactor Numba, part I #5197
Conversation
smoketesting at |
This change breaks both the
|
Thanks for reporting these, we anticipated that there would be some knock-on churn is code bases consuming Numba internals and can only apologise, but is it unfortunately necessary. The Numba code base was becoming unsustainable and increasingly hard to manage, house-keeping work was needed https://groups.google.com/a/continuum.io/forum/#!topic/numba-users/CY7oXibUwXA. Part of this will be to define a public set of APIs as we identified users doing exactly as the above projects have done, using bits of Numba internals to make things work, and this is not sustainable for anyone. Of the things listed above, the good news is that none of the things above have disappeared, they've merely moved and will likely be exported via the public API. |
Not a complaint, just though I'd record the downstream impact here. I assume we'll end up with some checking of |
Although I'd perhaps encourage you to add back |
numba/numba#5197 refactors many of Numba's submodules. Mirror the required import changes in cusignal.
The basic idea in this PR is to start organising the Numba code base, this will be a multi-PR effort.
This PR:
core
- for core Numba compiler code e.g. compilation pipeline, type inferencenp
- for NumPy re-implementations e.g.np.linalg
misc
- for miscellaneous re-implementations and other features/utilities e.g. CFFI supportparfors
- for the Parallel Accelerator technologystencils
- for the@stencil
decorator implementationscpython
for CPython implementation and Python language features e.g. tuples.experimental
for experimental features e.g.jitclass
It then contains largely (99%+) file-at-once moves of each file in the Numba code base to somewhere appropriate. No refactoring is performed other than that necessary to fix imports or fix circular dependencies (apart from <1%). The
numba.tests
submodule remains unchanged as do most of the C-extensions. The <1% refactoring is to permit re-exporting the extension API asnumba.extension
and to fix up a few other issues.