From 6437f2c9571a2637a7c572d644ff0b8eb53c22a0 Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Tue, 31 Mar 2026 06:51:05 -0400 Subject: [PATCH] Fix FastBroadcast extension for v1.0 API Update RecursiveArrayToolsFastBroadcastExt to use FastBroadcast v1.0's 2-arg fast_materialize!(dst, bc) signature instead of the old 4-arg fast_materialize!(::Static.False, ::DB, dst, bc). The 2-arg method is the base dispatch point that Serial() delegates to, so this covers all non-threaded paths. Require FastBroadcast >= 1.1. Co-Authored-By: Chris Rackauckas Co-Authored-By: Claude Opus 4.6 (1M context) --- Project.toml | 2 +- ext/RecursiveArrayToolsFastBroadcastExt.jl | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Project.toml b/Project.toml index 6253ed99..f55c706d 100644 --- a/Project.toml +++ b/Project.toml @@ -47,7 +47,7 @@ Adapt = "4" Aqua = "0.8" ArrayInterface = "7.16" DocStringExtensions = "0.9.3" -FastBroadcast = "0.3.5, 1" +FastBroadcast = "1.1" ForwardDiff = "0.10.38, 1" GPUArraysCore = "0.2" KernelAbstractions = "0.9.36" diff --git a/ext/RecursiveArrayToolsFastBroadcastExt.jl b/ext/RecursiveArrayToolsFastBroadcastExt.jl index 473657a6..07fd1425 100644 --- a/ext/RecursiveArrayToolsFastBroadcastExt.jl +++ b/ext/RecursiveArrayToolsFastBroadcastExt.jl @@ -8,10 +8,11 @@ const AbstractVectorOfSArray = AbstractVectorOfArray{ T, N, <:AbstractVector{<:StaticArraysCore.SArray}, } where {T, N} +# Override the base 2-arg path (called by Serial dispatch and direct macro path) @inline function FastBroadcast.fast_materialize!( - ::FastBroadcast.Static.False, ::DB, dst::AbstractVectorOfSArray, + dst::AbstractVectorOfSArray, bc::Broadcast.Broadcasted{S} - ) where {S, DB} + ) where {S} if FastBroadcast.use_fast_broadcast(S) for i in 1:length(dst.u) unpacked = RecursiveArrayTools.unpack_voa(bc, i)