# Why is the VSCode REPL invalidating so much?

**URL:** <https://discourse.julialang.org/t/why-is-the-vscode-repl-invalidating-so-much/136590>\
**Category:** General Usage\
**Created:** [April 6, 2026, 1:45pm UTC](https://discourse.julialang.org/t/why-is-the-vscode-repl-invalidating-so-much/136590 "2026-04-06T13:45:58Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [April 6, 2026, 1:45pm UTC](https://discourse.julialang.org/t/why-is-the-vscode-repl-invalidating-so-much/136590/1 "2026-04-06T13:45:58Z")

</div>

The example used he is precompiled and runs much faster on Julia 1.10 but to use @trace\_compile I must use 1.12

Note, I checked that the same precompiled cache is been used in both cases.

```julia-auto
## 'Normal' REPL
julia> @time @eval basemap(region=(-5, 5, -5, 5), proj="X10c", frame=(axes=:WSne, annot=:auto, grid=5))
  0.249256 seconds (262.62 k allocations: 13.169 MiB, 18.36% gc time, 97.12% compilation time)

## VSCode REPL
julia> @time @eval basemap(region=(-5, 5, -5, 5), proj="X10c", frame=(axes=:WSne, annot=:auto, grid=5))
  4.723793 seconds (24.08 M allocations: 1.145 GiB, 3.56% gc time, 99.94% compilation time: 12% of which was recompilation)

## 'Normal' REPL
julia> @trace_compile basemap(region=(-5, 5, -5, 5), proj="X10c", frame=(axes=:WSne, annot=:auto, grid=5))
#= 2.3 ms =# precompile(Tuple{typeof(Base.join), Array{String, 1}})
#= 3.3 ms =# precompile(Tuple{Type{NamedTuple{(:x, :y, :z, :secondary), T} where T<:Tuple}, NTuple{4, Bool}})
#= 26.7 ms =# precompile(Tuple{typeof(GMT.axis), NamedTuple{(:axes, :annot, :grid), Tuple{Symbol, Symbol, Int64}}, Base.Dict{Symbol, Any}})
#= 3.4 ms =# precompile(Tuple{typeof(GMT.helper0_axes), Symbol})

## VSCode REPL
julia> @trace_compile basemap(region=(-5, 5, -5, 5), proj="X10c", frame=(axes=:WSne, annot=:auto, grid=5))
#= 2.6 ms =# precompile(Tuple{typeof(Base.join), Array{String, 1}})
#= 3.5 ms =# precompile(Tuple{Type{NamedTuple{(:x, :y, :z, :secondary), T} where T<:Tuple}, NTuple{4, Bool}})
#= 26.4 ms =# precompile(Tuple{typeof(GMT.axis), NamedTuple{(:axes, :annot, :grid), Tuple{Symbol, Symbol, Int64}}, Base.Dict{Symbol, Any}})
#= 354.1 ms =# precompile(Tuple{typeof(GMT.axis), Base.Dict{Symbol, Any}, Bool, Bool, Bool, Bool, Base.Dict{Symbol, Any}}) # recompile
#= 3.6 ms =# precompile(Tuple{typeof(GMT.helper0_axes), Symbol})
#= 219.8 ms =# precompile(Tuple{GMT.var"##add_opt_pen#230", String, Bool, typeof(GMT.add_opt_pen), Base.Dict{Symbol, Any}, Union{Nothing, Array{Symbol, 1}, Array{Symbol, 2}}}) # recompile

```

---

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [April 6, 2026, 2:20pm UTC](https://discourse.julialang.org/t/why-is-the-vscode-repl-invalidating-so-much/136590/2 "2026-04-06T14:20:47Z")

</div>

With `FlexibleJulia` I see the same as the `Normal REPL`

```julia-auto
julia> @trace_compile basemap(region=(-5, 5, -5, 5), proj="X10c", frame=(axes=:WSne, annot=:auto, grid=5))
#= 3.3 ms =# precompile(Tuple{typeof(Base.join), Array{String, 1}})
#= 4.0 ms =# precompile(Tuple{Type{NamedTuple{(:x, :y, :z, :secondary), T} where T<:Tuple}, NTuple{4, Bool}})
#= 34.4 ms =# precompile(Tuple{typeof(GMT.axis), NamedTuple{(:axes, :annot, :grid), Tuple{Symbol, Symbol, Int64}}, Base.Dict{Symbol, Any}})
#= 5.2 ms =# precompile(Tuple{typeof(GMT.helper0_axes), Symbol})

```

But on the other hand it puts a couple cores running non-stop.

---

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [April 6, 2026, 7:01pm UTC](https://discourse.julialang.org/t/why-is-the-vscode-repl-invalidating-so-much/136590/3 "2026-04-06T19:01:53Z")

</div>

`julide` also behaves well (same as in `Normal REPL`). So, all points to a VSCode issue.

---

<div class="post-metadata">

**Author:** ![pfitzseb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pfitzseb/32/45566_2.png) [@pfitzseb](https://discourse.julialang.org/u/pfitzseb)\
**Post date:** [April 7, 2026, 7:18am UTC](https://discourse.julialang.org/t/why-is-the-vscode-repl-invalidating-so-much/136590/4 "2026-04-07T07:18:41Z")

</div>

The extension loads a bunch of code into the REPL process, so there are plenty of opportunities for invalidations. A fairly significant one is [Set max\_methods for `lock` and `unlock` to 1 by JamesWrigley · Pull Request #60803 · JuliaLang/julia · GitHub](https://github.com/JuliaLang/julia/pull/60803), but that doesn’t seem super relevant in your case. You’ll have to do some more digging to figure out what exactly is causing the invalidations here.
