Hi Ricardo, I haven't packaged McCLIM nor looked at the package, so I'll try to help with what I know :) > I’d like to play with McCLIM, but I don’t know enough about Common Lisp > to understand how to launch the examples. > > Here’s what I’ve done: > > guix install sbcl sbcl-mcclim sbcl-slime-swank > > This is the first question, actually: if I don’t manually install > sbcl-slime-swank I get errors complaining about swank being absent. > Should sbcl-mcclim propagate sbcl-slime-swank? When SBCL- packages are built, they include references to all the dependencies in the .asd so there should be no need to propagate it. This won't work if SLIME-Swank is loaded differently at load time. This is probably what's happening here. > Then I started the sbcl REPL and input this: > > (require :asdf) ; I don’t know why I need this ASDF is the Common Lisp build system. Among others, it allows you to load Common Lisp systems. ASDF is not standard, it's actually distributed as a package, often together with compilers. Some compilers enable it by default, some, like SBCL, don't, so you need to require it yourself. I recommend you put this in your ~/.sbclrc: --8<---------------cut here---------------start------------->8--- (require "asdf") --8<---------------cut here---------------end--------------->8--- > (require :mcclim) > > This seems to compile Swank, prints a whole bunch of warnings about > invalid version strings in McCLIM and returns me to the REPL. The invalid version strings are due to the Guix sbcl-* packages using git versions. There are harmless. > Then I tried > > (require :clim-examples) > > but it fails with “Don't know how to REQUIRE CLIM-EXAMPLES.”. So I > loaded the asd file manually: > > (load "/home/rekado/.guix-profile/share/common-lisp/sbcl-source/mcclim/Examples/clim-examples.asd") Only the .asd files in the well known locations are recognized by ASDF if I'm not mistaken. Note that an .asd can forward to another. So here the problem seems to be with the main McCLIM .asd file. This could be a Guix problem, see below. > Now at least clim-examples appears to be found: > > (asdf:load-system "clim-examples") > > This fails with this error: > > --8<---------------cut here---------------start------------->8--- > debugger invoked on a ASDF/FIND-COMPONENT:MISSING-DEPENDENCY in thread > #: > Component #:MCCLIM-LAYOUTS/TAB not found, required by > # > --8<---------------cut here---------------end--------------->8--- > > I see that “lib/sbcl/mcclim-layouts-tab.asd” exists, but loading it > doesn’t help. What's the error then? Try --8<---------------cut here---------------start------------->8--- (asdf:locate-system :mcclim-layouts/tab) --8<---------------cut here---------------end--------------->8--- It will tell you where the system is. If it does not find it, it means the .asd file did not do the job. With all that said, here comes the most important piece of information: our SBCL build system has some serious flaws, most importantly because it _rewrites_ the .asd files. This could be why the examples cannot be found or why mcclim-layouts/tab causes problem. Personally I've stopped using sbcl- packages altogether. I'm not exclusively using cl-* packages. The drawback is that the .fasl must be built the first time, but then you get the smoothest experience just like with Quicklisp. The only exception to this, in my experience, is Osicat (the POSIX library): the cl-* version does not work but that's an upstream issue. For this one I use sbcl-osicat. Hope that helps! :) -- Pierre Neidhardt https://ambrevar.xyz/