Skip to content

build(deps): update FindFirstFunctions requirement from 2 to 2, 3.0 in the all-julia-packages group across 1 directory#548

Open
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/julia/all-julia-packages-60f43b60bb
Open

build(deps): update FindFirstFunctions requirement from 2 to 2, 3.0 in the all-julia-packages group across 1 directory#548
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/julia/all-julia-packages-60f43b60bb

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jun 15, 2026

Copy link
Copy Markdown
Contributor

Updates the requirements on FindFirstFunctions to permit the latest version.
Updates FindFirstFunctions to 3.0.0

Changelog

Sourced from FindFirstFunctions's changelog.

3.0.0

The 2.x sorted-search API was a single generic Base.searchsortedlast(::SearchStrategy, v, x[, hint]) / Base.searchsortedfirst(::SearchStrategy, ...) extended once per concrete strategy struct. That design made dispatch type-stable on the chosen strategy but produced Union returns whenever the strategy itself depended on runtime data — in particular Auto's decision tree, where the strategy struct returned by _auto_pick(v, hint) had a runtime-dependent type, broke @inferred, and gave Vector{Auto}-style containers a Union element type.

The 3.0 redesign replaces the multimethod dispatch on SearchStrategy singletons with a single FFF-owned dispatcher tagged by an enum:

searchsorted_last(KIND_BRACKET_GALLOP, v, x, hint)
searchsorted_first(KIND_INTERPOLATION_SEARCH, v, x)

The runtime if/elseif over StrategyKind values is well-predicted in hot loops, the kernel bodies inline, and the return path stays concrete (Int) regardless of which kind is picked at runtime. A benchmark sweep across 20 representative cells measured ~0 ns of overhead vs. the v2 multimethod path.

Breaking: the Base.searchsortedlast(::S, ...) API is removed

v3 no longer extends Base.searchsortedlast / Base.searchsortedfirst with strategy methods. The FFF-owned searchsorted_last / searchsorted_first dispatchers are the only search entry points; they accept a StrategyKind tag, a strategy struct (which forwards through [strategy_kind] and constant-folds for literal strategies), or a stateful strategy (Auto, GuesserHint):

v2 (removed) v3
searchsortedlast(BracketGallop(), v, x, hint) searchsorted_last(KIND_BRACKET_GALLOP, v, x, hint) or searchsorted_last(BracketGallop(), v, x, hint)
searchsortedfirst(InterpolationSearch(), v, x) searchsorted_first(KIND_INTERPOLATION_SEARCH, v, x) or searchsorted_first(InterpolationSearch(), v, x)
searchsortedlast(UniformStep(), r, x) searchsorted_last(KIND_UNIFORM_STEP, r, x) or searchsorted_last(UniformStep(), r, x)
searchsortedlast(Auto(v), v, x, hint) searchsorted_last(Auto(v), v, x, hint)
searchsortedfirst(GuesserHint(g), v, x) searchsorted_first(GuesserHint(g), v, x)

(The same rename applies to every other singleton strategy.) The batched in-place API (searchsortedlast! / searchsortedfirst! / searchsortedrange) is FFF-owned and unchanged.

Stateful strategies (Auto, GuesserHint) stay on the multimethod path because they carry per-instance data.

... (truncated)

Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore <dependency name> major version will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
  • @dependabot ignore <dependency name> minor version will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
  • @dependabot ignore <dependency name> will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
  • @dependabot unignore <dependency name> will remove all of the ignore conditions of the specified dependency
  • @dependabot unignore <dependency name> <ignore condition> will remove the ignore condition of the specified dependency and ignore conditions

Updates the requirements on [FindFirstFunctions](https://github.com/SciML/FindFirstFunctions.jl) to permit the latest version.

Updates `FindFirstFunctions` to 3.0.0
- [Release notes](https://github.com/SciML/FindFirstFunctions.jl/releases)
- [Changelog](https://github.com/SciML/FindFirstFunctions.jl/blob/main/NEWS.md)
- [Commits](https://github.com/SciML/FindFirstFunctions.jl/commits)

---
updated-dependencies:
- dependency-name: FindFirstFunctions
  dependency-version: 3.0.0
  dependency-type: direct:production
  dependency-group: all-julia-packages
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies julia Pull requests that update julia code labels Jun 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies julia Pull requests that update julia code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants