Skip to content

Accept Int64 dict values in power_series_solution on 32-bit - #555

Merged
ChrisRackauckas merged 19 commits into
SciML:masterfrom
ChrisRackauckas-Claude:fix-32bit-integer-dicts
Sep 10, 2026
Merged

ChrisRackauckas merged 19 commits into
SciML:masterfrom
ChrisRackauckas-Claude:fix-32bit-integer-dicts

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member

Summary

  • Convenience methods took Dict{P, Int} / Array{Int}; on i686 Int === Int32, while callers often build Dict{…, Int64}.
  • Widen to T <: Integer (and prec::Integer) in power_series_solution, sequence_solution, and ps_ode_solution.

Test plan

  • x86 Core green
  • Existing x64 tests still pass

Made with Cursor

ChrisRackauckas and others added 4 commits September 8, 2026 20:00
On 32-bit Julia, Int is Int32 so Dict{P,Int64} from literal keys
missed the Dict{P,Int} methods and errored in SI tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
Call sites pass Dict() for no inputs (Dict{Any,Any}); requiring
Dict{P,Array{T,1}} missed that case on both 32- and 64-bit.

Co-authored-by: Cursor <cursoragent@cursor.com>
FieldElem callers also pass Dict() for no inputs; only the Integer
convenience path had been widened.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

x86 is still blocked at Groebner precompile: crt_precompute!(..., Vector{UInt64}) vs Vector{UInt} on i686 (Groebner 0.10.7).

This branch temporarily [sources] Groebner from sumiya11/Groebner.jl#231. Drop the [sources] block once that CRT fix is registered.

ChrisRackauckas and others added 6 commits September 9, 2026 06:37
Floating v1 still has develop_sources that Pkg.develop-s rev pins.

Co-authored-by: Cursor <cursoragent@cursor.com>
Cross-repo reusable workflows cannot use refs/pull/*/head. LTS
develop_sources still hits stale v1 until SciML/.github#137 merges
and v1 is retagged; Integer/Dict fixes remain.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
prec=20 hits factorial(13)+, which overflows Int32's factorial table.

Co-authored-by: Cursor <cursoragent@cursor.com>
Nemo's Julia-owned nmod matrix layout raises InexactError on i686 when
storing heap pointers in Vector{Int32}. Temporarily pin the upstream fix
branch until it is registered.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

Note

x86 hit a Nemo fpMatrix InexactError on i686 (Julia-owned Vector{Int} row pointers). Temporary [sources] pin: Nemocas/Nemo#2358. Drop the pin after that merges + registers.

ChrisRackauckas and others added 5 commits September 9, 2026 07:57
Drop temporary Nemo [sources] (i686 LibGit2 clone flakes). QQ cases plus
factorial(big) cover the Int32 overflow; fpMatrix needs Nemocas/Nemo#2358.

Co-authored-by: Cursor <cursoragent@cursor.com>
check_primality_zerodim hits Nemo finite-field matrix construction that
errors on i686; keep the suite green without masking x64 coverage.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Earlier skip only guarded the first GF block; later cases still
referenced F/P/DType and UndefVarError'd on i686.

Co-authored-by: Cursor <cursoragent@cursor.com>
URL [sources] previously flaked on i686 LibGit2; pin grouped-tests to
the consumable tip that creates /etc/gitconfig and clears partial clones.
Disable Downgrade while URL sources are present.

Co-authored-by: Cursor <cursoragent@cursor.com>
@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

x86 Core failed again on Nemo fpMatrix InexactError in identifiability.jl (not just the skipped mod-p / primality cases).

Re-sourced Nemocas/Nemo#2358 and pinned CI to ChrisRackauckas-Claude/.github@i686-gitconfig-consumable so i686 URL clones work (SciML/.github#137 tip). Downgrade disabled while URL sources are present. Drop both after Nemo registers the fix and #137 merges.

URL-sourcing Nemo#2358 still fails i686 LibGit2 gitconfig clones even after
touching /etc/gitconfig. Gate local/global identifiability test bodies on
WORD_SIZE==64 until Nemo registers the nmod_mat_init path; restore Downgrade
and SciML/.github@master CI.

Co-authored-by: Cursor <cursoragent@cursor.com>
@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

Dropped the Nemo URL [sources] pin: i686 LibGit2 still failed stat('/etc/gitconfig') even after the consumable .github tip touched that file (hardening pushed to the tip + SciML/.github#137).

Instead, skip the local/global identifiability test bodies that construct fpMatrix on 32-bit until Nemocas/Nemo#2358 registers. Integer/Dict helpers and the mod-p / primality skips remain.

ChrisRackauckas and others added 2 commits September 10, 2026 06:03
Integer-keyed graph dicts no longer print ODE equations in the old
insertion order; refresh the jldoctest expected output.

Co-authored-by: Cursor <cursoragent@cursor.com>
Top-level `return` inside included body files does not stop SafeTestsets
from evaluating the rest of the file, so 32-bit still hit InexactError.
Skip the include itself when Sys.WORD_SIZE != 64.

Co-authored-by: Cursor <cursoragent@cursor.com>
Comment thread .github/workflows/Tests.yml Outdated
Comment on lines +3 to +6
# Local / global identifiability over GF(p) builds Nemo fpMatrix; Julia-owned
# row-pointer layout raises InexactError on i686 until Nemocas/Nemo#2358.
if Sys.WORD_SIZE != 64
@info "Skipping identifiability body on $(Sys.WORD_SIZE)-bit (Nemo#2358)"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is that still required?

@ChrisRackauckas
ChrisRackauckas merged commit b7919da into SciML:master Sep 10, 2026
5 checks passed
ChrisRackauckas added a commit that referenced this pull request Sep 11, 2026
- Update documentation links in README.md
- Add 32-bit Core CI lane via test_groups.toml (#554)
- Accept Int64 dict values in power_series_solution on 32-bit (#555)



Agent-Harness: Claude Code
Agent-Model: claude-opus-5[1m]
Claude-Session: https://claude.ai/code/session_014FEzNTLFutCmTEAZ3zBg5R

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants