joaotavora / sly

Sylvester the Cat's Common Lisp IDE
1.27k stars 144 forks source link

Slynk doesn't compile with ECL 20.4.24? #324

Open errissa opened 4 years ago

errissa commented 4 years ago

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>.

;;; Loading "/home/renes/.emacs.d/elpa/sly-20200314.55/slynk/slynk-loader.lisp"

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:

  1. (RESTART-TOPLEVEL) Go back to Top-Level REPL.

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.

andreyorst commented 2 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:

Compilation log ``` ;;; Loading "/data/data/com.termux/files/home/sly.lisp" ;;; Loading "/data/data/com.termux/files/home/.config/emacs/straight/repos/sly/slynk/slynk-loader.lisp" ;;; Loading #P"/data/data/com.termux/files/usr/lib/ecl-21.2.1/cmp.fas" ;;; ;;; Compiling /data/data/com.termux/files/home/.config/emacs/straight/repos/sly/slynk/slynk-backend.lisp. ;;; OPTIMIZE levels: Safety=2, Space=0, Speed=3, Debug=0 ;;; ;;; End of Pass 1. ;;; Internal error: ;;; ** Error code 1 when executing ;;; (EXT:RUN-PROGRAM "aarch64-linux-android-clang" ("-I." "-I/data/data/com.termux/files/usr/include/" "-I/data/data/com.termux/files/usr/include" "-D_GNU_SOURCE" "-DPLATFORM_ANDROID" "-DUSE_GET_STACKBASE_FOR_MAIN" "-DIGNORE_DYNAMIC_LOADING" "-fstack-protector-strong" "-Oz" "-fPIC" "-D_THREAD_SAFE" "-Dandroid" "-O2" "-c" ".sly/fasl/1.0.43/ecl-21.2.1-unix-aarch64/slynk-backend.c" "-o" ".sly/fasl/1.0.43/ecl-21.2.1-unix-aarch64/slynk-backend.o")): ;;; In file included from .sly/fasl/1.0.43/ecl-21.2.1-unix-aarch64/slynk-backend.c:5: ;;; In file included from /data/data/com.termux/files/usr/include/ecl/ecl-cmp.h:36: ;;; In file included from /data/data/com.termux/files/usr/include/ecl/ecl.h:22: ;;; In file included from /data/data/com.termux/files/usr/include/sys/types.h:33: ;;; In file included from /data/data/com.termux/files/usr/lib/clang/13.0.0/include/stdint.h:52: ;;; In file included from /data/data/com.termux/files/usr/include/stdint.h:32: ;;; In file included from /data/data/com.termux/files/usr/include/bits/wchar_limits.h:36: ;;; In file included from /data/data/com.termux/files/usr/include/sys/cdefs.h:371: ;;; /data/data/com.termux/files/usr/include/android/api-level.h:174:50: error: expected a platform name, e.g., 'macos' ;;; int android_get_application_target_sdk_version() __INTRODUCED_IN(24); ;;; ^ ;;; /data/data/com.termux/files/usr/include/android/versioning.h:62:36: note: expanded from macro '__INTRODUCED_IN' ;;; #define __INTRODUCED_IN(api_level) __BIONIC_AVAILABILITY(introduced=api_level) ;;; ^ ;;; /data/data/com.termux/files/usr/include/android/versioning.h:57:71: note: expanded from macro '__BIONIC_AVAILABILITY' ;;; #define __BIONIC_AVAILABILITY(__what) __attribute__((__availability__(android,strict,__what))) ;;; ^ ;;; :6:17: note: expanded from here ;;; #define android 1 ;;; ^ ;;; In file included from .sly/fasl/1.0.43/ecl-21.2.1-unix-aarch64/slynk-backend.c:5: ;;; In file included from /data/data/com.termux/files/usr/include/ecl/ecl-cmp.h:36: ;;; In file included from /data/data/com.termux/files/usr/include/ecl/ecl.h:29: ;;; In file included from /data/data/com.termux/files/usr/include/stdio.h:47: ;;; In file included from /data/data/com.termux/files/usr/include/string.h:36: ;;; /data/data/com.termux/files/usr/include/bits/strcasecmp.h:56:87: error: expected a platform name, e.g., 'macos' ;;; int strcasecmp_l(const char* __s1, const char* __s2, locale_t __l) __attribute_pure__ __INTRODUCED_IN(23); ;;; ^ ;;; /data/data/com.termux/files/usr/include/android/versioning.h:62:36: note: expanded from macro '__INTRODUCED_IN' ;;; #define __INTRODUCED_IN(api_level) __BIONIC_AVAILABILITY(introduced=api_level) ;;; ^ ;;; /data/data/com.termux/files/usr/include/android/versioning.h:57:71: note: expanded from macro '__BIONIC_AVAILABILITY' ;;; #define __BIONIC_AVAILABILITY(__what) __attribute__((__availability__(android,strict,__what))) ;;; ^ ;;; :6:17: note: expanded from here ;;; #define android 1 ;;; ^ ;;; In file included from .sly/fasl/1.0.43/ecl-21.2.1-unix-aarch64/slynk-backend.c:5: ;;; In file included from /data/data/com.termux/files/usr/include/ecl/ecl-cmp.h:36: ;;; In file included from /data/data/com.termux/files/usr/include/ecl/ecl.h:29: ;;; In file included from /data/data/com.termux/files/usr/include/stdio.h:47: ;;; In file included from /data/data/com.termux/files/usr/include/string.h:36: ;;; /data/data/com.termux/files/usr/include/bits/strcasecmp.h:75:100: error: expected a platform name, e.g., 'macos' ;;; int strncasecmp_l(const char* __s1, const char* __s2, size_t __n, locale_t __l) __attribute_pure__ __INTRODUCED_IN(23); ;;; ^ ;;; /data/data/com.termux/files/usr/include/android/versioning.h:62:36: note: expanded from macro '__INTRODUCED_IN' ;;; #define __INTRODUCED_IN(api_level) __BIONIC_AVAILABILITY(introduced=api_level) ;;; ^ ;;; /data/data/com.termux/files/usr/include/android/versioning.h:57:71: note: expanded from macro '__BIONIC_AVAILABILITY' ;;; #define __BIONIC_AVAILABILITY(__what) __attribute__((__availability__(android,strict,__what))) ;;; ^ ;;; :6:17: note: expanded from here ;;; #define android 1 ;;; ^ ;;; In file included from .sly/fasl/1.0.43/ecl-21.2.1-unix-aarch64/slynk-backend.c:5: ;;; In file included from /data/data/com.termux/files/usr/include/ecl/ecl-cmp.h:36: ;;; In file included from /data/data/com.termux/files/usr/include/ecl/ecl.h:29: ;;; In file included from /data/data/com.termux/files/usr/include/stdio.h:47: ;;; /data/data/com.termux/files/usr/include/string.h:57:59: error: expected a platform name, e.g., 'macos' ;;; void* mempcpy(void* __dst, const void* __src, size_t __n) __INTRODUCED_IN(23); ;;; ^ ;;; /data/data/com.termux/files/usr/include/android/versioning.h:62:36: note: expanded from macro '__INTRODUCED_IN' ;;; #define __INTRODUCED_IN(api_level) __BIONIC_AVAILABILITY(introduced=api_level) ;;; ^ ;;; /data/data/com.termux/files/usr/include/android/versioning.h:57:71: note: expanded from macro '__BIONIC_AVAILABILITY' ;;; #define __BIONIC_AVAILABILITY(__what) __attribute__((__availability__(android,strict,__what))) ;;; ^ ;;; :6:17: note: expanded from here ;;; #define android 1 ;;; ^ ;;; In file included from .sly/fasl/1.0.43/ecl-21.2.1-unix-aarch64/slynk-backend.c:5: ;;; In file included from /data/data/com.termux/files/usr/include/ecl/ecl-cmp.h:36: ;;; In file included from /data/data/com.termux/files/usr/include/ecl/ecl.h:29: ;;; In file included from /data/data/com.termux/files/usr/include/stdio.h:47: ;;; /data/data/com.termux/files/usr/include/string.h:68:59: error: expected a platform name, e.g., 'macos' ;;; char* __strchr_chk(const char* __s, int __ch, size_t __n) __INTRODUCED_IN(18); ;;; ^ ;;; /data/data/com.termux/files/usr/include/android/versioning.h:62:36: note: expanded from macro '__INTRODUCED_IN' ;;; #define __INTRODUCED_IN(api_level) __BIONIC_AVAILABILITY(introduced=api_level) ;;; ^ ;;; /data/data/com.termux/files/usr/include/android/versioning.h:57:71: note: expanded from macro '__BIONIC_AVAILABILITY' ;;; #define __BIONIC_AVAILABILITY(__what) __attribute__((__availability__(android,strict,__what))) ;;; ^ ;;; :6:17: note: expanded from here ;;; #define android 1 ;;; ^ ;;; In file included from .sly/fasl/1.0.43/ecl-21.2.1-unix-aarch64/slynk-backend.c:5: ;;; In file included from /data/data/com.termux/files/usr/include/ecl/ecl-cmp.h:36: ;;; In file included from /data/data/com.termux/files/usr/include/ecl/ecl.h:29: ;;; In file included from /data/data/com.termux/files/usr/include/stdio.h:47: ;;; /data/data/com.termux/files/usr/include/string.h:82:63: error: expected a platform name, e.g., 'macos' ;;; char* strchrnul(const char* __s, int __ch) __attribute_pure__ __INTRODUCED_IN(24); ;;; ^ ;;; /data/data/com.termux/files/usr/include/android/versioning.h:62:36: note: expanded from macro '__INTRODUCED_IN' ;;; #define __INTRODUCED_IN(api_level) __BIONIC_AVAILABILITY(introduced=api_level) ;;; ^ ;;; /data/data/com.termux/files/usr/include/android/versioning.h:57:71: note: expanded from macro '__BIONIC_AVAILABILITY' ;;; #define __BIONIC_AVAILABILITY(__what) __attribute__((__availability__(android,strict,__what))) ;;; ^ ;;; :6:17: note: expanded from here ;;; #define android 1 ;;; ^ ;;; In file included from .sly/fasl/1.0.43/ecl-21.2.1-unix-aarch64/slynk-backend.c:5: ;;; In file included from /data/data/com.termux/files/usr/include/ecl/ecl-cmp.h:36: ;;; In file included from /data/data/com.termux/files/usr/include/ecl/ecl.h:29: ;;; In file included from /data/data/com.termux/files/usr/include/stdio.h:47: ;;; /data/data/com.termux/files/usr/include/string.h:91:60: error: expected a platform name, e.g., 'macos' ;;; char* __strrchr_chk(const char* __s, int __ch, size_t __n) __INTRODUCED_IN(18); ;;; ^ ;;; /data/data/com.termux/files/usr/include/android/versioning.h:62:36: note: expanded from macro '__INTRODUCED_IN' ;;; #define __INTRODUCED_IN(api_level) __BIONIC_AVAILABILITY(introduced=api_level) ;;; ^ ;;; /data/data/com.termux/files/usr/include/android/versioning.h:57:71: note: expanded from macro '__BIONIC_AVAILABILITY' ;;; #define __BIONIC_AVAILABILITY(__what) __attribute__((__availability__(android,strict,__what))) ;;; ^ ;;; :6:17: note: expanded from here ;;; #define android 1 ;;; ^ ;;; In file included from .sly/fasl/1.0.43/ecl-21.2.1-unix-aarch64/slynk-backend.c:5: ;;; In file included from /data/data/com.termux/files/usr/include/ecl/ecl-cmp.h:36: ;;; In file included from /data/data/com.termux/files/usr/include/ecl/ecl.h:29: ;;; In file included from /data/data/com.termux/files/usr/include/stdio.h:47: ;;; /data/data/com.termux/files/usr/include/string.h:98:50: error: expected a platform name, e.g., 'macos' ;;; size_t __strlen_chk(const char* __s, size_t __n) __INTRODUCED_IN(17); ;;; ^ ;;; /data/data/com.termux/files/usr/include/android/versioning.h:62:36: note: expanded from macro '__INTRODUCED_IN' ;;; #define __INTRODUCED_IN(api_level) __BIONIC_AVAILABILITY(introduced=api_level) ;;; ^ ;;; /data/data/com.termux/files/usr/include/android/versioning.h:57:71: note: expanded from macro '__BIONIC_AVAILABILITY' ;;; #define __BIONIC_AVAILABILITY(__what) __attribute__((__availability__(android,strict,__what))) ;;; ^ ;;; :6:17: note: expanded from here ;;; #define android 1 ;;; ^ ;;; In file included from .sly/fasl/1.0.43/ecl-21.2.1-unix-aarch64/slynk-backend.c:5: ;;; In file included from /data/data/com.termux/files/usr/include/ecl/ecl-cmp.h:36: ;;; In file included from /data/data/com.termux/files/usr/include/ecl/ecl.h:29: ;;; In file included from /data/data/com.termux/files/usr/include/stdio.h:47: ;;; /data/data/com.termux/files/usr/include/string.h:105:46: error: expected a platform name, e.g., 'macos' ;;; char* stpcpy(char* __dst, const char* __src) __INTRODUCED_IN(21); ;;; ^ ;;; /data/data/com.termux/files/usr/include/android/versioning.h:62:36: note: expanded from macro '__INTRODUCED_IN' ;;; #define __INTRODUCED_IN(api_level) __BIONIC_AVAILABILITY(introduced=api_level) ;;; ^ ;;; /data/data/com.termux/files/usr/include/android/versioning.h:57:71: note: expanded from macro '__BIONIC_AVAILABILITY' ;;; #define __BIONIC_AVAILABILITY(__what) __attribute__((__availability__(android,strict,__what))) ;;; ^ ;;; :6:17: note: expanded from here ;;; #define android 1 ;;; ^ ;;; In file included from .sly/fasl/1.0.43/ecl-21.2.1-unix-aarch64/slynk-backend.c:5: ;;; In file included from /data/data/com.termux/files/usr/include/ecl/ecl-cmp.h:36: ;;; In file included from /data/data/com.termux/files/usr/include/ecl/ecl.h:29: ;;; In file included from /data/data/com.termux/files/usr/include/stdio.h:47: ;;; /data/data/com.termux/files/usr/include/string.h:125:51: error: expected a platform name, e.g., 'macos' ;;; char* strerror_l(int __errno_value, locale_t __l) __INTRODUCED_IN(23); ;;; ^ ;;; /data/data/com.termux/files/usr/include/android/versioning.h:62:36: note: expanded from macro '__INTRODUCED_IN' ;;; #define __INTRODUCED_IN(api_level) __BIONIC_AVAILABILITY(introduced=api_level) ;;; ^ ;;; /data/data/com.termux/files/usr/include/android/versioning.h:57:71: note: expanded from macro '__BIONIC_AVAILABILITY' ;;; #define __BIONIC_AVAILABILITY(__what) __attribute__((__availability__(android,strict,__what))) ;;; ^ ;;; :6:17: note: expanded from here ;;; #define android 1 ;;; ^ ;;; In file included from .sly/fasl/1.0.43/ecl-21.2.1-unix-aarch64/slynk-backend.c:5: ;;; In file included from /data/data/com.termux/files/usr/include/ecl/ecl-cmp.h:36: ;;; In file included from /data/data/com.termux/files/usr/include/ecl/ecl.h:29: ;;; In file included from /data/data/com.termux/files/usr/include/stdio.h:47: ;;; /data/data/com.termux/files/usr/include/string.h:129:89: error: expected a platform name, e.g., 'macos' ;;; char* strerror_r(int __errno_value, char* __buf, size_t __n) __RENAME(__gnu_strerror_r) __INTRODUCED_IN(23); ;;; ^ ;;; /data/data/com.termux/files/usr/include/android/versioning.h:62:36: note: expanded from macro '__INTRODUCED_IN' ;;; #define __INTRODUCED_IN(api_level) __BIONIC_AVAILABILITY(introduced=api_level) ;;; ^ ;;; /data/data/com.termux/files/usr/include/android/versioning.h:57:71: note: expanded from macro '__BIONIC_AVAILABILITY' ;;; #define __BIONIC_AVAILABILITY(__what) __attribute__((__availability__(android,strict,__what))) ;;; ^ ;;; :6:17: note: expanded from here ;;; #define android 1 ;;; ^ ;;; In file included from .sly/fasl/1.0.43/ecl-21.2.1-unix-aarch64/slynk-backend.c:5: ;;; In file included from /data/data/com.termux/files/usr/include/ecl/ecl-cmp.h:36: ;;; In file included from /data/data/com.termux/files/usr/include/ecl/ecl.h:29: ;;; In file included from /data/data/com.termux/files/usr/include/stdio.h:47: ;;; /data/data/com.termux/files/usr/include/string.h:140:59: error: expected a platform name, e.g., 'macos' ;;; char* stpncpy(char* __dst, const char* __src, size_t __n) __INTRODUCED_IN(21); ;;; ^ ;;; /data/data/com.termux/files/usr/include/android/versioning.h:62:36: note: expanded from macro '__INTRODUCED_IN' ;;; #define __INTRODUCED_IN(api_level) __BIONIC_AVAILABILITY(introduced=api_level) ;;; ^ ;;; /data/data/com.termux/files/usr/include/android/versioning.h:57:71: note: expanded from macro '__BIONIC_AVAILABILITY' ;;; #define __BIONIC_AVAILABILITY(__what) __attribute__((__availability__(android,strict,__what))) ;;; ^ ;;; :6:17: note: expanded from here ;;; #define android 1 ;;; ^ ;;; In file included from .sly/fasl/1.0.43/ecl-21.2.1-unix-aarch64/slynk-backend.c:5: ;;; In file included from /data/data/com.termux/files/usr/include/ecl/ecl-cmp.h:36: ;;; In file included from /data/data/com.termux/files/usr/include/ecl/ecl.h:29: ;;; In file included from /data/data/com.termux/files/usr/include/stdio.h:47: ;;; /data/data/com.termux/files/usr/include/string.h:159:86: error: expected a platform name, e.g., 'macos' ;;; int strcoll_l(const char* __lhs, const char* __rhs, locale_t __l) __attribute_pure__ __INTRODUCED_IN(21); ;;; ^ ;;; /data/data/com.termux/files/usr/include/android/versioning.h:62:36: note: expanded from macro '__INTRODUCED_IN' ;;; #define __INTRODUCED_IN(api_level) __BIONIC_AVAILABILITY(introduced=api_level) ;;; ^ ;;; /data/data/com.termux/files/usr/include/android/versioning.h:57:71: note: expanded from macro '__BIONIC_AVAILABILITY' ;;; #define __BIONIC_AVAILABILITY(__what) __attribute__((__availability__(android,strict,__what))) ;;; ^ ;;; :6:17: note: expanded from here ;;; #define android 1 ;;; ^ ;;; In file included from .sly/fasl/1.0.43/ecl-21.2.1-unix-aarch64/slynk-backend.c:5: ;;; In file included from /data/data/com.termux/files/usr/include/ecl/ecl-cmp.h:36: ;;; In file included from /data/data/com.termux/files/usr/include/ecl/ecl.h:29: ;;; In file included from /data/data/com.termux/files/usr/include/stdio.h:47: ;;; /data/data/com.termux/files/usr/include/string.h:160:76: error: expected a platform name, e.g., 'macos' ;;; size_t strxfrm_l(char* __dst, const char* __src, size_t __n, locale_t __l) __INTRODUCED_IN(21); ;;; ^ ;;; /data/data/com.termux/files/usr/include/android/versioning.h:62:36: note: expanded from macro '__INTRODUCED_IN' ;;; #define __INTRODUCED_IN(api_level) __BIONIC_AVAILABILITY(introduced=api_level) ;;; ^ ;;; /data/data/com.termux/files/usr/include/android/versioning.h:57:71: note: expanded from macro '__BIONIC_AVAILABILITY' ;;; #define __BIONIC_AVAILABILITY(__what) __attribute__((__availability__(android,strict,__what))) ;;; ^ ;;; :6:17: note: expanded from here ;;; #define android 1 ;;; ^ ;;; In file included from .sly/fasl/1.0.43/ecl-21.2.1-unix-aarch64/slynk-backend.c:5: ;;; In file included from /data/data/com.termux/files/usr/include/ecl/ecl-cmp.h:36: ;;; In file included from /data/data/com.termux/files/usr/include/ecl/ecl.h:29: ;;; In file included from /data/data/com.termux/files/usr/include/stdio.h:47: ;;; /data/data/com.termux/files/usr/include/string.h:180:61: error: expected a platform name, e.g., 'macos' ;;; char* basename(const char* __path) __RENAME(__gnu_basename) __INTRODUCED_IN(23); ;;; ^ ;;; /data/data/com.termux/files/usr/include/android/versioning.h:62:36: note: expanded from macro '__INTRODUCED_IN' ;;; #define __INTRODUCED_IN(api_level) __BIONIC_AVAILABILITY(introduced=api_level) ;;; ^ ;;; /data/data/com.termux/files/usr/include/android/versioning.h:57:71: note: expanded from macro '__BIONIC_AVAILABILITY' ;;; #define __BIONIC_AVAILABILITY(__what) __attribute__((__availability__(android,strict,__what))) ;;; ^ ;;; :6:17: note: expanded from here ;;; #define android 1 ;;; ^ ;;; In file included from .sly/fasl/1.0.43/ecl-21.2.1-unix-aarch64/slynk-backend.c:5: ;;; In file included from /data/data/com.termux/files/usr/include/ecl/ecl-cmp.h:36: ;;; In file included from /data/data/com.termux/files/usr/include/ecl/ecl.h:29: ;;; /data/data/com.termux/files/usr/include/stdio.h:65:20: error: expected a platform name, e.g., 'macos' ;;; extern FILE* stdin __INTRODUCED_IN(23); ;;; ^ ;;; /data/data/com.termux/files/usr/include/android/versioning.h:62:36: note: expanded from macro '__INTRODUCED_IN' ;;; #define __INTRODUCED_IN(api_level) __BIONIC_AVAILABILITY(introduced=api_level) ;;; ^ ;;; /data/data/com.termux/files/usr/include/android/versioning.h:57:71: note: expanded from macro '__BIONIC_AVAILABILITY' ;;; #define __BIONIC_AVAILABILITY(__what) __attribute__((__availability__(android,strict,__what))) ;;; ^ ;;; :6:17: note: expanded from here ;;; #define android 1 ;;; ^ ;;; In file included from .sly/fasl/1.0.43/ecl-21.2.1-unix-aarch64/slynk-backend.c:5: ;;; In file included from /data/data/com.termux/files/usr/include/ecl/ecl-cmp.h:36: ;;; In file included from /data/data/com.termux/files/usr/include/ecl/ecl.h:29: ;;; /data/data/com.termux/files/usr/include/stdio.h:66:21: error: expected a platform name, e.g., 'macos' ;;; extern FILE* stdout __INTRODUCED_IN(23); ;;; ^ ;;; /data/data/com.termux/files/usr/include/android/versioning.h:62:36: note: expanded from macro '__INTRODUCED_IN' ;;; #define __INTRODUCED_IN(api_level) __BIONIC_AVAILABILITY(introduced=api_level) ;;; ^ ;;; /data/data/com.termux/files/usr/include/android/versioning.h:57:71: note: expanded from macro '__BIONIC_AVAILABILITY' ;;; #define __BIONIC_AVAILABILITY(__what) __attribute__((__availability__(android,strict,__what))) ;;; ^ ;;; :6:17: note: expanded from here ;;; #define android 1 ;;; ^ ;;; In file included from .sly/fasl/1.0.43/ecl-21.2.1-unix-aarch64/slynk-backend.c:5: ;;; In file included from /data/data/com.termux/files/usr/include/ecl/ecl-cmp.h:36: ;;; In file included from /data/data/com.termux/files/usr/include/ecl/ecl.h:29: ;;; /data/data/com.termux/files/usr/include/stdio.h:67:21: error: expected a platform name, e.g., 'macos' ;;; extern FILE* stderr __INTRODUCED_IN(23); ;;; ^ ;;; /data/data/com.termux/files/usr/include/android/versioning.h:62:36: note: expanded from macro '__INTRODUCED_IN' ;;; #define __INTRODUCED_IN(api_level) __BIONIC_AVAILABILITY(introduced=api_level) ;;; ^ ;;; /data/data/com.termux/files/usr/include/android/versioning.h:57:71: note: expanded from macro '__BIONIC_AVAILABILITY' ;;; #define __BIONIC_AVAILABILITY(__what) __attribute__((__availability__(android,strict,__what))) ;;; ^ ;;; :6:17: note: expanded from here ;;; #define android 1 ;;; ^ ;;; In file included from .sly/fasl/1.0.43/ecl-21.2.1-unix-aarch64/slynk-backend.c:5: ;;; In file included from /data/data/com.termux/files/usr/include/ecl/ecl-cmp.h:36: ;;; In file included from /data/data/com.termux/files/usr/include/ecl/ecl.h:29: ;;; /data/data/com.termux/files/usr/include/stdio.h:126:93: error: expected a platform name, e.g., 'macos' ;;; ssize_t getdelim(char** __line_ptr, size_t* __line_length_ptr, int __delimiter, FILE* __fp) __INTRODUCED_IN(18); ;;; ^ ;;; /data/data/com.termux/files/usr/include/android/versioning.h:62:36: note: expanded from macro '__INTRODUCED_IN' ;;; #define __INTRODUCED_IN(api_level) __BIONIC_AVAILABILITY(introduced=api_level) ;;; ^ ;;; /data/data/com.termux/files/usr/include/android/versioning.h:57:71: note: expanded from macro '__BIONIC_AVAILABILITY' ;;; #define __BIONIC_AVAILABILITY(__what) __attribute__((__availability__(android,strict,__what))) ;;; ^ ;;; :6:17: note: expanded from here ;;; #define android 1 ;;; ^ ;;; fatal error: too many errors emitted, stopping now [-ferror-limit=] ;;; 20 errors generated.;; ;; Error compiling /data/data/com.termux/files/home/.config/emacs/straight/repos/sly/slynk/slynk-backend.lisp: ;; COMPILE-FILE returned NIL. ;; An error occurred during initialization: COMPILE-FILE returned NIL.. ```
fosskers commented 1 year ago

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:

  1. Sly endless polls a /tmp/sly.* file.
  2. An ecl process starts and briefly has some CPU activity.
  3. The buffer *sly-started inferior-lisp for ecl* is created. By the time I visit it, it's mainly filled with a condition/restart debugger menu.
  4. CPU activity from 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!

fosskers commented 1 year ago

See also this potentially related issue: https://gitlab.com/embeddable-common-lisp/ecl/-/issues/710

fosskers commented 1 year ago

Corresponding issue in ECL: https://gitlab.com/embeddable-common-lisp/ecl/-/issues/714

fosskers commented 1 year ago

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.

aadcg commented 1 year ago

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>.
>> 
fosskers commented 1 year ago

@aadcg Are you able to compile slynk in a clean ecl session? If not, what version of gcc is installed?

aadcg commented 1 year ago

@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.

fosskers commented 1 year ago

Thanks that does help. The problem seems to be with GCC 13.