Python version requirement for LLVM

http://llvm.org/docs/GettingStarted.html currently mentions Python 2.5 as a minimum required version. I’d like to use argparse in a script and be able to test this script. This requires Python 2.7. This version has been around since 2010, and afaiu, is available on all modern platforms. Is there any reason not to change minimum required version of Python to 2.7?

AFAIK, 2.5 is minimum for running automated tests with lit. If your script does not run as part of lit, you are less constrained.

For instans, utils/sort_includes.py uses argparse

Eli

As much as I like killing support for Python 2.6 and below, RHEL is usually the blocker. They still have 2.4 under support. Only the RHEL that was released a few weeks ago finally has 2.7.

Yeah, RHEL… Then I’m going to add a lit feature (say, python27) to guard the test of my python script on it with REQUIRES:.

As much as I like killing support for Python 2.6 and below, RHEL is
usually the blocker. They still have 2.4 under support. Only the RHEL that
was released a few weeks ago finally has 2.7.

Given the amount of complexity required to build LLVM & Clang (having the
right compiler & libstdc++ installed), compared to the 3 minutes it
typically takes to install any Python version on any Linux box, these
limitations always strike me as silly. But I gave up on this fight some
time ago.

Eli

I got slashdotted arguing the same [1][2] :slight_smile: I really wish the Python Project officially distributed a (statically linked) CPython distribution suitable for userland install via merely unarchiving. That would go a long way towards silencing the valid "I don't have permissions" and "I can't compile it" complaints. Maybe I'll propose that on python-dev right now...

[1] Why Do Projects Continue To Support Old Python Releases? - Slashdot
[2] Gregory Szorc's Digital Home | Why do Projects Support old Python Releases

I believe conda is solving all that nicely (and it works fine on redhat from what they say)

http://conda.pydata.org/

Mehdi

I suppose this could help in the general case, but it's not really a
problem relevant to LLVM developers, is it? We're talking about people who
manage to build LLVM from source. This is significantly more complex than
building Python. Also, building Python without installing it is also
trivial - you just run the executable from wherever it was built and it
knows to find its libraries.

Eli

I really want to make LLVM easier to build and test, not harder. The
C++11-pocalypse has been pretty hard on people. We tried to put together
instructions for building and installing gcc 4.8 locally (not into /usr),
and users were still confused. Python 2.7 would add one more thing.

I'm comfortable with the status quo of leaving 2.5 as the baseline for old
tools (lit) and allowing 2.7 for new or infrequently used tools
(clang-tidy-diff.py, sort_includes.py).

FWIW, I made true on my threat to raise this issue on python-dev:

https://mail.python.org/pipermail/python-dev/2014-June/135211.html

tl;dr; Python core project seem to have a no interest in solving the
problem; Miniconda seems to be the recommended solution.