Skip to content

Circular dependency detected for Symbolics.jl on Julia 1.11.0-rc2 #55517

@kapple19

Description

@kapple19

Commit a45ad4ac3bf7f5560a8fc20480b8c7459f5018aa of Symbolics.jl introduces some issues.
The issue reported by Julia depends on the Julia version.

Reproduction steps:

  1. Open Julia 1.10.4 or 1.11.0-rc2.
  2. Open a temporary environment.
  3. ]dev Symbolics on the commit.
  4. ]add Aqua (the below issue for Julia 1.11.0-rc2 also triggers for adding other packages).

Upon adding Aqua.jl:

  • Julia 1.10.4 reports SymbolicsForwardDiffExt and SymbolicsPreallocationToolsExt do not support precompilation but is imported by a module that does.
  • Julia 1.11.0-rc2 reports a circular dependency.

@ChrisRackauckas's PR 1220 on Symbolics.jl commit 33cbdfbd9b4ab6dd6c59c06a9ee5d7b31a3860cc results in the the precompilation issue report disappearing on Julia 1.10.4, but the circular dependency still appears on Julia 1.11.0-rc2.

The 1.11.0-rc2 report:

┌ Warning: Circular dependency detected. Precompilation will be skipped for:
│   Base.PkgId(Base.UUID("d479e226-fb54-5ebe-a75e-a7af7f39127f"), "SymbolicsPreallocationToolsExt")
│   Base.PkgId(Base.UUID("4a213a23-c09c-5cde-9712-b631ad2c72df"), "SymbolicsForwardDiffExt")
└ @ Base.Precompilation precompilation.jl:552

The Julia 1.10.4 report:

  2 dependencies had output during precompilation:
┌ Symbolics → SymbolicsForwardDiffExt
│  ┌ Warning: Module SymbolicsForwardDiffExt with build ID ffffffff-ffff-ffff-0000-2728e2404da5 is missing from the cache.
│  │ This may mean SymbolicsForwardDiffExt [4a213a23-c09c-5cde-9712-b631ad2c72df] does not support precompilation but is imported by a module that does.
│  └ @ Base loading.jl:1948
│  ┌ Error: Error during loading of extension SymbolicsForwardDiffExt of Symbolics, use `Base.retry_load_extensions()` to retry.
│  │   exception =
│  │    1-element ExceptionStack:
│  │    Declaring __precompile__(false) is not allowed in files that are being precompiled.
│  │    Stacktrace:
│  │      [1] _require(pkg::Base.PkgId, env::Nothing)
│  │        @ Base .\loading.jl:1952
│  │      [2] __require_prelocked(uuidkey::Base.PkgId, env::Nothing)
│  │        @ Base .\loading.jl:1812
│  │      [3] #invoke_in_world#3
│  │        @ .\essentials.jl:926 [inlined]

... OUTPUT OMITTED IN THIS COPY-PASTE ...

│  │     [27] _start()
│  │        @ Base .\client.jl:552
│  └ @ Base loading.jl:1301
└
┌ Symbolics → SymbolicsPreallocationToolsExt
│  ┌ Warning: Module SymbolicsPreallocationToolsExt with build ID ffffffff-ffff-ffff-0000-272742eabf11 is missing from the cache.
│  │ This may mean SymbolicsPreallocationToolsExt [d479e226-fb54-5ebe-a75e-a7af7f39127f] does not support precompilation but is imported by a module that does.
│  └ @ Base loading.jl:1948
│  ┌ Error: Error during loading of extension SymbolicsPreallocationToolsExt of Symbolics, use `Base.retry_load_extensions()` to retry.
│  │   exception =
│  │    1-element ExceptionStack:
│  │    Declaring __precompile__(false) is not allowed in files that are being precompiled.
│  │    Stacktrace:
│  │      [1] _require(pkg::Base.PkgId, env::Nothing)
│  │        @ Base .\loading.jl:1952
│  │      [2] __require_prelocked(uuidkey::Base.PkgId, env::Nothing)
│  │        @ Base .\loading.jl:1812
│  │      [3] #invoke_in_world#3
│  │        @ .\essentials.jl:926 [inlined]

... OUTPUT OMITTED IN THIS COPY-PASTE ...

│  │     [27] _start()
│  │        @ Base .\client.jl:552
│  └ @ Base loading.jl:1301
└

This issue was previously mis-reported at JuliaSymbolics/Symbolics.jl#1221.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions