Skip to content

Keep OrdinaryDiffEqDefault precompile helpers local - #4074

Merged
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:agent/localize-default-precompile-helpers
Aug 2, 2026
Merged

ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:agent/localize-default-precompile-helpers

Conversation

@ChrisRackauckas-Claude

@ChrisRackauckas-Claude ChrisRackauckas-Claude commented Jul 29, 2026 •

Copy link
Copy Markdown
Member

Ignore until reviewed by @ChrisRackauckas.

Summary

  • define the small Lorenz precompile workloads locally in OrdinaryDiffEqDefault
  • use SciMLBase.AutoDePSpecialize through its public owner
  • remove the dead OrdinaryDiffEqCore.lorenz_oop access
  • remove the ExplicitImports exception for four private Core workload names

The earlier version/floor commits were dropped during the rebase because current master already contains the required OrdinaryDiffEqDefault 2.4.2 release and OrdinaryDiffEqCore 4.11 floor.

Root cause

OrdinaryDiffEqDefault reached into private workload fixtures defined by OrdinaryDiffEqCore. The QA exception covered the original four names, but commit 5d640b89a756fd0c81e86f2a09b91862a85be555 added lorenz_pref and lorenz_pref_params without extending the exception. Its parent f06fd803209efb1fae0f5130c70574546f1bd7bc has no unignored private accesses; the commit has exactly those two.

Adding another exception would preserve the private dependency. The workload RHS functions are tiny and package-specific, so this copies them locally and lets the public-access QA run without a Lorenz allow-list.

Validation

Rebased onto current upstream master a7080c6f6d992edee79fa40450e0bd6eb0b8f735.

  • clean baseline, GROUP=OrdinaryDiffEqDefault_QA: JET 1/1; Aqua 18 passed and 1 errored on lorenz_pref / lorenz_pref_params
  • patched, GROUP=OrdinaryDiffEqDefault_QA: JET 1/1; Aqua 19/19
  • patched, GROUP=OrdinaryDiffEqDefault_Core: Default Solver Tests 46/46
  • Runic: both changed Julia files pass

Follow-up audit

Other solver sublibraries have their own explicit exceptions for the same Core workload fixtures. They are independent packages and are intentionally left for separate focused cleanup PRs.

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

Terminal CI classification for head afc906e5bb: 8 checks succeeded, 3 were skipped, and 125 failed.

No package test body failed on this PR. Excluding Runic, all 124 failures stopped in resolution, source development, dependency installation, or package build before the workflow test step:

  • 57 julia-downgrade-compat resolver failures;
  • 38 julia-buildpkg failures, including every OrdinaryDiffEqDefault lane;
  • 15 root in-repo source-development failures;
  • 12 downstream integration jobs, each inspected and each reporting the SciMLBase unsatisfiable requirement before Pkg.test;
  • 1 Default in-repo source-development failure;
  • 1 documentation dependency-install failure.

The 67 non-downgrade failures all explicitly report the current SciMLBase 3.39/3.40 resolver boundary. The 57 downgrade jobs stop inside the downgrade resolver with Unsatisfiable; the corresponding lanes succeed on focused prerequisite #4066. The remaining failure is whole-tree Runic, whose log lists only disco.jl, controllers.jl, and disco_tests.jl, the clean-master formatting debt isolated in #4064; neither changed Default file appears.

Local validation on the exact implementation plus validation-only #4066 remains green: Default Core 46/46, JET 1/1, Aqua/ExplicitImports 19/19, and changed-file Runic. No CI-only workaround or unrelated prerequisite is being folded into this focused PR.

Copy link
Copy Markdown
Member Author

Added the packaging correction in 528e9b0858: OrdinaryDiffEqDefault now requires OrdinaryDiffEqCore = "4.11".

Local verification on the exact updated tree:

  • GROUP=OrdinaryDiffEqDefault_Core: Default Solver Tests 46/46, package tests passed;
  • GROUP=OrdinaryDiffEqDefault_QA: JET 1/1 and Aqua/ExplicitImports 19/19, package tests passed;
  • clean registered dependency graph pinned to Core 4.10: resolution succeeds, then precompilation reproduces UndefVarError: lorenz_pref not defined in OrdinaryDiffEqCore through the registered Tsit5 workload;
  • the same clean registered graph with Core 4.11: package precompiles and the Default algorithm solve/retcode/endpoint checks pass 5/5.

The temporary registered-graph checkout was restored and removed after the test. The branch is clean and matches pushed head 528e9b085851c01a542ce2839bbc3389b7c49ba0.

Copy link
Copy Markdown
Member Author

One-hour terminal CI audit for corrected head 528e9b0858: 8 checks succeeded, 3 were skipped, and 125 failed. No hosted job reached a failure in the Default helper localization or the new Core 4.11 floor.

Exact breakdown:

  • all 10 triggered sublibrary failures (five OrdinaryDiffEqDefault, five DelayDiffEq) were checked and contain the same SciMLBase unsatisfiable requirement before tests;
  • all 44 root test jobs stopped before tests (29 in julia-buildpkg, 15 developing in-repo sources) at that compatibility boundary;
  • all 12 external downstream failure logs were checked individually and contain the same SciMLBase resolver failure;
  • documentation stopped at the same boundary;
  • 56 sublibrary downgrade jobs and the root downgrade job stopped inside the downgrade resolver before tests;
  • Runic lists only the three inherited DISCO files owned by Run Runic on the disco-optimizations files #4064. The changed Default source and QA files are explicitly marked green in the hosted Runic log.

The resolver boundary is fixed separately by rebased #4066 (661bd35c64). Exact local evidence on this head remains green: Default Core 46/46, JET 1/1, Aqua/ExplicitImports 19/19, registered Core 4.11 solve checks 5/5; the Core 4.10 registered control reproduces the lorenz_pref precompile failure. No CI-only workaround is needed in #4074.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
@ChrisRackauckas-Claude
ChrisRackauckas-Claude force-pushed the agent/localize-default-precompile-helpers branch from 528e9b0 to ba616a1 Compare August 2, 2026 14:31
@ChrisRackauckas
ChrisRackauckas marked this pull request as ready for review August 2, 2026 21:25
@ChrisRackauckas
ChrisRackauckas merged commit 1c2b0b7 into SciML:master Aug 2, 2026
125 of 136 checks passed
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