Remove Static.jl and StaticArrayInterface; use FastBroadcast Serial/Threaded#3302
Closed
ChrisRackauckas-Claude wants to merge 4 commits intoSciML:masterfrom
Closed
Remove Static.jl and StaticArrayInterface; use FastBroadcast Serial/Threaded#3302ChrisRackauckas-Claude wants to merge 4 commits intoSciML:masterfrom
ChrisRackauckas-Claude wants to merge 4 commits intoSciML:masterfrom
Conversation
…hreaded Replace Static.True()/False() threading dispatch with FastBroadcast's Serial/Threaded types across DiffEqBase, OrdinaryDiffEqCore, and all subpackages. Remove StaticArrayInterface from Core and Differentiation. Require FastBroadcast >= 1.2. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The 9-arg and 8-arg overloads generate overlapping 8-arg methods when
thread has no type constraint. Add Union{Serial, Threaded, Bool} to
disambiguate, matching the old Union{False, True} pattern.
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
RAT 3.51 fixes the FastBroadcast extension to work with FastBroadcast v1.0+ (removes reference to FastBroadcast.Static which no longer exists). Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
SciMLSensitivity 7.69-7.99 has FastBroadcast compat "0.3.5-0.3" which doesn't include v1.x. Need >= 7.100 for FastBroadcast 1.2 compat. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Static.True()/Static.False()threading dispatch withFastBroadcast.Serial/FastBroadcast.Threadedtypes across DiffEqBase, OrdinaryDiffEqCore, and all 14 subpackagesStaticArrayInterfacefrom OrdinaryDiffEqCore and OrdinaryDiffEqDifferentiationreduce_tupimport from DiffEqBasecalculate_residuals!Array SIMD method (updated to dispatch on::Serial)Motivation
SnoopCompile invalidation analysis shows Static.jl causes ~3,400 method invalidations when loading OrdinaryDiffEq, from pirating
|,>,convert,xoretc. on broad types likeIntegerandNumber. None of these packages used Static for core functionality —Static.True/Falsewere only dispatch tags for thethreadparameter.FastBroadcast.Serial/Threaded(from SciML/FastBroadcast.jl#80) provide the same compile-time dispatch without type piracy. TheSerialcode path never references threaded methods, so loading Polyester cannot invalidate it.Depends on
Test plan
🤖 Generated with Claude Code