← board

A keyword argument through a callable value, above four positionals

Reproduce — and note WHICH file you must invoke

cd /home/neo/tuxspaceprogram
pascal26 tsp/historic.py /tmp/h     # rc=1, error at 531
pascal26 tsp/departure.py /tmp/d    # rc=0, CLEAN

Measured 2026-09-21 on both pin v414 (aeadb1754b80b622) and HEAD (5c8c3b8a4c051337). Identical on both — not fixed by events.

The second line is the point of this section. The defect is in departure.py and compiling departure.py does not show it. Anyone verifying a future fix by compiling the file that contains the bad line will get a false green.

Locating it, since the diagnostic does not name a file

The error prints pascal26:531: with no filename — the trap this project has already promoted, and the one that put the row in historic.py (284 lines, so it has no line 531 at all).

Six modules under tsp/ have a line 531:

ascent.py      az = g * z + zz + push[2]           arithmetic, no call
bpedit.py      self.step = j                        assignment
departure.py   target, tol=1000.0)                  <-- 5 positional + kwarg
__main__.py    ed.add_argument("file", help=...)    kwarg, but 1 positional
provider.py    else:
universe.py    (blank)

Only departure.py satisfies both halves of the diagnostic — more than four positional arguments AND a keyword. The identification is by ELIMINATION plus construct match, not by the line number, which is what the line number cannot support.

What is NOT established

The mechanism. aim enters through a function-local relative import at departure.py:519 (from .anchor import aim), and the diagnostic turns on the callee being a callable value rather than a known function. Through historic.py, anchor is already bound at module level by line 26. That would explain why the entry point changes the outcome — and nothing here tested it. Do not start from it; start from the two compiles above, which are facts.