Skip to content

Downgrade: raise PrecompileTools compat floor to 1.1#80

Merged
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:fix-downgrade-floor
Jun 15, 2026
Merged

Downgrade: raise PrecompileTools compat floor to 1.1#80
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:fix-downgrade-floor

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member

Downgrade fix: raise PrecompileTools compat floor to 1.1

The conflict

The Downgrade workflow fails on the LTS (Julia 1.10) during precompilation:

ERROR: LoadError: UndefVarError: `@recompile_invalidations` not defined
in expression starting at .../StaticArrayInterface/.../src/StaticArrayInterface.jl:19
Failed to precompile StaticArrayInterface [0d7ed370-...]
  -> cascades to FastBroadcast, DiffEqBase, ModelingToolkit, MATLABDiffEq

Why the old floor was impossible

@recompile_invalidations is a macro provided by PrecompileTools, and it was only introduced in PrecompileTools v1.1.0 (the v1.0.x line exports only @setup_workload and @compile_workload). At the downgrade minimum the declared PrecompileTools = "1" floor resolves to PrecompileTools v1.0.0. The transitive dependency StaticArrayInterface uses @recompile_invalidations, so on v1.0.0 it cannot precompile. The old floor was therefore never co-installable with the rest of the dependency tree at the downgrade minimum.

The fix

Raise the floor to PrecompileTools = "1.1" — the smallest version that defines @recompile_invalidations. This forces the resolver to pick PrecompileTools >= 1.1.0 everywhere.

Resolve/precompile verification (local, Julia 1.10.11 = CI lts)

Isolated PrecompileTools + StaticArrayInterface, precompiled each:

PrecompileTools 1.0.0 + StaticArrayInterface -> UndefVarError: @recompile_invalidations not defined   (reproduces CI)
PrecompileTools 1.1.0 + StaticArrayInterface -> PRECOMPILE+LOAD SUCCESS

Note on the latest-versions ("Tests") job

The Tests workflow on master is separately red, but for an unrelated reason: the MATLAB engine cannot be provisioned on the CI runner, so MATLAB.MSession(...) throws UndefRefError: access to undefined reference at runtime. That is an environment limitation, not a versioning issue, and is not addressed here. This PR only fixes the downgrade-specific precompile failure.


This PR is a draft. Ignore until reviewed by @ChrisRackauckas.

🤖 Generated with Claude Code

…olvable at downgrade minimum)

At the downgrade minimum the `PrecompileTools = "1"` floor resolves to
PrecompileTools v1.0.0, which does not define `@recompile_invalidations`
(that macro was introduced in PrecompileTools v1.1.0). A transitive
dependency, StaticArrayInterface, uses `@recompile_invalidations`, so
precompilation fails with `UndefVarError: @recompile_invalidations not
defined`, cascading to DiffEqBase / ModelingToolkit / MATLABDiffEq.

Bumping the floor to 1.1 (the first version that defines the macro) forces
the resolver to pick PrecompileTools >= 1.1.0 everywhere.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ChrisRackauckas
ChrisRackauckas marked this pull request as ready for review June 15, 2026 04:57
@ChrisRackauckas
ChrisRackauckas merged commit b1cc7a7 into SciML:master Jun 15, 2026
4 of 9 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