Skip to content

Commit 0efcb6a

Browse files
Add version-specific broken markers for JET tests
The JET tests that fail on Julia < 1.12 now pass on Julia nightly/pre-release (1.12+) due to improvements in type inference in the Julia stdlib (LinearAlgebra, Printf) and better constant propagation. Version-specific broken markers added for: - Dense Factorizations: QRFactorization, LDLtFactorization, BunchKaufmanFactorization - Extension Factorizations: FastLUFactorization, FastQRFactorization - Krylov Methods: KrylovJL_GMRES, KrylovJL_MINRES, KrylovJL_MINARES These tests will: - Be marked as broken (expected to fail) on Julia < 1.12 - Run normally (expected to pass) on Julia >= 1.12 This follows the same pattern as the existing Dual tests which are version-specific for Julia < 1.11 vs >= 1.11. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 68185d8 commit 0efcb6a

File tree

1 file changed

+29
-11
lines changed

1 file changed

+29
-11
lines changed

test/nopre/jet.jl

Lines changed: 29 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -60,20 +60,32 @@ dual_prob = LinearProblem(A, b)
6060
# JET.@test_opt solve(prob_spd, CholeskyFactorization())
6161
# JET.@test_opt solve(prob, SVDFactorization())
6262

63-
# These tests still have runtime dispatch issues
64-
JET.@test_opt solve(prob, QRFactorization()) broken=true
65-
JET.@test_opt solve(prob_sym, LDLtFactorization()) broken=true
66-
JET.@test_opt solve(prob_sym, BunchKaufmanFactorization()) broken=true
63+
# These tests have runtime dispatch issues on Julia < 1.12
64+
# Fixed in Julia nightly/pre-release (1.12+)
65+
if VERSION < v"1.12.0-"
66+
JET.@test_opt solve(prob, QRFactorization()) broken=true
67+
JET.@test_opt solve(prob_sym, LDLtFactorization()) broken=true
68+
JET.@test_opt solve(prob_sym, BunchKaufmanFactorization()) broken=true
69+
else
70+
JET.@test_opt solve(prob, QRFactorization())
71+
JET.@test_opt solve(prob_sym, LDLtFactorization())
72+
JET.@test_opt solve(prob_sym, BunchKaufmanFactorization())
73+
end
6774
JET.@test_opt solve(prob, GenericFactorization()) broken=true
6875
end
6976

7077
@testset "JET Tests for Extension Factorizations" begin
7178
# RecursiveFactorization.jl extensions
7279
# JET.@test_opt solve(prob, RFLUFactorization())
7380

74-
# These tests still have runtime dispatch issues
75-
JET.@test_opt solve(prob, FastLUFactorization()) broken=true
76-
JET.@test_opt solve(prob, FastQRFactorization()) broken=true
81+
# These tests have runtime dispatch issues on Julia < 1.12
82+
if VERSION < v"1.12.0-"
83+
JET.@test_opt solve(prob, FastLUFactorization()) broken=true
84+
JET.@test_opt solve(prob, FastQRFactorization()) broken=true
85+
else
86+
JET.@test_opt solve(prob, FastLUFactorization())
87+
JET.@test_opt solve(prob, FastQRFactorization())
88+
end
7789

7890
# Platform-specific factorizations (may not be available on all systems)
7991
if @isdefined(MKLLUFactorization)
@@ -118,10 +130,16 @@ end
118130
# SimpleGMRES passes JET tests
119131
# JET.@test_opt solve(prob, SimpleGMRES())
120132

121-
# These tests still have Printf runtime dispatch issues in Krylov.jl
122-
JET.@test_opt solve(prob, KrylovJL_GMRES()) broken=true
123-
JET.@test_opt solve(prob_sym, KrylovJL_MINRES()) broken=true
124-
JET.@test_opt solve(prob_sym, KrylovJL_MINARES()) broken=true
133+
# These tests have Printf runtime dispatch issues in Krylov.jl on Julia < 1.12
134+
if VERSION < v"1.12.0-"
135+
JET.@test_opt solve(prob, KrylovJL_GMRES()) broken=true
136+
JET.@test_opt solve(prob_sym, KrylovJL_MINRES()) broken=true
137+
JET.@test_opt solve(prob_sym, KrylovJL_MINARES()) broken=true
138+
else
139+
JET.@test_opt solve(prob, KrylovJL_GMRES())
140+
JET.@test_opt solve(prob_sym, KrylovJL_MINRES())
141+
JET.@test_opt solve(prob_sym, KrylovJL_MINARES())
142+
end
125143

126144
# Extension Krylov methods (require extensions)
127145
# KrylovKitJL_CG, KrylovKitJL_GMRES require KrylovKit to be loaded

0 commit comments

Comments
 (0)