ciel-lang/CIEL

setup errors and fixes (local-nicknames, quicklisp/setup, library compression)

Opened this issue ยท 8 comments

thanks for making this batteries included packaging, now i can have fun playing around with lisp and not waste more time on package management, which is non-trivial if you don't want to use quicklisp over insecure http, I got it setup now but these are the errors I ran in to:

  1. "unrecognized define-package keyword :LOCAL-NICKNAMES"
    it seems sbcl (2.2.9.debian) comes with an older version of uiop/asdf that is missing that, here is discussion
    I am on debian and did apt install cl-asdf and got past that error
  2. can't load quicklisp/setup
    I am using ql-https rather than default quicklisp, I added the startup code of ql-https to quicklisp/setup.lisp and then that part worked
  3. #<LIBRARY COMPRESSION-LIB> does not have a known shared library file path.
    I needed to install libzstd-dev
    now it seems everything is working

Moving from issue #24, i hadn't seen the details of this issue.

I tried libzstd-dev, but i get the same #<LIBRARY COMPRESSION-LIB> does not have a known shared library file path. error.

I checked the source of deploy and it seems that for it to load libzstd.so (the library provided by libzstd-dev) SBCL's version needs to be >= 2.2.6. In debian 11 SBCL is v2.1.1, and it seems it won't be updated to v2.2.9 until debian 12 arrives. If deploy doesn't find SBCL v2.2.6 then it will require libz.so, which is provided by zlib1g-dev, and not having it installed leads to the same error.

Link to the relevant code section: https://github.com/Shinmera/deploy/blob/5f802c13d1e6ea07becdc5814a0dee0b82f4b690/deploy.lisp#L19-L32

I detailed this on the relevant section of the README in the PR #26.

thanks for investigating, I am on debian unstable (12) which is why I guess it worked with just libzstd-dev

I just installed from scratch again, and I had to (ql:quickload "deploy") before it would build. This is documented as a comment in ciel.asd, but should probably be mentioned also in the readme?

How did you build? make build (to build a binary) does quickload Deploy before loading the .asd.

(any improvement to documentation is welcome though)

ah that would be it, I only did make image as I'm only using the core image from emacs/sly, not the cli repl. better than documenting it would be to just add quickload deploy also to the image entry in Makefile?

damn, I'm late, but that could be it. I added a line in build-image.lisp

ps: make build creates a binary, that not only has the cli repl, but also allows to run CIEL scripts.

it's nice ๐Ÿ˜„ I've written a couple standalone ciel scripts with it. Like this for catching up on reading the #commonlisp irc channel. The periods library you might want to consider inclusion in CIEL, it has convenient macros like do-times there for looping over a range of dates. I also reexported uiop/stream:println into ciel-user, might want to consider that as for scripting it's nice to have some more concise println than (format t "~a~%" ...). Then the other weird things you see there are cause I added cl-interpol and curry-compose-reader-macros to the default readtable for CIEL scripts, I don't really expect you to consider that as CIEL default, that was just me messing around seeing how close CL can get to the conciseness of ruby or python for these kind of small scripts.

Very cool, thanks, I added println and I am evaluating periods: #37