lite-xl / lite-xl-lsp

LSP Plugin for Lite XL editor
MIT License
159 stars 21 forks source link

[Bug] High CPU usage after closing file, with "stop_unneeded_servers" set to "true" #76

Closed ghost closed 1 year ago

ghost commented 1 year ago

As the title says, when closing a file (which had an active LSP server) and stop_unneeded_servers set to true, it'll result in an infinite loop here: https://github.com/lite-xl/lite-xl-lsp/blob/1eb5b431f91333650c35a04bc386a3b621235f2e/timer.lua#L37

A temporary hack would be to set stop_unneeded_servers to false, or quit_timeout to 0 for each LSP server

System and env info:

ghost commented 1 year ago

Tested it with gopls, pylsp and jedi btw.

Also did a print("yielding") above the yield(), which resulted in my terminal getting spammed with said line

jgmdev commented 1 year ago

This other repo takes a more basic approach to hovering that doesn't involves the tokenizer and adds some additional checks https://github.com/pragtical/lsp You could try it with latest rolling release of pragtical which is a fork of both lite and lite-xl with a different approach and additions to the base editor. If you try it let me know if the issue persist.

ghost commented 1 year ago

Alright, I'll compile it and see what I can find and I'll report back

ghost commented 1 year ago

Off to a great start, compilation issues...

jgmdev commented 1 year ago

Off to a great start, compilation issues...

This is how it is built on archlinux, dependencies are listed https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=pragtical-git

Also after compiling you can use ./scripts/run-local.sh build so it copies the right files before running. If too much hassle you can try the appimage but fuse needs to be installed for the appimage to properly mount.

Edit: also you can always forcefallback to fetch and build all dependencies.

ghost commented 1 year ago

Sorry for the late response,went to bed instead of trying to solve it for another 4 hours.

Here's the error:

subprojects/ppm/meson.build:22:16: ERROR: Command `/usr/bin/lua -e 'f = string.dump(assert(loadfile("/home/user/pragtical/subprojects/ppm/src/ppm.lua"))) io.open("/home/user/pragtical/build-linux-x86_64/subprojects/ppm/ppm.lua.c", "wb"):write("unsigned char ppm_luac[] = \"" .. f:gsub(".", function (c) return string.format("\\x%02X",string.byte(c)) end) .. "\";unsigned int ppm_luac_len = " .. #f .. ";")'` failed with status 1.

Here's the full debug log:

Build started at 2023-11-06T12:52:02.824235
Main binary: /usr/bin/python3
Build Options: -Dprefix=/ -Dbuildtype=debugoptimized
Python system: Linux
The Meson build system
Version: 1.1.0
Source dir: /home/user/pragtical
Build dir: /home/user/pragtical/build-linux-x86_64
Build type: native build
Project name: pragtical
Project version: 3.1.2
-----
Detecting compiler via: cc --version
compiler returned <Popen: returncode: 0 args: ['cc', '--version']>
compiler stdout:
cc (Alpine 12.2.1_git20220924-r10) 12.2.1 20220924
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

compiler stderr:

Running command: cc -E -dM -
-----
Detecting linker via: cc -Wl,--version
linker returned <Popen: returncode: 0 args: ['cc', '-Wl,--version']>
linker stdout:
GNU ld (GNU Binutils) 2.40
Copyright (C) 2023 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) a later version.
This program has absolutely no warranty.

linker stderr:
collect2 version 12.2.1 20220924
/usr/lib/gcc/x86_64-alpine-linux-musl/12.2.1/../../../../x86_64-alpine-linux-musl/bin/ld -plugin /usr/libexec/gcc/x86_64-alpine-linux-musl/12.2.1/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-alpine-linux-musl/12.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/ccEENnBA.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --eh-frame-hdr --hash-style=gnu -m elf_x86_64 --as-needed -dynamic-linker /lib/ld-musl-x86_64.so.1 -pie -z now /usr/lib/gcc/x86_64-alpine-linux-musl/12.2.1/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-alpine-linux-musl/12.2.1/../../../../lib/crti.o /usr/lib/gcc/x86_64-alpine-linux-musl/12.2.1/crtbeginS.o -L/usr/lib/gcc/x86_64-alpine-linux-musl/12.2.1 -L/usr/lib/gcc/x86_64-alpine-linux-musl/12.2.1/../../../../x86_64-alpine-linux-musl/lib/../lib -L/usr/lib/gcc/x86_64-alpine-linux-musl/12.2.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-alpine-linux-musl/12.2.1/../../../../x86_64-alpine-linux-musl/lib -L/usr/lib/gcc/x86_64-alpine-linux-musl/12.2.1/../../.. --version -lssp_nonshared -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-alpine-linux-musl/12.2.1/crtendS.o /usr/lib/gcc/x86_64-alpine-linux-musl/12.2.1/../../../../lib/crtn.o

Sanity testing C compiler: cc
Is cross compiler: False.
Sanity check compiler command line: cc sanitycheckc.c -o sanitycheckc.exe -D_FILE_OFFSET_BITS=64
Sanity check compile stdout:

-----
Sanity check compile stderr:

-----
Running test binary command:  /home/user/pragtical/build-linux-x86_64/meson-private/sanitycheckc.exe
C compiler for the host machine: cc (gcc 12.2.1 "cc (Alpine 12.2.1_git20220924-r10) 12.2.1 20220924")
C linker for the host machine: cc ld.bfd 2.40
-----
Detecting compiler via: cc --version
compiler returned <Popen: returncode: 0 args: ['cc', '--version']>
compiler stdout:
cc (Alpine 12.2.1_git20220924-r10) 12.2.1 20220924
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

compiler stderr:

Running command: cc -E -dM -
-----
Detecting linker via: cc -Wl,--version
linker returned <Popen: returncode: 0 args: ['cc', '-Wl,--version']>
linker stdout:
GNU ld (GNU Binutils) 2.40
Copyright (C) 2023 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) a later version.
This program has absolutely no warranty.

linker stderr:
collect2 version 12.2.1 20220924
/usr/lib/gcc/x86_64-alpine-linux-musl/12.2.1/../../../../x86_64-alpine-linux-musl/bin/ld -plugin /usr/libexec/gcc/x86_64-alpine-linux-musl/12.2.1/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-alpine-linux-musl/12.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/ccDHbLbC.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --eh-frame-hdr --hash-style=gnu -m elf_x86_64 --as-needed -dynamic-linker /lib/ld-musl-x86_64.so.1 -pie -z now /usr/lib/gcc/x86_64-alpine-linux-musl/12.2.1/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-alpine-linux-musl/12.2.1/../../../../lib/crti.o /usr/lib/gcc/x86_64-alpine-linux-musl/12.2.1/crtbeginS.o -L/usr/lib/gcc/x86_64-alpine-linux-musl/12.2.1 -L/usr/lib/gcc/x86_64-alpine-linux-musl/12.2.1/../../../../x86_64-alpine-linux-musl/lib/../lib -L/usr/lib/gcc/x86_64-alpine-linux-musl/12.2.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-alpine-linux-musl/12.2.1/../../../../x86_64-alpine-linux-musl/lib -L/usr/lib/gcc/x86_64-alpine-linux-musl/12.2.1/../../.. --version -lssp_nonshared -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-alpine-linux-musl/12.2.1/crtendS.o /usr/lib/gcc/x86_64-alpine-linux-musl/12.2.1/../../../../lib/crtn.o

Sanity testing C compiler: cc
Is cross compiler: False.
Sanity check compiler command line: cc sanitycheckc.c -o sanitycheckc.exe -D_FILE_OFFSET_BITS=64
Sanity check compile stdout:

-----
Sanity check compile stderr:

-----
Running test binary command:  /home/user/pragtical/build-linux-x86_64/meson-private/sanitycheckc.exe
C compiler for the build machine: cc (gcc 12.2.1 "cc (Alpine 12.2.1_git20220924-r10) 12.2.1 20220924")
C linker for the build machine: cc ld.bfd 2.40
Build machine cpu family: x86_64
Build machine cpu: x86_64
Host machine cpu family: x86_64
Host machine cpu: x86_64
Target machine cpu family: x86_64
Target machine cpu: x86_64

Executing subproject luajit 

Project name: luajit
Project version: 2.1.0
C compiler for the host machine: cc (gcc 12.2.1 "cc (Alpine 12.2.1_git20220924-r10) 12.2.1 20220924")
C linker for the host machine: cc ld.bfd 2.40
C compiler for the build machine: cc (gcc 12.2.1 "cc (Alpine 12.2.1_git20220924-r10) 12.2.1 20220924")
C linker for the build machine: cc ld.bfd 2.40
Program make found: YES (/usr/bin/make)
Running command: /usr/bin/make amalg CFLAGS=-fPIC XCFLAGS=-DLUAJIT_ENABLE_LUA52COMPAT BUILDMODE=static -l 90 -j
--- stdout ---
==== Building LuaJIT 2.1 (amalgamation) ====
/usr/bin/make -C src amalg
make[1]: Entering directory '/home/user/pragtical/subprojects/luajit/src'
/usr/bin/make all "LJCORE_O=ljamalg.o"
make[2]: Entering directory '/home/user/pragtical/subprojects/luajit/src'
HOSTCC    host/minilua.o
HOSTCC    host/buildvm_asm.o
HOSTCC    host/buildvm_peobj.o
HOSTCC    host/buildvm_lib.o
HOSTCC    host/buildvm_fold.o
HOSTLINK  host/minilua
VERSION   luajit.h
DYNASM    host/buildvm_arch.h
CC        luajit.o
HOSTCC    host/buildvm.o
HOSTLINK  host/buildvm
BUILDVM   lj_vm.S
BUILDVM   lj_ffdef.h
BUILDVM   lj_bcdef.h
BUILDVM   lj_folddef.h
BUILDVM   lj_recdef.h
BUILDVM   lj_libdef.h
BUILDVM   jit/vmdef.lua
ASM       lj_vm.o
CC        ljamalg.o
AR        libluajit.a
LINK      luajit
OK        Successfully built LuaJIT
make[2]: Leaving directory '/home/user/pragtical/subprojects/luajit/src'
make[1]: Leaving directory '/home/user/pragtical/subprojects/luajit/src'
==== Successfully built LuaJIT 2.1 (amalgamation) ====

--- stderr ---

Running compile:
Working directory:  /home/user/pragtical/build-linux-x86_64/meson-private/tmpbsdeez82
Command line:  cc /home/user/pragtical/build-linux-x86_64/meson-private/tmpbsdeez82/testfile.c -o /home/user/pragtical/build-linux-x86_64/meson-private/tmpbsdeez82/output.exe -D_FILE_OFFSET_BITS=64 -O0 

Code:

        #include<stdio.h>
        int main(void) {
            printf("%ld\n", (long)(sizeof(void *)));
            return 0;
        }
Compiler stdout:

Compiler stderr:

Program stdout:

8

Program stderr:

Running compile:
Working directory:  /home/user/pragtical/build-linux-x86_64/meson-private/tmpo6z4a5ky
Command line:  cc /home/user/pragtical/build-linux-x86_64/meson-private/tmpo6z4a5ky/testfile.c -o /home/user/pragtical/build-linux-x86_64/meson-private/tmpo6z4a5ky/output.obj -c -D_FILE_OFFSET_BITS=64 -O0 --print-search-dirs 

Code:

Compiler stdout:
 install: /usr/lib/gcc/x86_64-alpine-linux-musl/12.2.1/
programs: =/usr/libexec/gcc/x86_64-alpine-linux-musl/12.2.1/:/usr/libexec/gcc/x86_64-alpine-linux-musl/12.2.1/:/usr/libexec/gcc/x86_64-alpine-linux-musl/:/usr/lib/gcc/x86_64-alpine-linux-musl/12.2.1/:/usr/lib/gcc/x86_64-alpine-linux-musl/:/usr/lib/gcc/x86_64-alpine-linux-musl/12.2.1/../../../../x86_64-alpine-linux-musl/bin/x86_64-alpine-linux-musl/12.2.1/:/usr/lib/gcc/x86_64-alpine-linux-musl/12.2.1/../../../../x86_64-alpine-linux-musl/bin/
libraries: =/usr/lib/gcc/x86_64-alpine-linux-musl/12.2.1/:/usr/lib/gcc/x86_64-alpine-linux-musl/12.2.1/../../../../x86_64-alpine-linux-musl/lib/x86_64-alpine-linux-musl/12.2.1/:/usr/lib/gcc/x86_64-alpine-linux-musl/12.2.1/../../../../x86_64-alpine-linux-musl/lib/../lib/:/usr/lib/gcc/x86_64-alpine-linux-musl/12.2.1/../../../x86_64-alpine-linux-musl/12.2.1/:/usr/lib/gcc/x86_64-alpine-linux-musl/12.2.1/../../../../lib/:/lib/x86_64-alpine-linux-musl/12.2.1/:/lib/../lib/:/usr/lib/x86_64-alpine-linux-musl/12.2.1/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-alpine-linux-musl/12.2.1/../../../../x86_64-alpine-linux-musl/lib/:/usr/lib/gcc/x86_64-alpine-linux-musl/12.2.1/../../../:/lib/:/usr/lib/

Compiler stderr:

Library luajit found: YES
Build targets in project: 0
Subproject luajit finished.

Program git found: YES (/usr/bin/git)
Running command: /usr/bin/git rev-parse HEAD
--- stdout ---
4cb52419a4a5fedae82f8302596ba651a7474785

--- stderr ---

Running compile:
Working directory:  /home/user/pragtical/build-linux-x86_64/meson-private/tmpny5l0g0i
Command line:  cc /home/user/pragtical/build-linux-x86_64/meson-private/tmpny5l0g0i/testfile.c -o /home/user/pragtical/build-linux-x86_64/meson-private/tmpny5l0g0i/output.exe -D_FILE_OFFSET_BITS=64 -O0 -Wl,--start-group -lm -Wl,--end-group -Wl,--allow-shlib-undefined 

Code:
 int main(void) { return 0; }

Compiler stdout:

Compiler stderr:

Library m found: YES
Running compile:
Working directory:  /home/user/pragtical/build-linux-x86_64/meson-private/tmpdeffblm3
Command line:  cc /home/user/pragtical/build-linux-x86_64/meson-private/tmpdeffblm3/testfile.c -o /home/user/pragtical/build-linux-x86_64/meson-private/tmpdeffblm3/output.exe -D_FILE_OFFSET_BITS=64 -O0 -Wl,--start-group -ldl -Wl,--end-group -Wl,--allow-shlib-undefined 

Code:
 int main(void) { return 0; }

Compiler stdout:

Compiler stderr:

Library dl found: YES
Running compile:
Working directory:  /home/user/pragtical/build-linux-x86_64/meson-private/tmp9dfntnek
Command line:  cc /home/user/pragtical/build-linux-x86_64/meson-private/tmp9dfntnek/testfile.c -o /home/user/pragtical/build-linux-x86_64/meson-private/tmp9dfntnek/output.exe -D_FILE_OFFSET_BITS=64 -O0 -Wl,--start-group -lrt -Wl,--end-group -Wl,--allow-shlib-undefined 

Code:
 int main(void) { return 0; }

Compiler stdout:

Compiler stderr:

Library rt found: YES
Pkg-config binary for 1 is not cached.
Pkg-config binary missing from cross or native file, or env var undefined.
Trying a default Pkg-config fallback at pkg-config
Found pkg-config: /usr/bin/pkg-config (1.9.5)
Determining dependency 'libpcre2-8' with pkg-config executable '/usr/bin/pkg-config'
env[PKG_CONFIG_PATH]: 
Called `/usr/bin/pkg-config --modversion libpcre2-8` -> 0
stdout:
10.42
-----------
env[PKG_CONFIG_PATH]: 
Called `/usr/bin/pkg-config --cflags libpcre2-8` -> 0
env[PKG_CONFIG_ALLOW_SYSTEM_LIBS]: 1
env[PKG_CONFIG_PATH]: 
Called `/usr/bin/pkg-config --libs libpcre2-8` -> 0
stdout:
-L/usr/lib -lpcre2-8
-----------
env[PKG_CONFIG_PATH]: 
Called `/usr/bin/pkg-config --libs libpcre2-8` -> 0
stdout:
-lpcre2-8
-----------
Run-time dependency libpcre2-8 found: YES 10.42
Pkg-config binary for 1 is cached.
Determining dependency 'freetype2' with pkg-config executable '/usr/bin/pkg-config'
env[PKG_CONFIG_PATH]: 
Called `/usr/bin/pkg-config --modversion freetype2` -> 0
stdout:
25.0.19
-----------
env[PKG_CONFIG_PATH]: 
Called `/usr/bin/pkg-config --cflags freetype2` -> 0
stdout:
-I/usr/include/freetype2 -I/usr/include/libpng16
-----------
env[PKG_CONFIG_ALLOW_SYSTEM_LIBS]: 1
env[PKG_CONFIG_PATH]: 
Called `/usr/bin/pkg-config --libs freetype2` -> 0
stdout:
-L/usr/lib -lfreetype
-----------
env[PKG_CONFIG_PATH]: 
Called `/usr/bin/pkg-config --libs freetype2` -> 0
stdout:
-lfreetype
-----------
Run-time dependency freetype2 found: YES 25.0.19
Pkg-config binary for 1 is cached.
Determining dependency 'uchardet' with pkg-config executable '/usr/bin/pkg-config'
env[PKG_CONFIG_PATH]: 
Called `/usr/bin/pkg-config --modversion uchardet` -> 0
stdout:
0.0.8
-----------
env[PKG_CONFIG_PATH]: 
Called `/usr/bin/pkg-config --cflags uchardet` -> 0
stdout:
-I/usr/include/uchardet
-----------
env[PKG_CONFIG_ALLOW_SYSTEM_LIBS]: 1
env[PKG_CONFIG_PATH]: 
Called `/usr/bin/pkg-config --libs uchardet` -> 0
stdout:
-L/usr/lib -luchardet
-----------
env[PKG_CONFIG_PATH]: 
Called `/usr/bin/pkg-config --libs uchardet` -> 0
stdout:
-luchardet
-----------
Run-time dependency uchardet found: YES 0.0.8
Pkg-config binary for 1 is cached.
Determining dependency 'sdl2' with pkg-config executable '/usr/bin/pkg-config'
env[PKG_CONFIG_PATH]: 
Called `/usr/bin/pkg-config --modversion sdl2` -> 0
stdout:
2.26.5
-----------
env[PKG_CONFIG_PATH]: 
Called `/usr/bin/pkg-config --cflags sdl2` -> 0
stdout:
-I/usr/include/SDL2 -I/usr/include/directfb -D_REENTRANT
-----------
env[PKG_CONFIG_ALLOW_SYSTEM_LIBS]: 1
env[PKG_CONFIG_PATH]: 
Called `/usr/bin/pkg-config --libs sdl2` -> 0
stdout:
-L/usr/lib -lSDL2
-----------
env[PKG_CONFIG_PATH]: 
Called `/usr/bin/pkg-config --libs sdl2` -> 0
stdout:
-lSDL2
-----------
Run-time dependency sdl2 found: YES 2.26.5
Running compile:
Working directory:  /home/user/pragtical/build-linux-x86_64/meson-private/tmp0w5ex2x3
Command line:  cc /home/user/pragtical/build-linux-x86_64/meson-private/tmp0w5ex2x3/testfile.c -o /home/user/pragtical/build-linux-x86_64/meson-private/tmp0w5ex2x3/output.exe -D_FILE_OFFSET_BITS=64 -O0 -Wl,--start-group -lX11 -Wl,--end-group -Wl,--allow-shlib-undefined 

Code:
 int main(void) { return 0; }

Compiler stdout:

Compiler stderr:

Library X11 found: YES

Executing subproject colors 

Project name: colors
Project version: GIT
Build targets in project: 0
Subproject colors finished.

Executing subproject plugins 

Project name: plugins
Project version: GIT
Program sh found: YES (/bin/sh)
Running command: /bin/sh -c 'ls plugins/language_*'
--- stdout ---
plugins/language_R.lua
plugins/language_angelscript.lua
plugins/language_assembly_riscv.lua
plugins/language_assembly_x86.lua
plugins/language_autohotkey_v1.lua
plugins/language_batch.lua
plugins/language_bib.lua
plugins/language_blade.lua
plugins/language_c7.lua
plugins/language_caddyfile.lua
plugins/language_cmake.lua
plugins/language_csharp.lua
plugins/language_cue.lua
plugins/language_d.lua
plugins/language_dart.lua
plugins/language_diff.lua
plugins/language_edp.lua
plugins/language_elixir.lua
plugins/language_elm.lua
plugins/language_erb.lua
plugins/language_fe.lua
plugins/language_fennel.lua
plugins/language_fstab.lua
plugins/language_gabc.lua
plugins/language_gdscript.lua
plugins/language_glsl.lua
plugins/language_gmi.lua
plugins/language_go.lua
plugins/language_gravity.lua
plugins/language_hare.lua
plugins/language_haxe.lua
plugins/language_hlsl.lua
plugins/language_hs.lua
plugins/language_htaccess.lua
plugins/language_ini.lua
plugins/language_java.lua
plugins/language_jiyu.lua
plugins/language_jsx.lua
plugins/language_julia.lua
plugins/language_lilypond.lua
plugins/language_liquid.lua
plugins/language_lobster.lua
plugins/language_lox.lua
plugins/language_make.lua
plugins/language_marte.lua
plugins/language_meson.lua
plugins/language_miniscript.lua
plugins/language_moon.lua
plugins/language_nelua.lua
plugins/language_nginx.lua
plugins/language_nim.lua
plugins/language_nix.lua
plugins/language_objc.lua
plugins/language_odin.lua
plugins/language_perl.lua
plugins/language_php.lua
plugins/language_pico8.lua
plugins/language_pkgbuild.lua
plugins/language_po.lua
plugins/language_powershell.lua
plugins/language_psql.lua
plugins/language_rescript.lua
plugins/language_rivet.lua
plugins/language_ruby.lua
plugins/language_rust.lua
plugins/language_sass.lua
plugins/language_scala.lua
plugins/language_sh.lua
plugins/language_ssh_config.lua
plugins/language_tal.lua
plugins/language_tcl.lua
plugins/language_teal.lua
plugins/language_tex.lua
plugins/language_toml.lua
plugins/language_ts.lua
plugins/language_tsx.lua
plugins/language_umka.lua
plugins/language_v.lua
plugins/language_wren.lua
plugins/language_yaml.lua
plugins/language_zig.lua

--- stderr ---

Build targets in project: 0
Subproject plugins finished.

Executing subproject ppm 

Project name: ppm
Project version: GIT
C compiler for the host machine: cc (gcc 12.2.1 "cc (Alpine 12.2.1_git20220924-r10) 12.2.1 20220924")
C linker for the host machine: cc ld.bfd 2.40
C compiler for the build machine: cc (gcc 12.2.1 "cc (Alpine 12.2.1_git20220924-r10) 12.2.1 20220924")
C linker for the build machine: cc ld.bfd 2.40
Program lua found: YES (/usr/bin/lua)
Configuring ppm.lua.c with command
Running command: /usr/bin/lua -e 'f = string.dump(assert(loadfile("/home/user/pragtical/subprojects/ppm/src/ppm.lua"))) io.open("/home/user/pragtical/build-linux-x86_64/subprojects/ppm/ppm.lua.c", "wb"):write("unsigned char ppm_luac[] = \"" .. f:gsub(".", function (c) return string.format("\\x%02X",string.byte(c)) end) .. "\";unsigned int ppm_luac_len = " .. #f .. ";")'
--- stdout ---

--- stderr ---
/usr/bin/lua: (command line):1: /home/user/pragtical/subprojects/ppm/src/ppm.lua:390: 'end' expected near '&'
stack traceback:
    [C]: in function 'assert'
    (command line):1: in main chunk
    [C]: ?

subprojects/ppm/meson.build:22:16: ERROR: Command `/usr/bin/lua -e 'f = string.dump(assert(loadfile("/home/user/pragtical/subprojects/ppm/src/ppm.lua"))) io.open("/home/user/pragtical/build-linux-x86_64/subprojects/ppm/ppm.lua.c", "wb"):write("unsigned char ppm_luac[] = \"" .. f:gsub(".", function (c) return string.format("\\x%02X",string.byte(c)) end) .. "\";unsigned int ppm_luac_len = " .. #f .. ";")'` failed with status 1.
Guldoman commented 1 year ago

Can confirm. Same as with the other issue, works fine on Lite XL master, but breaks on its latest release. Will investigate.

For now either try Lite XL master, or go back to LSP version 0.5 (7c6a72b6a296e9948df6dfdf322d04a43c90e546) which is actually the last "official" version installable via LPM.

jgmdev commented 1 year ago

The points above should solve your issue. If you are still interested:

Here's the error:

subprojects/ppm/meson.build:22:16: ERROR: Command `/usr/bin/lua -e 'f = string.dump(assert(loadfile("/home/user/pragtical/subprojects/ppm/src/ppm.lua"))) io.open("/home/user/pragtical/build-linux-x86_64/subprojects/ppm/ppm.lua.c", "wb"):write("unsigned char ppm_luac[] = \"" .. f:gsub(".", function (c) return string.format("\\x%02X",string.byte(c)) end) .. "\";unsigned int ppm_luac_len = " .. #f .. ";")'` failed with status 1.

The plugin manager uses lua 5.4 code and your alpine linux install has lua 5.1

You would need forcefallbacks (which would take longer to compile):

meson setup --wrap-mode=forcefallback build && meson compile -C build

or disable the plugin manager

meson setup -Dppm=false build && meson compile -C build
ghost commented 1 year ago

Sorry for the late response, yeah using the master branch fixed the issue.

Pragtical seemed a little too "bloated" for me, so I decided against using it. Still, it looks like a damn nice project, and I wish the devs best of luck.

Closing this now.