test/quality/jet.jl: JET report_opt on the allocation-tested hot paths (part J10) - #29
Merged
Merged
Conversation
… J10) One JET line per entry point and argument type the allocation tests use: evaluate_all!, evaluate on a tensor product, basis_integrals, l2_projection!, mass_solve! on circulant and banded operators. Runs in core after Aqua, only where JET works. KNOWN_ISSUES.md K1 records the Revise EMFILE noise. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… J10, critic 1b) Per the section 7 decision on clause 2, each element type a test passes directly to an entry point's method gets a line. The comment states the domain. KNOWN_ISSUES.md K2-K4 record the critics' other defects. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
One circulant mass_solve! line: the deflated operator has the same type. Correct the bounded-basis comment. K1 cites the origin/main full run. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part J10 of the plan "Unify the test suites": a JET
report_optfile for the hot paths of SimpleSplines.What changes
test/quality/jet.jl, new, incoredirectly after Aqua (JET 10.1 s in the full run, under the 60 s budget).test/runtests.jl: the@safetestset "JET"line.test/Project.toml: JET in[deps], with no[compat]bound.CHANGELOG.md: an Unreleased paragraph.KNOWN_ISSUES.md, new: K1, Revise EMFILE noise (upstream).Nothing under
src/changes.Entry points
The entry points are the functions that a test asserts with
@allocated. The file has one line per method and element type that a test passes directly:evaluate_all!at(Vector{Float64}, B, Float64, Int)for a free, a Dirichlet (recombined) and a periodicBSplineBasisevaluateon a 3-D mixed-axis tensor product,(B, Array{Float64,3}, NTuple{3,Float64})evaluateon a 2-D tensor product,(B2, Matrix{ComplexF64}, NTuple{2,Float64}, NTuple{2,Int})basis_integralsat(SplineQuadrature,)l2_projection!at(Vector{Float64}, q, Vector{Float64})on a uniform periodic quadrature, and at(Vector{ComplexF64}, qc, Vector{ComplexF64})on a graded onemass_solve!on aCirculantMass(the deflated:projectoperator has the same type) and on eachBandedMasstype of the banded testset (one type)In
test/mass.jl,op \ b32reachesmass_solve!onCirculantMass{Float32}only through\. So Float32 gets no line, as the plan decides.JET reports nothing on any line on Julia 1.13.1 (JET 0.12.2) or 1.10.12, so no line is
@test_brokenor@test_skip. Where JET does not work (pre,nightly), the file records one@test_skipthat cites aviatesk/JET.jl#681.Each line catches a
Base.inferencebarriermutant on its path (mutate.jl, all CAUGHT). When the JET@safetestsetline is deleted,test-layout.jl --checkreports D8.Tests
Full suite: 65123 pass, 0 fail. Base
origin/main: 65113. The difference is the 10 JET lines. Every other file has the same total.Critic
Rounds: round 1 FAIL (1a PASS, 1b FAIL: no ComplexF64 lines), verify 2 FAIL (the branch recorded its own defects instead of fixing them), verify 3 PASS.
Verdict: PASS, at 53176b7.
mul!(y, op.iplan, Base.inferencebarrier(op.buf))origin/mainrunPre-PR verification
test/quality/jet.jlpasses 10/10 on Julia 1.13.1 (11 s) and on 1.10.12, theminfloor (22 s), and JET ran on both instead of skipping. The layout check, JuliaFormatter,fatou lintand NFC pass. Every comment matches the tests it cites. No method is defined, andsrc/has no change. The JET entry has no bound on purpose. The CHANGELOG entry is present.preand nightly.Unresolved
test/quality/jet.jl: the loop builds 48 quadratures for one unique type, and the testset label is the full type string. One line would do the same check. The critic judged it not blocking.Known issues added
Advisor decisions
Decided (advisor, 2026-09-28, medium): every J part — the JET-gate
@test_skipof clause 4 cites JET's upstream issue in the cross-repository form, as a trailing comment on its line:@test_skip "JET does not work on this Julia version" # aviatesk/JET.jl#681(the message text is each part's own). No repository issue is filed for the gate: the skip is JET's designed behaviour, whose bound moves with each JET release, so a repository issue could not close. A per-entry-point@test_skipof clause 3 still cites the repository's own JET issue. The form passes D7 of part Z'stest-layout.jl(ISSUE = r"#\d+|issues/\d+"); if part Z narrows that pattern, this line is checked again.Decided (advisor, 2026-09-28, medium): every J part not yet merged (J1, J2, J3, J6, J8, J9, J10, J11, J12; J5 and J7 at their next critic round) — in clause 2, "each element type its tests use" means each element type that a test in
test/outsidetest/quality/passes in a direct call to the entry point's method: the method that the@allocatedcall or the kernel launch reaches, whatever its other arguments or defaulted positional arguments. The@allocatedcalls choose the entry points, but they do not limit the element types. For each element type beyond those of the@allocatedcall, the file holds one line, at the concrete argument types of one such test call. Another container, mesh or basis type at the same element type needs no line (the edge "one line per entry point and element type"). An element type that only reaches the entry point through another function (J10:op \ b32intest/mass.jl:229reachesmass_solve!onCirculantMass{Float32}) gets no line, and the PR names that path. A new line that JET reports on follows clause 3. The comment ofjet.jlstates this domain. J10 addsl2_projection!at(Vector{ComplexF64}, typeof(qc), Vector{ComplexF64}), whereqcis the GradedMesh periodic quadrature oftest/quadrature.jl:220–223, andevaluateat(typeof(B2), Matrix{ComplexF64}, NTuple{2, Float64}, NTuple{2, Int})fromtest/basis.jl:388–397. J4 is merged under the narrower reading, and its K3 records the gap; this decision does not reopen J4.🤖 Generated with Claude Code