Pierre Neidhardt skribis: > Guillaume Le Vaillant writes: > >> SBCL and ECL are patched to use our cl-asdf because it is necessary to >> build the sbcl-* and ecl-* packages. Also patching ABCL, CCL, and Clisp >> sounds like a good idea. At least all the compilers would use the same >> version of ASDF, and hopefully behave in the same way when looking for >> configuration files. > > Yup, that'd be neat :) Patches for CCL and Clisp attached. ABCL fails to build with ASDF 3.3.4 and I have not seen an obvious error message in the logs, so this one will need more investigation... > Related to this, I've noticed another issue with SBCL packages: when an > SBCL package has a dependency that's updated in ~/common-lisp, > (asdf:load-system ...) tries to recompile it in its folder, which fails > since /gnu/store is read-only. > > Example: > > - Apply the above patch or edit > ~/.config/common-lisp/source-registry.conf > to make sure ~/common-lisp is loaded before system packages. > > - Install sbcl-cl-cookie. > > - Check out https://github.com/fukamachi/quri: > git clone https://github.com/fukamachi/quri ~/common-lisp/quri > > - Now run > > --8<---------------cut here---------------start------------->8--- > $ sbcl > * (asdf:load-system :cl-cookie) > WARNING: System definition file #P"/gnu/store/81cwmspx3366vdjs6v20rnd8a0xyr6in-sbcl-cl-fad-0.7.6/share/common-lisp/sbcl/cl-fad/cl-fad.asd" contains definition for system "cl-fad-test". Please only define "cl-fad" and secondary systems with a name starting with "cl-fad/" (e.g. "cl-fad/test") in that file. > > debugger invoked on a SB-INT:SIMPLE-FILE-ERROR in thread > #: > Error opening #P"/gnu/store/22q4ydm0pagi4irz0clssgkhkyh115j8-sbcl-cl-cookie-0.9.10-1.cea55ae/lib/common-lisp/sbcl/cl-cookie/src/cl-cookie-tmpGHU3ALSV.fasl": > > Read-only file system > --8<---------------cut here---------------end--------------->8--- > > Not sure what to do about this. > > I'm guessing that Common Lisp development is not practical with Guix' > SBCL packages and I should just stick to the CL packages. > > Thoughts? The Lisp systems of sbcl-* and ecl-* packages installed in a profile are supposed to be already compiled and immutable, so recompiling them anyway would require tweaking the ASDF configuration from inside SBCL to remove the output translations for these systems. When doing development, it might be more convenient to just use the sources or source packages of every system that has to be recompiled.