Commit ec34cf7
* Add generic findfirstsortedequal fallback (fixes 32-bit) and drop the broken 32-bit CI job
Follow-up to #95. Two things:
1. Fix a correctness gap #95 shipped. Unlike `findfirstequal`,
`findfirstsortedequal` had ONLY the `(Int64, DenseVector{Int64})` method
and no generic fallback. On 32-bit platforms native `Int` is `Int32`, so
`findfirstsortedequal(::Int32, ::Vector{Int32})` throws MethodError — 8385
such errors in the suite, and a bare `Pkg.test()` / any `Int`-vector caller
on 32-bit is broken. Add a generic `searchsortedfirst` + equality post-check
fallback (mirroring `findfirstequal`), so it works for any sorted vector on
any platform. Add a test covering the fallback on Int32/Int16/Float32.
2. Remove the `tests-32bit` job #95 added to Tests.yml. Running 32-bit Julia on
the 64-bit `ubuntu-latest` runner fails at `setup-julia` (the i686 binary
can't exec without the 32-bit loader, which is not installed before Julia is
invoked: `spawn .../x86/bin/julia ENOENT`), so that job is red regardless of
this fix. A proper 32-bit CI lane needs runner/reusable-workflow changes and
is deferred; Tests.yml goes back to a thin grouped-tests caller.
Minor bump 3.0.3 -> 3.1.0 (new public behavior: `findfirstsortedequal` now
accepts any sorted vector). Verified locally: full Core suite passes on 32-bit
i686 Julia 1.11 (0 errors) and on x64 (171915 tests); GROUP=All passes.
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EcQkauMQ4KSytnTpJpXUZu
* Add the 32-bit CI lane via test_groups.toml
Declare a `Core 32-bit` matrix-only alias that dispatches the Core body
(group = "Core") on a single x86 Julia cell, so the WORD_SIZE != 64 scalar
fallbacks in src/simd_ir.jl are exercised in CI — replacing #95's hand-added
`tests-32bit` job (removed in the parent commit) with a declarative lane.
This uses the arch axis / group alias in SciML/.github v1 (v1.24.0) and the
i386 runtime-lib install before setup-julia (v1.24.1), so the x86 leg can
actually run on the 64-bit ubuntu runner.
Require `SciMLTesting = "2.2"`: the alias section is skipped by folder discovery
only in SciMLTesting >= 2.2 (SciMLTesting.jl#22), which GROUP=All (the Downgrade
job) and a bare `Pkg.test()` need. FindFirstFunctions runs unchanged on
SciMLTesting 2.x (verified: Core suite passes on 2.1.0).
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EcQkauMQ4KSytnTpJpXUZu
---------
Co-authored-by: ChrisRackauckas-Claude <accounts@chrisrackauckas.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 6bd7486 commit ec34cf7
2 files changed
Lines changed: 11 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | | - | |
| 12 | + | |
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
9 | 19 | | |
10 | 20 | | |
0 commit comments