Open errissa opened 4 years ago
I have a similar problem with ECL 21.2.1 but on Android inside of Termux - Slynk doesn't compile. However, I'm not sure if this is really problem in Sly, ECL, or even Termux/Android. I've tried to compile the module like this:
(load ".config/emacs/straight/repos/sly/slynk/slynk-loader.lisp")
(slynk-loader:dump-image "sbcl.core-with-slynk")
Here's the log:
I'm hitting the same result (can't use ecl
), although my error seems slightly different from the ones above. This is with ecl-21.2.1
.
Upon invoking sly
with my Lisp set to ecl
:
/tmp/sly.*
file.ecl
process starts and briefly has some CPU activity.*sly-started inferior-lisp for ecl*
is created. By the time I visit it, it's mainly filled with a condition/restart debugger menu.ecl
drops off and the whole process stalls (presumably hanging in the debugger)Here's the actual content of the buffer:
(cond ((ignore-errors (funcall 'require "asdf") (funcall (read-from-string "asdf:version-satisfies") (funcall (read-from-string "asdf:asdf-version")) "2.019")) (push (pathname "/home/colin/.config/emacs/.local/straight/build-29.1/sly/slynk/") (symbol-value (read-from-string "asdf:*central-registry*"))) (funcall (read-from-string "asdf:load-system") :slynk) (funcall (read-from-string "slynk:start-server") "/tmp/sly.8252")) (t (progn (load "/home/colin/.config/emacs/.local/straight/build-29.1/sly/slynk/slynk-loader.lisp" :verbose t) (funcall (read-from-string "slynk-loader:init")) (funcall (read-from-string "slynk:start-server") "/tmp/sly.8252"))))
;;; Loading "/home/colin/.quicklisp/setup.lisp"
;;; Loading #P"/usr/lib/ecl-21.2.1/asdf.fas"
ECL (Embeddable Common-Lisp) 21.2.1 (git:UNKNOWN)
Copyright (C) 1984 Taiichi Yuasa and Masami Hagiya
Copyright (C) 1993 Giuseppe Attardi
Copyright (C) 2013 Juan J. Garcia-Ripoll
Copyright (C) 2018 Daniel Kochmanski
Copyright (C) 2021 Daniel Kochmanski and Marius Gerbershagen
ECL is free software, and you are welcome to redistribute it
under certain conditions; see file 'Copyright' for details.
Type :h for Help.
Top level in: #<process TOP-LEVEL 0x5613013cff80>.
>
;;;
;;; Compiling /home/colin/.config/emacs/.local/straight/repos/sly/slynk/backend/ecl.lisp.
;;; OPTIMIZE levels: Safety=2, Space=0, Speed=3, Debug=0
;;;
;;; End of Pass 1.
;;; Finished compiling /home/colin/.config/emacs/.local/straight/repos/sly/slynk/backend/ecl.lisp.
;;;
Condition of type: SIMPLE-ERROR
LOAD: Could not load file #P"/home/colin/.cache/common-lisp/ecl-21.2.1-unknown-linux-x64/home/colin/.config/emacs/.local/straight/repos/sly/slynk/backend/ecl.fas" (Error: "/home/colin/.cache/common-lisp/ecl-21.2.1-unknown-linux-x64/home/colin/.config/emacs/.local/straight/repos/sly/slynk/backend/ecl.fas: undefined symbol: WZc9Q3i67VFaZ_wrOdHg61")
Available restarts:
1. (TRY-RECOMPILING) Recompile ecl and try loading it again
2. (RETRY) Retry loading FASL for #<cl-source-file "slynk" "backend" "ecl">.
3. (ACCEPT) Continue, treating loading FASL for #<cl-source-file "slynk" "backend" "ecl"> as having been successful.
4. (RETRY) Retry ASDF operation.
5. (CLEAR-CONFIGURATION-AND-RETRY) Retry ASDF operation after resetting the configuration.
6. (RESTART-TOPLEVEL) Go back to Top-Level REPL.
Broken at SI:BYTECODES. [Evaluation of: (COND ((IGNORE-ERRORS (FUNCALL 'REQUIRE "asdf") (FUNCALL (READ-FROM-STRING "asdf:version-satisfies") (FUNCALL (READ-FROM-STRING "asdf:asdf-version")) "2.019")) (PUSH (PATHNAME "/home/colin/.config/emacs/.local/straight/build-29.1/sly/slynk/") (SYMBOL-VALUE (READ-FROM-STRING "asdf:*central-registry*"))) (FUNCALL (READ-FROM-STRING "asdf:load-system") :SLYNK) (FUNCALL (READ-FROM-STRING "slynk:start-server") "/tmp/sly.8252")) (T (PROGN (LOAD "/home/colin/.config/emacs/.local/straight/build-29.1/sly/slynk/slynk-loader.lisp" :VERBOSE T) (FUNCALL (READ-FROM-STRING "slynk-loader:init")) (FUNCALL (READ-FROM-STRING "slynk:start-server") "/tmp/sly.8252"))))] In: #<process TOP-LEVEL 0x5613013cff80>.
with the actual error in question being:
ecl.fas: undefined symbol: WZc9Q3i67VFaZ_wrOdHg61
Note that the same thing happens in an independent ecl
REPL if one attempts: (ql:quickload :slynk)
.
Any idea what could cause this? Thank you!
See also this potentially related issue: https://gitlab.com/embeddable-common-lisp/ecl/-/issues/710
Corresponding issue in ECL: https://gitlab.com/embeddable-common-lisp/ecl/-/issues/714
The version of GCC might be the problem. Reattempting a slynk
build in a ubuntu-22.04
Docker image succeeds. It has ecl 21.2.1
and gcc 11.4.0
available to it, whereas my machine has gcc 13.2.1
.
I can't start Sly ECL on a Guix system.
(cond ((ignore-errors (funcall 'require "asdf") (funcall (read-from-string "asdf:version-satisfies") (funcall (read-from-string "asdf:asdf-version")) "2.019")) (push (pathname "/gnu/store/0y1h8arnl91jhfklqig1frwlbgi10sp3-emacs-sly-1.0.43-7.82b20a9/share/emacs/site-lisp/sly-1.0.43-7.82b20a9/slynk/") (symbol-value (read-from-string "asdf:*central-registry*"))) (funcall (read-from-string "asdf:load-system") :slynk) (funcall (read-from-string "slynk:start-server") "/tmp/sly.1228")) (t (progn (load "/gnu/store/0y1h8arnl91jhfklqig1frwlbgi10sp3-emacs-sly-1.0.43-7.82b20a9/share/emacs/site-lisp/sly-1.0.43-7.82b20a9/slynk/slynk-loader.lisp" :verbose t) (funcall (read-from-string "slynk-loader:init")) (funcall (read-from-string "slynk:start-server") "/tmp/sly.1228"))))
ECL (Embeddable Common-Lisp) 21.2.1 (git:UNKNOWN)
Copyright (C) 1984 Taiichi Yuasa and Masami Hagiya
Copyright (C) 1993 Giuseppe Attardi
Copyright (C) 2013 Juan J. Garcia-Ripoll
Copyright (C) 2018 Daniel Kochmanski
Copyright (C) 2021 Daniel Kochmanski and Marius Gerbershagen
ECL is free software, and you are welcome to redistribute it
under certain conditions; see file 'Copyright' for details.
Type :h for Help.
Top level in: #<process TOP-LEVEL 0x7f86d9229f80>.
>
;;; Loading #P"/gnu/store/65g9s7fdgxxsz1673lkpqq0mmgxxisp5-ecl-21.2.1/lib/ecl-21.2.1/asdf.fas"
Condition of type: SIMPLE-ERROR
Can't reliably convert wild pathname #P"/run/udev/links/\\x2finput\\x2fby-path\\x2fpci-0000:04:00.4-usb-0:4:1.2-event-kbd/"
Available restarts:
1. (RETRY) Retry ASDF operation.
2. (CLEAR-CONFIGURATION-AND-RETRY) Retry ASDF operation after resetting the configuration.
3. (RESTART-TOPLEVEL) Go back to Top-Level REPL.
Broken at SI:BYTECODES. [Evaluation of: (COND ((IGNORE-ERRORS (FUNCALL 'REQUIRE "asdf") (FUNCALL (READ-FROM-STRING "asdf:version-satisfies") (FUNCALL (READ-FROM-STRING "asdf:asdf-version")) "2.019")) (PUSH (PATHNAME "/gnu/store/0y1h8arnl91jhfklqig1frwlbgi10sp3-emacs-sly-1.0.43-7.82b20a9/share/emacs/site-lisp/sly-1.0.43-7.82b20a9/slynk/") (SYMBOL-VALUE (READ-FROM-STRING "asdf:*central-registry*"))) (FUNCALL (READ-FROM-STRING "asdf:load-system") :SLYNK) (FUNCALL (READ-FROM-STRING "slynk:start-server") "/tmp/sly.1228")) (T (PROGN (LOAD "/gnu/store/0y1h8arnl91jhfklqig1frwlbgi10sp3-emacs-sly-1.0.43-7.82b20a9/share/emacs/site-lisp/sly-1.0.43-7.82b20a9/slynk/slynk-loader.lisp" :VERBOSE T) (FUNCALL (READ-FROM-STRING "slynk-loader:init")) (FUNCALL (READ-FROM-STRING "slynk:start-server") "/tmp/sly.1228"))))] In: #<process TOP-LEVEL 0x7f86d9229f80>.
>>
@aadcg Are you able to compile slynk
in a clean ecl
session? If not, what version of gcc
is installed?
@fosskers the issue I have reported above is due to my own machine. Please ignore it. I have tested by creating a clean environment, guix shell emacs ecl emacs-sly -- emacs -Q
, and it worked fine. If that helps I'm running gcc 11.3.0.
Thanks that does help. The problem seems to be with GCC 13.
I just tried using ECL 20.4.24 with Emacs/Sly but got the following error in the sly-started inferior-lisp for ecl buffer:
(cond ((ignore-errors (funcall (quote require) "asdf") (funcall (read-from-string "asdf:version-satisfies") (funcall (read-from-string "asdf:asdf-version")) "2.019")) (push (pathname "/home/renes/.emacs.d/elpa/sly-20200314.55/slynk/") (symbol-value (read-from-string "asdf:central-registry"))) (funcall (read-from-string "asdf:load-system") :slynk) (funcall (read-from-string "slynk:start-server") "/tmp/sly.7757")) (t (progn (load "/home/renes/.emacs.d/elpa/sly-20200314.55/slynk/slynk-loader.lisp" :verbose t) (funcall (read-from-string "slynk-loader:init")) (funcall (read-from-string "slynk:start-server") "/tmp/sly.7757"))))
ECL (Embeddable Common-Lisp) 20.4.24 (git:UNKNOWN) Copyright (C) 1984 Taiichi Yuasa and Masami Hagiya Copyright (C) 1993 Giuseppe Attardi Copyright (C) 2013 Juan J. Garcia-Ripoll Copyright (C) 2018 Daniel Kochmanski Copyright (C) 2020 Daniel Kochmanski and Marius Gerbershagen ECL is free software, and you are welcome to redistribute it under certain conditions; see file 'Copyright' for details. Type :h for Help.
Top level in: #<process TOP-LEVEL 0x55b31c1edf80>.
Condition of type: FILE-ERROR Filesystem error with pathname #P"SYS:CMP.NEWEST". Either 1) the file does not exist, or 2) we are not allowed to access the file, or 3) the pathname points to a broken symbolic link. Available restarts:
Broken at SLYNK-LOADER::BINARY-PATHNAME. In: #<process TOP-LEVEL 0x55b31c1edf80>. File: #P"/home/renes/.emacs.d/elpa/sly-20200314.55/slynk/slynk-loader.lisp" (Position #6435)
I am on a mostly stock Ubuntu 18.04 system, using Emacs 26.3 and ECL 20.4.24. Please let me know if there's anything else I can do to help diagnose this issue.
Also, I've been using Sly with SBCL with no issues.