[llvm-dev] [RFC] Python 2 / Python 3 status, final step(s)

Serge Guelton via llvm-dev llvm-dev at lists.llvm.org
Tue Oct 13 05:03:52 PDT 2020

Hi Folks,

Now that LLVM 11.0.0 has been released, it's time to prepare for the final step
envisionned in the previous RFC named *[RFC] Python 2 / Python 3 status* [0],
ie. requiring Python3.6 for LLVM 12.0.0, to be released in 2021.
At least Fedora already only ships Python3 and we didn't have much bugs reported
wrt. Python compatibility for the LLVM toolchain.

Indeed, all Python scripts should now be at least compatible with both python2 (py2)
and python3 (py3), some of them already are already py3 only.

The build system still depends on Python in a few place, but it explicitly
mentions Python3_EXECUTABLE, and the main dependency (llvm-build) is currently
being removed  in D89142.

The shebangs have already been harmonized in D83857: some mention /usr/bin/env
python, some mention /usr/bin/env python3, and none mention python2 anymore. It
would be great to have all script use the same shebang, PEP394 [1] makes it
(relatively) clear that in our case, explicitly requiring python3 is the way to

So basically, next step would be to update the documentation, remove the Python2
fallback in root CMakeLists.txt and update shebangs.

Anyone seeing an issue with that approach? I'm still a bit worried about
buildbots still running on py2 (?)


[0] http://lists.llvm.org/pipermail/llvm-dev/2020-January/138730.html
[1] https://www.python.org/dev/peps/pep-0394/

More information about the llvm-dev mailing list