I am currently trialing out Lem (Common Lisp Emacs-like editor) on my Guix SD but am running into some issues. I installed via the following Lem Guix Pacakge recipe, i.e.
For the most part everything works well, except when trialing out the version control, i.e. lem/legit via (require :lem/legit) I get an error about a micros compilation error, I get the same error when trying to just (require :micros).
Looking at the Guix recipe, it appears micros is defined and should be installed and compiled with Lem when I performed guix package ....
At this point I am unsure how to resolve if this is an error with the recipe or my own configuration or Lem itselfā¦So I am just putting out a call to help for anyone who has tried Lem on Guix and can perhaps can guide me to what I am doing wrong.
PS: I did try asking on their Discord forum, but to no availā¦ Most arenāt Guix users from my estimation.
Also, I am currently using Guix Home for my configuration setup for all of my non-system essential packages (just sbcl/StumpWM defined there - if that matters)
I wanted to add to this request for help some additional questions. Does anyone know how to get a hybrid setup between Guix & Quicklisp?
I have come to the conclusion that the Common Lisp ecosystem is still quite small for Common Lisp packages in Guix and in the interim would like to still functionally use Guix for Common Lisp development until I can be able to perhaps help push upstream Guix package recipes for the things I will be using.
I donāt plan to support Lem anymore, and perhaps for the sake of Guix may make a final release on Lemās next version release, just so Guix can have one more package in its arsenal. Still not sure how to go about committing upstream, for me contributing to GNU in anyway feels like jumping across a giant chasm.
On other news - CLASP is currently working on a Guix Recipe, I donāt believe it is ready for upstream since it requires git submodule dependencies to be present for compilation and establishing the guix git command code in the package recipe is currently failing. They present a hybrid approach in their instructions, though, you need to slightly modify the recipe - removing the guix git commands - and using their build-script koga to fetch them, which works fine from the preliminary tests Iāve done.
Guix official channel may refuse your packages. I recommend submitting your guix packages to nonguix or submitting your own guix channel to https://toys.whereis.ćæććŖ/
I havenāt actually - but just taking a quick look, it looks pretty nice and somewhat similar in style to Lem, though much more mature.
For the time being and distant future I will probably stay with Emacs - it has an amazing ecosystem, and Iāve got deep enough to have built a few of my own macroās - so Iām spoiled, the next editor must be of a lisp.
I used it for some time.
It felt somewhat more modern and quite snappy.
Documentation is not good though and it is also not easy to find help within the community, partly because the main dev is japanese so there can be language barriers.
Would recommend to give it a try. Especially if one already has some common lisp knowledge.
Can it load the contrib packages? The package currently in the Nix flake I think cannot. Thatās one reason I added a dev shell to the flake. It letās people get dependencies and then build from source quickly instead of trying to get the CL packaging perfect.
I havenāt really dove into loading contrib packages, mainly been focusing on setting up micros/swank to get Lem connected to my StumpWM image and Nyxt as well as customizing completionsā¦ Iāll dig into that next.
Can you play Tetris? Thatās an easy indicator for contrib asdf path setup.
For anyone checking in, I updated the nix shell. You can build lem for curses or SDL like so with Nix:
nix develop
make sdl2
# or just make
./lem
qlot and sbcl and all that is on the path after running nix develop. The only downside to this method is that you need the LD_LIBRARY_PATH from having run nix develop to run the resulting binary. If the Guix people figure out a way, let me know and Iāll try to propagate the technique to Nix.
Just tried out tetris (my first Lem contrib trial) as you pointed out and things worked with a few caveates for me on Guix System (needed to remove/ignore package locks - will need to figure this out to set in my config). A few points for Guix users:
I donāt use quicklisp (at least now - try to use Guix were possible), so cannot use method proposed in Lemās instruction to use load-library as it uses quicklisp. It would be nice if Lem followed StumpWMās model and created a lem-contrib repo (just my opinion)
Dowloaded lem/contrib/tetris and placed in ~/common-lisp/
Reset ASDF registries in Lem to allow loading Lisp systems from everywhere
Then loaded tetris in Lem *lisp-repl*, via (asdf:load-system :lem-tetris), needed to ignore a few package locks to get successful compiliation.