The compile check walked every .py under the checkout, gitignored
_scratch/ ports and nested checkouts included, and py_compile wrote a
__pycache__ folder next to each file it checked. It now compiles in
memory. It and the stray-mapping scan (and its test) share one file
list: tracked plus untracked-but-not-ignored files from git, or, when
git cannot answer for the tree (an installed copy), a walk that skips
dot-folders, caches and _scratch/.