JuliaGizmos / Interact.jl

Interactive widgets to play with your Julia code
Other
525 stars 76 forks source link

precompilation error on julia-1.6.0 #392

Closed johnfgibson closed 3 years ago

johnfgibson commented 3 years ago

Interact fails to precompile on Julia-1.6.0. I just downloaded 1.6.0, installed a few packages, and got the following error on using Interact

gibson@sophist$ julia
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.6.0 (2021-03-24)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release
|__/       
julia> using Pkg

julia> Pkg.resolve()
  No Changes to `~/.julia/environments/v1.6/Project.toml`
  No Changes to `~/.julia/environments/v1.6/Manifest.toml`

julia> using Interact
[ Info: Precompiling Interact [c601a237-2ae4-5e1e-952c-7a85b0c7eef1]
ERROR: LoadError: ArgumentError: Package Interact does not have Reexport in its dependencies:
- If you have Interact checked out for development and have
  added Reexport as a dependency but haven't updated your primary
  environment's manifest file, try `Pkg.resolve()`.
- Otherwise you may need to report an issue with Interact
Stacktrace:
 [1] require(into::Module, mod::Symbol)
   @ Base ./loading.jl:884
 [2] include
   @ ./Base.jl:386 [inlined]
 [3] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt64}}, source::Nothing)
   @ Base ./loading.jl:1213
 [4] top-level scope
   @ none:1
 [5] eval
   @ ./boot.jl:360 [inlined]
 [6] eval(x::Expr)
   @ Base.MainInclude ./client.jl:446
 [7] top-level scope
   @ none:1
in expression starting at /home/gibson/.julia/packages/Interact/iMA1c/src/Interact.jl:3
ERROR: Failed to precompile Interact [c601a237-2ae4-5e1e-952c-7a85b0c7eef1] to /home/gibson/.julia/compiled/v1.6/Interact/jl_9jD3BS.
Stacktrace:
 [1] error(s::String)
   @ Base ./error.jl:33
 [2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::Base.TTY, internal_stdout::Base.TTY)
   @ Base ./loading.jl:1360
 [3] compilecache(pkg::Base.PkgId, path::String)
   @ Base ./loading.jl:1306
 [4] _require(pkg::Base.PkgId)
   @ Base ./loading.jl:1021
 [5] require(uuidkey::Base.PkgId)
   @ Base ./loading.jl:914
 [6] require(into::Module, mod::Symbol)
   @ Base ./loading.jl:901

julia> versioninfo()
Julia Version 1.6.0
Commit f9720dc2eb (2021-03-24 12:55 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Core(TM) i7-3960X CPU @ 3.30GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-11.0.1 (ORCJIT, sandybridge)

julia> Pkg.status("Interact")
      Status `~/.julia/environments/v1.6/Project.toml`
  [c601a237] Interact v0.8.0
johnfgibson commented 3 years ago

After a couple weeks work with other things on julia-1.6.0, Interact now precompiles and works fine. I'm not sure what changed, but since I am no longer experiencing any problems, I'll close this issue.

rgcv commented 3 years ago

I can confirm this issue still happens in 1.6. After looking at the log above, it looks like julia is pulling in an old version of Interact, namely version v0.8.0. Adding the latest version manually (as of time of writing) seems to "solve" the issue

(@v1.6) pkg> add Interact@v0.10.3
   Resolving package versions...
   Installed Adapt ─────── v3.3.0
   Installed Preferences ─ v1.2.1
   Installed Tables ────── v1.4.2
   Installed Interact ──── v0.10.3
   Installed JLLWrappers ─ v1.3.0
    Updating `~/.julia/environments/v1.6/Project.toml`
  [c601a237] ↑ Interact v0.8.0 ⇒ v0.10.3
    Updating `~/.julia/environments/v1.6/Manifest.toml`
  [b99e7846] - BinaryProvider v0.5.10
  [34da2185] - Compat v2.2.1
  [864edb3b] - DataStructures v0.17.20
  [c601a237] ↑ Interact v0.8.0 ⇒ v0.10.3
  [7981ab7d] - InteractBulma v0.6.2
  [692b3bcd] ↑ JLLWrappers v1.2.0 ⇒ v1.3.0
  [21216c6a] + Preferences v1.2.1
  [189a3867] ↓ Reexport v1.0.0 ⇒ v0.2.0
  [322a6be2] - Sass v0.1.0
  [bd369af6] ↑ Tables v1.4.1 ⇒ v1.4.2
  [8bb1440f] - DelimitedFiles
  [1a1011a3] - SharedArrays
    Building Interact → `~/.julia/scratchspaces/44cfe95a-1eb2-52ea-b672-e2afdf69b78f/381c584142ac744bcc23af64bff3e3dc44d7f632/build.log`
  Progress [========================================>]  41/41
41 dependencies successfully precompiled in 72 seconds (49 already precompiled)

EDIT: This leads me to believe it's a registry or package server-related issue, not an issue with Interact.

garrison commented 3 years ago

it looks like julia is pulling in an old version of Interact, namely version v0.8.0

same thing happened to me, using julia 1.6.2

When I run add Interact@v0.10.3, I get

   Installed Compat ─ v3.32.0
    Updating `Project.toml`
  [c601a237] ↑ Interact v0.8.0 ⇒ v0.10.3
  [033835bb] ↓ JLD2 v0.4.13 ⇒ v0.4.3
  [7f904dfe] ↓ PlutoUI v0.7.9 ⇒ v0.7.1
  [189a3867] ↓ Reexport v1.1.0 ⇒ v0.2.0
    Updating `Manifest.toml`
  [b99e7846] - BinaryProvider v0.5.10
  [944b1d66] + CodecZlib v0.7.0
  [34da2185] ↑ Compat v2.2.1 ⇒ v3.32.0
  [864edb3b] ↑ DataStructures v0.17.20 ⇒ v0.18.9
  [c601a237] ↑ Interact v0.8.0 ⇒ v0.10.3
  [7981ab7d] - InteractBulma v0.6.2
  [033835bb] ↓ JLD2 v0.4.13 ⇒ v0.4.3
  [7f904dfe] ↓ PlutoUI v0.7.9 ⇒ v0.7.1
  [189a3867] ↓ Reexport v1.1.0 ⇒ v0.2.0
  [322a6be2] - Sass v0.1.0

so it seems like something really wants the old Interact