ciel-lang / CIEL

CIEL Is an Extended Lisp. Scripting with batteries included.
http://ciel-lang.org
346 stars 16 forks source link

log4cl is outdated in quicklisp and won't compile on newer versions of SBCL #24

Closed cinerion closed 1 year ago

cinerion commented 1 year ago

When i was trying to build it on my system (Void Linux), i got an error during the compilation of log4cl. Here are the specifics:

OS: Linux 6.1.25_1 Lisp: SBCL 2.3.4.void.1 ASDF: 3.3.6 Quicklisp: (#<DIST quicklisp 2023-02-15>) (most recent at the moment)

When running make build i get the following output:

[package log4cl.package-setup]....................
[package log4cl-impl]...;
; caught ERROR:
;   READ error during COMPILE-FILE:
;
;     Lock on package SB-C violated when interning LAMBDA-PARENT while in package
;     LOG4CL-IMPL.
;   See also:
;     The SBCL Manual, Node "Package Locks"
;
;     (in form starting at line: 99, column: 0, position: 3779)
Unhandled UIOP/LISP-BUILD:COMPILE-FILE-ERROR in thread #<SB-THREAD:THREAD tid=20172 "main thread" RUNNING
                                                          {1001080073}>:
  COMPILE-FILE-ERROR while
  compiling #<CL-SOURCE-FILE "log4cl" "src" "naming-sbcl">

Thank you very much for all the effort that goes into making CIEL.

vindarel commented 1 year ago

Thank you!

I suppose having a newer log4cl has no backward consequences, so this looks good to me.

cinerion commented 1 year ago

I have tested the PR on my debian 11 machine and it compiles without issue:

OS: Linux 5.10.0-22-amd64 Lisp: SBCL 2.1.1.debian ASDF: 3.3.6 Quicklisp: (#<DIST quicklisp 2023-02-15>)

However, when i was compiling it i ran into a missing library at the final step

#P"/home/x/quicklisp/local-projects/CIEL/bin/ciel"
 ==> Running load hooks.
 ==> Gathering system information.
   -> Will load the following foreign libs on boot:
      (#<DEPLOY:LIBRARY READLINE> #<DEPLOY:LIBRARY LIBRT>
       #<DEPLOY:LIBRARY LIBOSICAT> #<DEPLOY:LIBRARY LIBMAGIC>
       #<DEPLOY:LIBRARY LIBSSL> #<DEPLOY:LIBRARY LIBCRYPTO>)
 ==> Deploying files to /home/x/quicklisp/local-projects/CIEL/bin/
WARNING: redefining ASDF/UPGRADE:UPGRADE-ASDF in DEFUN
Unhandled SIMPLE-ERROR in thread #<SB-THREAD:THREAD "main thread" RUNNING
                                    {1001880173}>:
  #<LIBRARY COMPRESSION-LIB> does not have a known shared library file path.

I was missing zlib.so, This was solved by installing zlib1g-dev. This was rather fresh machine so i don't know how likely is that other people don't have it installed already, but it might me a good idea to add it to the list of system dependencies. Should i open a new issue/PR for this?

vindarel commented 1 year ago

Merged, thanks again. I am looking forward to see what you'll do with CIEL. If you end up with useful scripts, keep up the habit and share :)

I was missing zlib.so, This was solved by installing zlib1g-dev

Ah, I now understand why I didn't see this issue in my builds: the Docker image I use has the required dependencies baked in (https://gitlab.common-lisp.net/cl-docker-images/sbcl).

But, I think it is libzstd-dev we need?

Related to #23

good idea to add it to the list of system dependencies

Yes, though straightforward, I can do it later but I'd merge a PR.

vindarel commented 1 year ago

ps: you are more than welcome to add a gitlab CI step to produce a binary for Void.

cinerion commented 1 year ago

Moved discussion to #23.

If you end up with useful scripts, keep up the habit and share :)

Will do :)

ps: you are more than welcome to add a gitlab CI step to produce a binary for Void.

Great!, i'll see to it later when i have read how gitlab's CI instructions work.