Daily Frustrations

I want to work on an assignment for university, that requires LLVM and makes use of their integrated tester (llvm-lit).

llvm-lit is written in Python. I have some version of Python 3 installed, so I try to run it using the py launcher for Windows. I get no output and no errors.

I try some other commands like python3 and python. When I type python into the Command Prompt, the Microsoft Store opens showing the page for Python 3.7 which I already have installed (from the Python website).

I open the llvm-lit.py script (it just sets up some paths and loads another module) and try to debug it using print statements.

That’s when I notice the shebang line (#!/usr/bin/env python). Deleting this line makes the script work.

Reading the Python documentation, I figure out that the launcher analyzes the shebang line and selects Python 2 based on this specific shebang line.

I don’t have Python 2 installed. It remains a mystery why I don’t get any output indicating this. Anyway, I can override the version using py -3 path/to/llvm-lit.py (which works fine by the way).

That concludes this little adventure. Morals of the story:

  • Dependencies are bad. (But LLVM probably has its reasons to choose Python over C++ here.)
  • Probably something about interpreted languages.
  • The current state of software is very frustrating.

Now, what was I working on? Oh, yes, I wanted to work on an assignment for university…

Posted in Programming