Skip to content

Dep bump#322

Merged
ciaranra merged 400 commits into
devfrom
dep-bump
Jul 7, 2026
Merged

Dep bump#322
ciaranra merged 400 commits into
devfrom
dep-bump

Conversation

@ciaranra

@ciaranra ciaranra commented Jun 3, 2026

Copy link
Copy Markdown
Member

No description provided.

ciaranra added 30 commits June 13, 2026 16:34
…ejections so a sourceless .classical()+neo reports the missing source, not the classical-override rejection
…rement-count tests to the circuit's num_measurements
…red GateDefinitions decompositions (gate on has_decomposition in both dispatch chains) so explicit decompositions are not silently bypassed at Clifford angles
…on/module accuracy caveat (the multi-level estimator biases upward; deep-rare-event estimates are approximate), per Codex review of the remaining-work doc
…ens like the other parsers, and the two algorithm-decoder bindings return PyErr instead of panicking on empty segments or missing boundary-gate fields
…64 in the descriptor bindings (+ debug_assert and obs_bits helper at the apply site), and correct the predecoder zero-alloc docstring
… default to a single unbiased level and require explicit .allow_biased_multilevel() to engage the (biased) multi-level path, fail-fast at build otherwise; mirrored in the Python binding
…imulation: descending-sorted scores must take the survivor threshold at index p0*n (keep top p0), not (1-p0)*n (which kept the bottom and made each level's conditional ~1-p0 instead of ~p0); add a discriminating threshold test plus the previously-missing analytical-unbiasedness guard for the multi-level path
…ors on >64 observables (observable_dem_output_mask returns Result) instead of silently dropping ids >=64, and the per-shot truth-mask helper takes the validated mask
…operSubsetSimulation/QecSubsetSimulation: include the previously-omitted final failure-fraction term (Codex round-3 finding), via a shared independent_levels_cv_squared helper that documents the remaining inter-level-correlation approximation as an optimistic lower bound; validate the reported CV against the empirical spread across 200 runs (lower-bound ~1.8x below empirical, final term proven included)
…(the B1 root cause) on both sides: add a GNM meas-twice equivalence cell pinning the record-flip convention (second measure = p) to complement the existing depolarizing state-flip cell (2p(1-p)), both cross-stack analytic-pinned so a GNM->state-flip mismapping fails
…IVE tolerance: drop the OR'd absolute fallback that silently weakened it to an absolute check for |expected| < 1 (a claimed 1e-12 relative became 1e-12 absolute, ~1000x looser at small values); all 17 numerics tests still pass under the strict check, so the validation-gate numerics genuinely meet their stated accuracy
…Noise::from_base_noise(NoiseConfig::default()).to_neo_channel() does not trip the idle guard and carries the 0.01 base/meas/init rates bit-identically to the hand-built neo channel (a dropped or rescaled default would diverge), the exact 0.01-everywhere case the GNM/qec mappings mishandled before
…e headers to 2026 (matching the project new-files convention and the sibling shim), and give the two stacks independent seeds in the cross-stack STATISTICAL comparisons (matrix + routing depolarizing) so agreement comes from matching conventions, not a shared RNG stream that would make the check tautological if streams ever converged; deterministic same-seed bit-identical tests left unchanged
ciaranra added 24 commits July 4, 2026 16:06
…ns no longer execute or clobber returns), symmetric Call/scan frame ownership with cross wake-ups, unsigned width conversions reinterpret canonical storage at the source width (iwiden_u/inarrow_u/imin_u/imax_u), and error Sums carry the spec's error payload
…oop control resolution gates on body completion, nodes_inside_cases rebuilds on reset, poison surfaces at loop entry, bare DFG containers fault loudly, pending_conditionals is a set, pending_func_calls is a deduped FIFO, dead Tag audit exemption removed
…, RandomInt/RandomIntBounded store canonically at int<5> with unsigned bound reads, RandomAdvance faults on backtracking and unboundedly large deltas, result_uint/result_array_uint bit-reinterpret canonical storage, and unresolved symbolic angles fault instead of defaulting to identity
…s not-ready (one-shot input copiers no longer fire early), case payload offsets derive from the type row, loop-continue clears stale just-input wires, LoadConstant children count in block emptiness/completion with extra pending-branch wake-ups, and empty-block/scan-passthrough chains iterate instead of recursing
…anned functions resolve load_nat), trunc_s/u range-check and canonicalize at the op's width, iu_to_s/is_to_u fault out of range per spec, shadowed divergent arms deleted (float comparisons, convert aliases, nonexistent bit-count ops) with fmax/fmin/fpow confirmed live, prelude.exit faults explicitly, and ConstUsize/ConstError constants parse
…onditional/QFT/Hadamard tests assert real distributions, backend-unavailable skips honestly, Bell/Grover pins exact), the two skip-marker constructs un-skipped (RUS while loop reports via result(), deep circuit passes), interference test pins the correct 50/50 physics, and the Python-vs-HUGR divergent regimes (negative divisors, logical shifts, past-width shifts) pinned with spec-derived expectations
… every deferred op kind, not just bool reads) and document pending_conditionals accurately
…ins, dedup on push) and the loaded Hugr lives behind an Arc so per-round and per-wave handles stop deep-cloning the graph -- guppy tree wall time drops ~60%
…utures resolve to Int (preserving leak values) instead of collapsing to Bool
…near over GF(2), so advancement is a 64x64 bit-matrix power and backtracking uses the 2^64-1 period -- the step ceiling and backtracking fault are gone, pinned by jump-vs-stepping and round-trip tests
…dispatch, naming the op and capacity instead of failing opaquely inside the simulator
…ead now validates each consumed command's qubits, via a shared check_qubit_capacity helper on both dispatchers
…fore block-output propagation (stale-iteration values starve loudly), block/CFG payload offsets derive from type-level arity, unknown transition successors poison instead of spinning past the ceiling, extension Faults skip the completion cascades, synchronously-completed scans no longer re-park as false stalls, NewRNGContext reads the seed's canonical bit pattern, pass-through ops defer on missing inputs, DFG containers flatten explicitly, and impossible scan-launch states fault loudly
…ence (bool-encoded: int result reporting is unlinked locally, and hugr-core's ishr const-folder breaks on constant past-width shifts -- both noted)
…(processed and no active container owns it) backs readiness and all four completion checks, and all_predecessors_ready becomes a method, ending the map-threading at eleven call sites
… qubit tracing: a DFG node's outputs resolve at its Output child, its Input node at the outer wires), closing the documented classical-DFG residual with a nested-DFG pinning test
…th purge-on-reactivation retention and post-replay resolver re-runs, the classical executor resolves inputs through the tracing layer (pinned end-to-end: a nested-DFG op previously deferred forever), qubit tracing crosses DFG boundaries with depth-capped recursion, Call arguments and conditional virtual payloads clear stale state before rewrite, and the fail-loud edges close (Engine::process with pending quantum work, gate modifiers, the gate-emitter catch-all, the empty-queue stall check, port-keyed return capture, global_phase deferral) with capacity-guard dispatcher tests replacing the vacuous allocation test
…ad through the DFG-tracing layer (a gate on a DFG output ran on a phantom qubit), conditional Sum payloads move to a dedicated map ending the real-port aliasing, TailLoop/Call inputs clear stale state and gain fill-only post-measurement repair, block re-activation resets descend flattened DFG interiors, replay edges carry cascade ids so within-cascade chains survive purging and only the latest cascade refills, return capture is positional at collection with signature-derived arity, and batch scheduling counts builder messages so handler-emitted commands are never dropped
…tests/qec modules that need pecos_rslib_exp (lane has failed on dev since those tests landed)
…re into lean hugr (interpreter) and hugr-qis (LLVM compile chain), move compile_hugr_to_qis to the pecos-rslib-llvm wheel and result_tags/envelope loading to pecos-hugr, lower HUGR to QIS at runtime via the LLVM wheel when a QIS/Selene classical engine is selected, and re-attach the stored program when classical() swaps the engine builder (LLVM 21's Windows build links zlib.dll, which broke clean-machine imports of the base wheel)
…cold-cache build of a large dependency change
@ciaranra
ciaranra marked this pull request as ready for review July 7, 2026 01:21
@ciaranra
ciaranra merged commit f0342ff into dev Jul 7, 2026
90 checks passed
@ciaranra
ciaranra deleted the dep-bump branch July 7, 2026 01:22
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.

Upgrade to LLVM 21+

1 participant