From ddb9a620c97548a78c1bae3144c143fca8d3b4a0 Mon Sep 17 00:00:00 2001 From: qwjyh Date: Thu, 30 Jan 2025 18:05:17 +0900 Subject: [PATCH] fix(julials): remove sysimage to fix too old LanguageServer.jl version being resolved --- bin/neovim/add_dependencies.jl | 15 ++++++++------- bin/neovim/update_julials.jl | 18 +++++++++--------- dotfiles/neovim/init.lua | 2 +- 3 files changed, 18 insertions(+), 17 deletions(-) diff --git a/bin/neovim/add_dependencies.jl b/bin/neovim/add_dependencies.jl index f4560c5..6d0f710 100644 --- a/bin/neovim/add_dependencies.jl +++ b/bin/neovim/add_dependencies.jl @@ -6,24 +6,25 @@ using Pkg # add LanguageServer.jl Pkg.add("LanguageServer") -# add dependencies of LanguageServer.jl -pkg_ls = Pkg.project().dependencies["LanguageServer"] -pkg_ls_deps = Pkg.dependencies()[pkg_ls].dependencies |> keys -foreach(Pkg.add, pkg_ls_deps) +# add PackageCompiler.jl +Pkg.add("PackageCompiler") # add extra dependencies # these packages are manually collected pkg_extra = ["Logging", "Sockets", "DataStructures", "Tar", "ArgTools", "Dates", "Downloads", "TOML"] -foreach(Pkg.add, pkg_extra) -@info "dependency added" +Pkg.add(pkg_extra) +@info "added dependencies" + +# Extra package to be executed in precompiled code +pkg_precompiled = ["SymbolServer"] # save pkgs to be used for precompile functions with traced script out_path = joinpath(Pkg.project().path |> dirname, "precompile_exec_head.jl") @info "writing $(out_path)" open(out_path, "w") do io println(io, "using LanguageServer") - println(io, "using " * join(pkg_ls_deps, ", ")) println(io, "using " * join(pkg_extra, ", ")) + # println(io, "using " * join(pkg_precompiled, ", ")) if Sys.iswindows() println(io, "import FileWatching") end diff --git a/bin/neovim/update_julials.jl b/bin/neovim/update_julials.jl index 713c00b..a09971c 100644 --- a/bin/neovim/update_julials.jl +++ b/bin/neovim/update_julials.jl @@ -3,14 +3,14 @@ project_path = joinpath(homedir(), ".julia", "environments", "nvim-lspconfig") cd(project_path) do @info "now at " pwd() run(`julia --project=. -e 'using Pkg; Pkg.update()'`) - compile_traces = Iterators.filter(eachline("tracecompile.jl")) do line - # Remove anonymous functions from compile trace - !startswith(line, '#') && !occursin(r"\#\d+\#\d+", line) && !occursin(r"\#\#printstyled\#", line) - end |> join - read("precompile_exec_head.jl", String) * compile_traces |> (b -> write("precompile_exec.jl", b)) - @info "compiling sysimage..." - run(`julia --project=. -e 'using PackageCompiler; create_sysimage(["LanguageServer"], sysimage_path = "sys-ls.so", precompile_execution_file = ["precompile_exec.jl"])'`) - @info "post precompile" - run(`julia --project=. -J sys-ls.so -e 'using Pkg; Pkg.precompile()'`) + # compile_traces = Iterators.filter(eachline("tracecompile.jl")) do line + # # Remove anonymous functions from compile trace + # !startswith(line, '#') && !occursin(r"\#\d+\#\d+", line) && !occursin(r"\#\#printstyled\#", line) + # end |> join + # read("precompile_exec_head.jl", String) * compile_traces |> (b -> write("precompile_exec.jl", b)) + # @info "compiling sysimage..." + # run(`julia --project=. -e 'using PackageCompiler; create_sysimage(["LanguageServer"], sysimage_path = "sys-ls.so", precompile_execution_file = ["precompile_exec.jl"])'`) + # @info "post precompile" + # run(`julia --project=. -J sys-ls.so -e 'using Pkg; Pkg.precompile()'`) end diff --git a/dotfiles/neovim/init.lua b/dotfiles/neovim/init.lua index e4f7b46..415e042 100644 --- a/dotfiles/neovim/init.lua +++ b/dotfiles/neovim/init.lua @@ -686,7 +686,7 @@ lspconfig.julials.setup { on_attach = on_attach, capabilities = capabilities, cmd = { "julia", "--startup-file=no", "--history-file=no", - julials_so_option[1], julials_so_option[2], + -- julials_so_option[1], julials_so_option[2], -- use below 2 lines to collect script to be included in sysimage -- '--trace-compile', -- vim.env.HOME .. "/.julia/environments/nvim-lspconfig/tracecompile.jl",