Closed regro-cf-autotick-bot closed 4 years ago
Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe
) and found it was in an excellent condition.
@conda-forge-admin, please restart ci
Looks like a legitimate failure. https://github.com/numba/numba/pull/4755
Looks like a legitimate failure. numba/numba#4755
It is, the entire static analysis part of Numba had to be rewritten (along with a bunch of other lesser changes) to accommodate 3.8. The patch is large, under review and not in mainline yet.
Am curious, what caused it to be so complex? Did Python 3.8 make some fundamental changes?
Am curious, what caused it to be so complex? Did Python 3.8 make some fundamental changes?
Mainly down to Python 3.8 doing away with SETUP_LOOP
and friends bytecodes which meant something very different was required in control flow/data flow analysis to identify and handle loops. @sklam has all the details.
Ah ok. Yeah that makes sense. Are they aware there are users of Python's bytecode?
Ah ok. Yeah that makes sense. Are they aware there are users of Python's bytecode?
@pitrou definitely is :) IIRC the bytecode is considered an implementation detail and not an API.
Yes, bytecode is free to change in any Python feature release (and it definitely does).
The patch to adapt to py3.8 bytecode should make numba more tolerant to future bytecode changes. Instead of relying on heuristics on the structure or extra information of the bytecode (i.e SETUP_LOOP
marks the exact start and end of a loop), it now does a symbolic trace to reconstruct the dataflow and controlflow info and turn the stack machine into a register machine. Luckily that we have accumulated a lot of tools---like the controlflow analysis that @pitrou has written and the new transformation pass manager that @stuartarchibald has written. These tools allow numba to stop relying on heuristics.
I'm not afraid of https://docs.python.org/3.9/whatsnew/3.9.html#cpython-bytecode-changes =)
I need to write up all the details once I find time.
Numba 0.47 RC is out, so looking at past releases, should be about a week until full release; at that point 3.8 will be supported and this can move forward.
This PR has been triggered in an effort to update python38.
Notes and instructions for merging this PR:
This package has the following downstream children: ale blaze compas elektronn2 fastparquet And potentially more. If this PR was opened in error or needs to be updated please add the
bot-rerun
label to this PR. The bot will close this PR and schedule another one.This PR was created by the cf-regro-autotick-bot. The cf-regro-autotick-bot is a service to automatically track the dependency graph, migrate packages, and propose package version updates for conda-forge. If you would like a local version of this bot, you might consider using rever. Rever is a tool for automating software releases and forms the backbone of the bot's conda-forge PRing capability. Rever is both conda (
conda install -c conda-forge rever
) and pip (pip install re-ver
) installable. Finally, feel free to drop us a line if there are any issues! This PR was generated by https://circleci.com/gh/regro/circle_worker/12221, please use this URL for debugging