Skip to content

Fix the two failures blocking PhyslibAlpha and QuantumInfo - #30

Merged
Gabrielebattimelli merged 1 commit into
mainfrom
fix/quantuminfo-oleans
Aug 26, 2026
Merged

Fix the two failures blocking PhyslibAlpha and QuantumInfo#30
Gabrielebattimelli merged 1 commit into
mainfrom
fix/quantuminfo-oleans

Conversation

@Gabrielebattimelli

Copy link
Copy Markdown
Member

Why

The forced run got PhyslibAlpha built and analysed, then failed the load for two separate reasons.

1. QuantumInfo had no .olean files (33 errors)

error while processing ('QuantumInfo', 'Regularized'): uncaught exception:
object file '.../QuantumInfo/Regularized.olean' does not exist

The lake cache restored from physlib-lake-<sha> — a build made back when only Physlib was compiled. Lake then considered the tree up to date, so QuantumInfo was never built. Build PhysLib reported "Build completed successfully (9396 jobs)" with zero Built QuantumInfo.* lines.

My previous attempt put the workflow hash in the cache key but left a bare physlib-lake- restore-key, which matched that older cache anyway — so the fix did nothing. Now the key is namespaced by the workflow hash first and the restore-key stays inside that namespace.

2. An anonymous declaration aborted the entire load

File ".../jixia/structs.py", line 69, in <genexpr>
    name[-1].startswith(p) for p in ["_", "eq_", "match_", "proof_"]
IndexError: list index out of range

jixia's is_internal indexes name[-1] without checking for an empty name. Wrapped once at the import so all four call sites are covered, rather than guarding only the one that happened to crash.

Verified

raw([])       -> IndexError   (reproduces the crash)
guarded([])   -> True
guarded(real) -> False
guarded(_int) -> True         (normal behaviour preserved)

Plus: module compiles, YAML parses.

The forced run built PhyslibAlpha fine but failed the load for two reasons.

QuantumInfo had no .olean files. The lake cache restored from
physlib-lake-<sha>, a build made when only Physlib was compiled, and lake then
considered the tree up to date, so QuantumInfo was never built and jixia failed
33 times with "object file does not exist". My previous attempt at this put the
workflow hash in the key but left a bare physlib-lake- restore-key, which
matched that older cache anyway. Namespace the key by the workflow hash first
and keep the restore-key inside that namespace.

An anonymous declaration aborted the whole load with IndexError: jixia's
is_internal indexes name[-1] without checking for an empty name. Wrap it once
so every call site is covered rather than guarding the one that happened to
crash, and treat nameless entries as internal since they cannot be stored or
searched for anyway.
@Gabrielebattimelli
Gabrielebattimelli merged commit 434d6ba into main Aug 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant