sly icon indicating copy to clipboard operation
sly copied to clipboard

Slynk doesn't compile with ECL 20.4.24?

Open errissa opened this issue 5 years ago • 9 comments

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.

errissa avatar May 31 '20 21:05 errissa

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)))
;;;                                                                       ^
;;; <command line>: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)))
;;;                                                                       ^
;;; <command line>: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)))
;;;                                                                       ^
;;; <command line>: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)))
;;;                                                                       ^
;;; <command line>: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)))
;;;                                                                       ^
;;; <command line>: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)))
;;;                                                                       ^
;;; <command line>: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)))
;;;                                                                       ^
;;; <command line>: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)))
;;;                                                                       ^
;;; <command line>: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)))
;;;                                                                       ^
;;; <command line>: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)))
;;;                                                                       ^
;;; <command line>: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)))
;;;                                                                       ^
;;; <command line>: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)))
;;;                                                                       ^
;;; <command line>: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)))
;;;                                                                       ^
;;; <command line>: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)))
;;;                                                                       ^
;;; <command line>: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)))
;;;                                                                       ^
;;; <command line>: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)))
;;;                                                                       ^
;;; <command line>: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)))
;;;                                                                       ^
;;; <command line>: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)))
;;;                                                                       ^
;;; <command line>: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)))
;;;                                                                       ^
;;; <command line>: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..

andreyorst avatar Nov 08 '21 12:11 andreyorst

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 avatar Aug 16 '23 06:08 fosskers

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

fosskers avatar Aug 16 '23 06:08 fosskers

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

fosskers avatar Aug 17 '23 01:08 fosskers

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.

fosskers avatar Aug 27 '23 23:08 fosskers

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 avatar Sep 04 '23 08:09 aadcg

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

fosskers avatar Sep 04 '23 10:09 fosskers

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

aadcg avatar Sep 04 '23 18:09 aadcg

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

fosskers avatar Sep 05 '23 01:09 fosskers