Skip to content

Import FunctionOperator from SciMLOperators in Core tests - #1127

Draft
ChrisRackauckas-Claude wants to merge 1 commit into
SciML:mainfrom
ChrisRackauckas-Claude:agent/fix-functionoperator-owner-import
Draft

Import FunctionOperator from SciMLOperators in Core tests#1127
ChrisRackauckas-Claude wants to merge 1 commit into
SciML:mainfrom
ChrisRackauckas-Claude:agent/fix-functionoperator-owner-import

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member

Ignore until reviewed by @ChrisRackauckas.

Summary

  • Import FunctionOperator, MatrixOperator, and WOperator directly from their owning package, SciMLOperators, at the start of test/Core/default_algs.jl.
  • Remove the later duplicate owner import.
  • Keep this change test-only; LinearSolve already has a direct SciMLOperators dependency.

Why

SciMLBase's re-export cleanup removed the transitive FunctionOperator binding. The boundary is SciMLBase commit b9c3507a2670fae804bf627ca32354efeee8dc15: its parent still exposes the binding, while that commit does not. SciMLOperators v1.25.0 publicly exports and documents FunctionOperator, so the Core test should import it from SciMLOperators rather than rely on a transitive re-export.

Verification

  • Clean-current focused reproduction before the patch: including test/Core/default_algs.jl stops at line 167 with UndefVarError: FunctionOperator not defined.
  • Rebased focused test against SciMLBase v3.40.1 in an isolated depot:
    Default Alg Tests | 109 pass | 109 total.
  • Whole-repository Runic check exited 0.
  • git diff --check upstream/main...HEAD exited 0.

I also ran the official GROUP=Core harness with the now-merged #1125 and #1126 fixes applied. It passed the default-algorithm tests (109/109) and continued through the ForwardDiff overload tests (128/128), then stopped at an independent clean-main regression in test/Core/traits.jl: UndefVarError: IdentityOperator not defined in SciMLBase. That owner-import regression needs a separate focused follow-up and is intentionally not included here.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

Investigation/validation scratchpad:

  • Clean LinearSolve baseline used for the original reproduction: fd8271c19613be69afba209e5f117c29f162f8a4, with SciMLBase v3.40.1.

  • Binding probe on that environment: (SciMLBase = v"3.40.1", FunctionOperator_visible = false).

  • Directly including the unmodified test/Core/default_algs.jl reproduced UndefVarError: FunctionOperator not defined at line 167.

  • SciMLBase boundary check:

    • parent 7b806c50a9e0419d525374d8b716aa51918876b8: the transitive binding is visible;
    • first bad b9c3507a2670fae804bf627ca32354efeee8dc15: the binding is no longer visible.
  • SciMLOperators v1.25.0 audit: (owner_public = true, owner_exported = true, owner_doc = true).

  • After rebasing this patch onto current LinearSolve main, the isolated focused run completed with:

    Test Summary:     | Pass  Total     Time
    Default Alg Tests |  109    109  4m15.1s
    
  • Whole-repository Runic check and git diff --check upstream/main...HEAD both exited 0.

  • The official current-dependency GROUP=Core validation, with Import issquare from SciMLOperators in ForwardDiff extension #1125 and Import cache_operator from SciMLOperators in Core tests #1126 applied, passed Default Alg Tests 109/109 and ForwardDiff Overloads 128/128. It subsequently stopped at the independent clean-main SciMLBase.IdentityOperator reference in test/Core/traits.jl (5 trait tests passed before the error). That requires its own owner-import investigation and patch.

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