Skip to content

REPLExt: no method matching repl_init(::REPL.LineEditREPL) when loading packages in REPL mode. #56216

Open
JuliaLang/Pkg.jl
#4067
@ndgnuh

Description

Behaviour

When loading some packages in REPL, REPLExt throws an exception.

Expected behaviour

No exception thrown?

Reproduce

To reproduce:

  1. julia-release --startup-file=no -t 1
  2. using IJulia (or other packages)

Packages that reproduce the bug:

  • IJulia
  • Pluto
  • CairoMakie

Packages that don't reproduce the bug:

  • StaticArrays
  • PackageCompiler

Version info:

Julia Version 1.11.1
Commit 8f5b7ca12ad (2024-10-16 10:53 UTC)
Build Info:
  Official https://julialang.org/ release
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: 16 × AMD Ryzen 7 4800H with Radeon Graphics
  WORD_SIZE: 64
  LLVM: libLLVM-16.0.6 (ORCJIT, znver2)
Threads: 16 default, 0 interactive, 8 GC (on 16 virtual cores)
Environment:
  JULIA_NUM_THREADS = 16
  LD_LIBRARY_LOADPATH = /opt/wine-staging/lib64:/opt/wine-staging/lib:/opt/nvim-linux64/lib:/opt/containerd/lib:
  JULIA_CUDA_USE_BINARYBUILDER = true
  JULIA_DEPOT_PATH = /home/<my-user>/.cache/julia

Stack trace

ERROR: InitError: MethodError: no method matching repl_init(::REPL.LineEditREPL)
The function `repl_init` exists, but no method is defined for this combination of argument types.

Closest candidates are:
  repl_init(::REPL.AbstractREPL)
   @ REPLExt ~/.julia/juliaup/julia-1.11.1+0.x64.linux.gnu/share/julia/stdlib/v1.11/Pkg/ext/REPLExt/REPLExt.jl:163

Stacktrace:
  [1] __init__()
    @ REPLExt ~/.julia/juliaup/julia-1.11.1+0.x64.linux.gnu/share/julia/stdlib/v1.11/Pkg/ext/REPLExt/REPLExt.jl:305
  [2] run_module_init(mod::Module, i::Int64)
    @ Base ./loading.jl:1336
  [3] register_restored_modules(sv::Core.SimpleVector, pkg::Base.PkgId, path::String)
    @ Base ./loading.jl:1324
  [4] _include_from_serialized(pkg::Base.PkgId, path::String, ocachepath::String, depmods::Vector{Any}, ignore_native::Nothing; register::Bool)
    @ Base ./loading.jl:1213
  [5] _include_from_serialized (repeats 2 times)
    @ ./loading.jl:1169 [inlined]
  [6] _require_search_from_serialized(pkg::Base.PkgId, sourcepath::String, build_id::UInt128, stalecheck::Bool; reasons::Dict{String, Int64}, DEPOT_PATH::Vector{String})
    @ Base ./loading.jl:1969
  [7] _require(pkg::Base.PkgId, env::String)
    @ Base ./loading.jl:2450
  [8] __require_prelocked(uuidkey::Base.PkgId, env::String)
    @ Base ./loading.jl:2315
  [9] #invoke_in_world#3
    @ ./essentials.jl:1089 [inlined]
 [10] invoke_in_world
    @ ./essentials.jl:1086 [inlined]
 [11] _require_prelocked(uuidkey::Base.PkgId, env::String)
    @ Base ./loading.jl:2302
 [12] macro expansion
    @ ./loading.jl:2241 [inlined]
 [13] macro expansion
    @ ./lock.jl:273 [inlined]
 [14] __require(into::Module, mod::Symbol)
    @ Base ./loading.jl:2198
 [15] #invoke_in_world#3
    @ ./essentials.jl:1089 [inlined]
 [16] invoke_in_world
    @ ./essentials.jl:1086 [inlined]
 [17] require(into::Module, mod::Symbol)
    @ Base ./loading.jl:2191
during initialization of module REPLExt

Extra information

  • Loading the packages in non-interactive mode works just fine.
  • In REPL, when the exception is thrown, load the package again to make it works (v1.11.1).

Metadata

Assignees

No one assigned

    Labels

    REPLJulia's REPL (Read Eval Print Loop)invalidIndicates that an issue or pull request is no longer relevantregression 1.11Regression in the 1.11 release

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions