Repository navigation
Stabilize sampled eachslice integration with a function barrier - #380
ChrisRackauckas merged 1 commit into
Conversation
Runtime Int dims made eachslice type-unstable, so the weighted sum dispatched dynamically and allocated per slice. Barrier into _evalrule_slices so the loop body is concrete. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Cursor Agent <noreply@cursor.com> Agent-Harness: Cursor Agent 2026.10.01-14929f9 Agent-Model: unknown (Cursor auto) Agent-Session: local session, transcript /home/crackauc/sandbox/goals/performance/jobs/integrals/int-slice/log.txt on amdci2
Independent review (Devin CLI 3000.11.3, model fusion-claude-opus-5-5-high-sidekick-swe-2-medium): MERGE, risk low. Full reviewVERDICT: MERGE PR: #380 (head 28144ba, base origin/master 63b17e8). It changes Blocking findingsNone. Non-blocking findings
What I ranAll runs used
What I did not verify
🤖 Posted by an AI agent — harness: Devin CLI 3000.11.3 (review), Claude Code 2.1.285 (posting) · model: fusion-claude-opus-5-5-high-sidekick-swe-2-medium |
Bump version to 5.5.4 Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Harness: Claude Code 2.1.301 Agent-Model: claude-opus-5-5 Claude-Session: https://claude.ai/code/session_01VZjwf7Ux9YtTzwHGHMqnsq
Summary
_evalrule_generalzippedeachslice(data; dims=dim)wheredimis a runtimeInt, so the slice iterator was type-unstable and the weighted sum loop dynamically dispatched (JETreport_opthit sampled.jl around the accumulate). This PR barriers into_evalrule_slices(slices, weights)so the loop body sees a concrete slice iterator. Results are bitwise identical to master on the same inputs (verified viareinterpret(UInt64, …)on Float64 payloads for Nx4 dim=1 / 4xN dim=2 / 2x2xN dim=3 cases).Before / after (same machine,
JULIA_NUM_THREADS=1 taskset -c 0,@benchmarkminima, N=1e5)Regression
@allocatedtest (N=10_000, barrier in the test): FAIL on unfixed (5280608 < 2000) → PASS with fix (544bytes). Also passes on Julia 1.10.12.Test-group tails
GROUP=Core (
julia +1.12, EXIT:0):GROUP=QA (
julia +1.12, EXIT:0):Not verified
report_optre-run on the patched_evalrule_generalpath (QA suite covers package JET checks; did not re-run the auditor's standalone JET script).tasksettimings; other sampled algs beyond TrapezoidalRule for the dim≠last path under@benchmark.Reviewer pushback
< 2_000bytes is the right@allocatedbound (fixed path is ~544 B; unfixed ~5 MB at N=10k) vs asserting allocation count via BenchmarkTools._evalrule_slicesshould gain a blank line / Runic spacing preference relative to neighboring helpers.dims::Valis preferred over the barrier for API clarity.Please ignore until reviewed by @ChrisRackauckas.
Risk assessment
Independent review: pending
🤖 Generated with Cursor Agent 2026.10.01-14929f9 (model: unknown (Cursor auto)), transcript /home/crackauc/sandbox/goals/performance/jobs/integrals/int-slice/log.txt on amdci2; orchestrated by Claude Code (claude-opus-5-5[1m]) https://claude.ai/code/session_01LPHREnnonfLg1VcE1EJovv
Made with Cursor
Independent review: Devin Fusion (fusion-claude-opus-5-5-high-sidekick-swe-2-medium) rated it low, verdict MERGE: #380 (comment)
Risk assessment
Independent risk assessment by codex-cli (gpt-6.1-sol), reviewed head
28144ba72b; dispatched by the fleet master, Claude Code (claude-opus-5-5), https://claude.ai/code/session_01VZjwf7Ux9YtTzwHGHMqnsq