Odd stacktrace in vscode jupyter

Dear all

I just realized an annoying feature in the stacktraces of the VScode jupyter notebook interface (VS Code Version: 1.61.2, julia version 1.6.3, on Mac OS X BigSur 11.6). I am using the Julia VS Code Extension (and not the Jupyter one shipped by VScode).

Julia VS Code Extension stacktrace of the following the command:

[1,2,3] * [1,2,3]


  [1] top-level scope
    @ ~/Dropbox (Personal)/CORSO_NUMERICAL/01-LANGUAGE/01-Language.ipynb:1
  [2] eval
    @ ./boot.jl:360 [inlined]
  [3] include_string(mapexpr::typeof(REPL.softscope), mod::Module, code::String, filename::String)
    @ Base ./loading.jl:1116
  [4] #invokelatest#2
    @ ./essentials.jl:708 [inlined]
  [5] invokelatest
    @ ./essentials.jl:706 [inlined]
  [6] (::VSCodeServer.var"#98#99"{VSCodeServer.NotebookRunCellArguments, String})()
    @ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.4.3/scripts/packages/VSCodeServer/src/serve_notebook.jl:18
  [7] withpath(f::VSCodeServer.var"#98#99"{VSCodeServer.NotebookRunCellArguments, String}, path::String)
    @ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.4.3/scripts/packages/VSCodeServer/src/repl.jl:185
  [8] notebook_runcell_request(conn::VSCodeServer.JSONRPC.JSONRPCEndpoint{Base.PipeEndpoint, Base.PipeEndpoint}, params::VSCodeServer.NotebookRunCellArguments)
    @ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.4.3/scripts/packages/VSCodeServer/src/serve_notebook.jl:14
  [9] dispatch_msg(x::VSCodeServer.JSONRPC.JSONRPCEndpoint{Base.PipeEndpoint, Base.PipeEndpoint}, dispatcher::VSCodeServer.JSONRPC.MsgDispatcher, msg::Dict{String, Any})
    @ VSCodeServer.JSONRPC ~/.vscode/extensions/julialang.language-julia-1.4.3/scripts/packages/JSONRPC/src/typed.jl:67
 [10] serve_notebook(pipename::String; crashreporting_pipename::String)
    @ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.4.3/scripts/packages/VSCodeServer/src/serve_notebook.jl:94
 [11] top-level scope
    @ ~/.vscode/extensions/julialang.language-julia-1.4.3/scripts/notebook/notebook.jl:10
 [12] include(mod::Module, _path::String)
    @ Base ./Base.jl:386
 [13] exec_options(opts::Base.JLOptions)
    @ Base ./client.jl:285
 [14] _start()
    @ Base ./client.jl:485

Whereas the same command in a jupyter notebook (same kernel but run with IJulia) gives a much cleaner:

MethodError: no method matching *(::Vector{Int64}, ::Vector{Int64})
Closest candidates are:
  *(::Any, ::Any, ::Any, ::Any...) at operators.jl:560
  *(::StridedMatrix{T}, ::StridedVector{S}) where {T<:Union{Float32, Float64, ComplexF32, ComplexF64}, S<:Real} at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.6/LinearAlgebra/src/matmul.jl:44
  *(::StridedVecOrMat{T} where T, ::LinearAlgebra.Adjoint{var"#s814", var"#s813"} where {var"#s814", var"#s813"<:LinearAlgebra.LQPackedQ}) at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.6/LinearAlgebra/src/lq.jl:254

Apparently, the Method Error section has been swallowed by the VSCode extension. This is particularly annoying as I am using VS Code Extension for didactic purposes and you can imagine how confusing it could be for a beginner such a long and useless stacktrace.

Will be fixed with the next release, which should be out sometime this week, hopefully.

… astonished by how fast was the reply :wink:

Thanks a lot, and looking forward to the new release …


Sorry for bothering you again @pfitzseb, any news on this?

In case the fix is already implemented (if I understand well it should be #2509) how can I make it available to my poor students?

My version does not seems to work still:

VSCode Version: 1.62.1
Commit: f4af3cbf5a99787542e2a30fe1fd37cd644cc31f
Julia Extension v1.4.3

Ah, I realized that the last Julia Extension version is v1.5.2 but VSCode Extension Manager only suggests 1.4.3. Is there a way to install the last version of the extension?

You can install Julia Insider - Visual Studio Marketplace for now. I’m still working on fixing a few gnarly issues, which is why that version isn’t in the normal release channel.