Skip to content

Fix ExtendedJumpArray eltype assertion on 32-bit Julia - #657

Merged
ChrisRackauckas merged 7 commits into
SciML:masterfrom
ChrisRackauckas-Claude:fix-32bit-jump-u-eltype
Sep 9, 2026
Merged

ChrisRackauckas merged 7 commits into
SciML:masterfrom
ChrisRackauckas-Claude:fix-32bit-jump-u-eltype

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member

Summary

  • x86 InterfaceI fails eltype(result.jump_u) == Int64 (actual Int32)
  • Assert against native Int

Test plan

  • InterfaceI x86 green
  • Existing InterfaceI x64 green

Made with Cursor

ChrisRackauckas and others added 4 commits September 8, 2026 19:00
Broadcast of UnitRange indices yields native Int on each word size.

Co-authored-by: Cursor <cursoragent@cursor.com>
hash(::UInt64, ::UInt64) is not defined on i686; salt with % UInt.

Co-authored-by: Cursor <cursoragent@cursor.com>
floor(Int64, …) made F=Int64 while pidtogroup/kwargs used Int
(Int32 on i686), so PriorityTimeTable construction MethodError'd.

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

Copy link
Copy Markdown
Member Author

x86 InterfaceI still fails after the PriorityTimeTable Int fix with:

InexactError: Int32(...) in DiffEqBase.check_event_occurence → range(..., length=callback.interp_points) / Base._linspace on i686.

Fix is in OrdinaryDiffEq (DiffEqBase lives at lib/DiffEqBase): SciML/OrdinaryDiffEq.jl#4487

Once that DiffEqBase is released, this PR's remaining x86 failure should clear (or we can temporarily [sources] it for a retest).

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

Copy link
Copy Markdown
Member Author

x86 still fails on DiffEqBase check_event_occurrence → _linspace(..., len::Int32) (InexactError: Int32(...)).

This branch temporarily [sources] DiffEqBase from SciML/OrdinaryDiffEq.jl#4487 (Int64(callback.interp_points)) so CI can validate the Jump-side fixes. Drop the [sources] block once DiffEqBase with that fix is registered.

Julia 1.10 Pkg.develop rejects rev; SciML/.github#136 switches URL sources
to Pkg.add. Until that lands (and v1 is updated), keep Jump-local Int fixes
without the DiffEqBase monorepo pin — VR callback x86 still needs ODE#4487.

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

Copy link
Copy Markdown
Member Author

Dropped the temporary DiffEqBase [sources] pin: on Julia 1.10, SciML's develop_sources helper calls Pkg.develop, which rejects rev (consider using add instead). Fix is in SciML/.github#136 (Pkg.add for URL sources). Jump-local Int fixes remain here; VR-callback x86 still needs OrdinaryDiffEq#4487 / a DiffEqBase release.

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

x86 InexactError: Int32(...) in check_event_occurrence is the DiffEqBase interp_points/range issue fixed in SciML/OrdinaryDiffEq#4487.

DiffEqBase v7.21.0 registration is open: JuliaRegistries/General#167661. Once that merges and propagates, this PR's x86 lane should pass without temporary [sources] (previously dropped because LTS develop_sources broke).

Will re-run CI after registry merge.

Co-authored-by: Cursor <cursoragent@cursor.com>
@ChrisRackauckas
ChrisRackauckas merged commit f067e4a into SciML:master Sep 9, 2026
13 checks passed
ChrisRackauckas added a commit that referenced this pull request Sep 10, 2026
- Add 32-bit InterfaceI CI lane via test_groups.toml (#656)
- Fix ExtendedJumpArray eltype assertion on 32-bit Julia (#657)



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