From 6ecdaddce9597e9bd37938f9add3bdc20554ba19 Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Fri, 19 Jun 2026 06:28:40 -0400 Subject: [PATCH 1/2] Raise ArrayInterface compat floor to 7.7 to fix downgrade CI The downgrade CI (Julia lts) was failing the JLArray error-message tests in test/interface_compatibility_tests.jl: the package threw the cryptic GPUArrays "Scalar indexing is disallowed" ErrorException instead of the friendly ArgumentError its guard is supposed to raise. Root cause: the guard relies on ArrayInterface.fast_scalar_indexing(JLArray) == false, which is only true when ArrayInterface's GPUArraysCore extension is loaded. ArrayInterface 7.1's [compat] caps Adapt at 3.7.2. In the downgrade resolution that forced GPUArrays down to 8.1.3 (pre-8.4, before the GPUArraysCore split), so GPUArraysCore was absent from the manifest, the extension never loaded, fast_scalar_indexing(JLArray) returned true, the guard did not fire, and indexing the JLArray triggered the GPUArrays scalar-indexing error. ArrayInterface 7.7 is the first release whose [compat] allows Adapt 4. Raising the floor lets the downgrade resolver pick GPUArrays 10.3.1 + GPUArraysCore 0.1.6, so the extension loads and fast_scalar_indexing(JLArray) is false again. Verified locally on Julia 1.10 (lts): the previously-failing testset now passes 16/16. Full Pkg.test() also passes on Julia 1.12, which resolves to ArrayInterface 7.25 (unaffected by the raised lower bound). Co-Authored-By: Chris Rackauckas Co-Authored-By: Claude Opus 4.8 (1M context) --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index d98afbd..dd787ea 100644 --- a/Project.toml +++ b/Project.toml @@ -25,7 +25,7 @@ ToeplitzMatricesExt = "ToeplitzMatrices" [compat] AllocCheck = "0.2" -ArrayInterface = "7.1" +ArrayInterface = "7.7" BandedMatrices = "1.10.2" BenchmarkTools = "1" BlockBandedMatrices = "0.13.4" From e090823e05ebee1088788038042c4e1e9fff35b4 Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Fri, 19 Jun 2026 10:31:14 -0400 Subject: [PATCH 2/2] Add GPUArrays compat floor 8.4 to fix downgrade JLArray scalar-indexing test The downgrade CI resolved GPUArrays to 8.1.3 (pulled transitively via JLArrays 0.1.1), where ArrayInterface.fast_scalar_indexing(::JLArray) returns true. The package's GPU-array guard therefore never fired and scalar indexing proceeded, so GPUArrays raised its own "Scalar indexing is disallowed" ErrorException instead of the package's ArgumentError, failing the JLArray-error-message testset. fast_scalar_indexing first reports false for JLArray at GPUArrays 8.4.0, so floor GPUArrays at 8.4 (covering 8.4, 9, 10, 11). Verified locally on Julia 1.10 with the CI-resolved ArrayInterface 7.7.0 / JLArrays 0.1.1: 8.1.3 reproduces the 8/8 failure, 8.4.0 passes 16/16; full Core suite green. Co-Authored-By: Chris Rackauckas Co-Authored-By: Claude Opus 4.8 (1M context) --- Project.toml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index dd787ea..9d22fd5 100644 --- a/Project.toml +++ b/Project.toml @@ -30,6 +30,7 @@ BandedMatrices = "1.10.2" BenchmarkTools = "1" BlockBandedMatrices = "0.13.4" FastAlmostBandedMatrices = "0.1.5" +GPUArrays = "8.4, 9, 10, 11" JLArrays = "0.1, 0.2, 0.3" SafeTestsets = "0.0.1, 0.1, 1" SciMLTesting = "1" @@ -45,6 +46,7 @@ BandedMatrices = "aae01518-5342-5314-be14-df237901396f" BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" FastAlmostBandedMatrices = "9d29842c-ecb8-4973-b1e9-a27b1157504e" +GPUArrays = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" JLArrays = "27aeb0d3-9eb9-45fb-866b-73c2ecf80fcb" SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f" SciMLTesting = "09d9d899-5365-40a9-917a-5f67fddea283" @@ -53,4 +55,4 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" ToeplitzMatrices = "c751599d-da0a-543b-9d20-d0a503d91d24" [targets] -test = ["AllocCheck", "BandedMatrices", "BenchmarkTools", "BlockBandedMatrices", "FastAlmostBandedMatrices", "JLArrays", "SafeTestsets", "SciMLTesting", "SpecialMatrices", "Test", "ToeplitzMatrices"] +test = ["AllocCheck", "BandedMatrices", "BenchmarkTools", "BlockBandedMatrices", "FastAlmostBandedMatrices", "GPUArrays", "JLArrays", "SafeTestsets", "SciMLTesting", "SpecialMatrices", "Test", "ToeplitzMatrices"]