lem
lem copied to clipboard
Cannot install Lem via Roswell on macOS due to error related to `qlot`
Problem Description
When I try to install
Reproduce
Firstly, I delete ~/.roswell
to ensure the environment is clean, then run ros run
to let Roswell re-download basic environment, then I run
$ ros follow-dependency=t install lem-project/lem
but meet can't execute qlot
problem
Installing from github lem-project/lem
[1/3] System 'lem' found. Loading the system..
While evaluating the form starting at line 1, column 0
of #P"/Users/he/.roswell/local-projects/lem-project/lem/lem.asd":Aborted during step [1/3].
Unhandled LOAD-SYSTEM-DEFINITION-ERROR in thread #<SB-THREAD:THREAD "main thread" RUNNING {7008B804E3}>: Error while trying to load definition for system lem from pathname /Users/he/.roswell/local-projects/lem-project/lem/lem.asd: Couldn't execute "qlot": No such file or directory
so I install qlot
, which run successfully
$ ros install qlot
then try to install Lem again
$ ros follow-dependency=t install lem-project/lem
this time qlot
give me an error about moving some folder
ros follow-dependency=t install lem-project/lem
Installing from github lem-project/lem
Installing Quicklisp to /Users/he/.roswell/local-projects/lem-project/lem/.qlot/...
Reading '/Users/he/.roswell/local-projects/lem-project/lem/qlfile'...
Installing dist "quicklisp".
qlot: mv: /Users/he/.roswell/lisp/quicklisp/dists/quicklisp/archives/trivial-mimes-20231021-git.tgz.partial: No such file or directory
Error: Subprocess with command "/opt/homebrew/bin/ros roswell-internal-use download http://beta.quicklisp.org/archive/trivial-mimes/2023-10-21/trivial-mimes-20231021-git.tgz /Users/he/.roswell/lisp/quicklisp/dists/quicklisp/archives/trivial-mimes-20231021-git.tgz 2"
exited with error code 7
[1/3] System 'lem' found. Loading the system..
While evaluating the form starting at line 1, column 0
of #P"/Users/he/.roswell/local-projects/lem-project/lem/lem.asd":Aborted during step [1/3].
Unhandled LOAD-SYSTEM-DEFINITION-ERROR in thread #<SB-THREAD:THREAD "main thread" RUNNING {7008B804E3}>: Error while trying to load definition for system lem from pathname /Users/he/.roswell/local-projects/lem-project/lem/lem.asd: Subprocess #<UIOP/LAUNCH-PROGRAM::PROCESS-INFO {70057F06F3}>
with command ("qlot" "install" "--no-deps")
exited with error code 255
More Info
I also tried install qlot
first, and install Lem
next, but also failed
$ ros follow-dependency=t install qlot lem-project/lem
this is error message
$ ros follow-dependency=t install qlot lem-project/lem
To load "qlot":
Load 1 ASDF system:
asdf
Install 1 Quicklisp release:
qlot
Downloading http://beta.quicklisp.org/archive/qlot/2023-10-21/qlot-20231021-git.tgz
##########################################################################
; Loading "qlot"
[1/3] System 'qlot' found. Loading the system..
[2/3] Processing build-hook..
[3/3] Attempting to install the scripts in roswell/ subdirectory of the system...
Found 1 scripts: qlot
/Users/he/.roswell/bin/qlot
Installing from github lem-project/lem
Installing Quicklisp to /Users/he/.roswell/local-projects/lem-project/lem/.qlot/...
Reading '/Users/he/.roswell/local-projects/lem-project/lem/qlfile'...
Installing dist "quicklisp".
qlot: Qlot secure downloader was unexpectedly terminated.
See error logs at '/var/folders/vt/54vkcvv178972028htnlv0rr0000gn/T/qlot-install-AR3FSGEY.log'.
[1/3] System 'lem' found. Loading the system..
While evaluating the form starting at line 1, column 0
of #P"/Users/he/.roswell/local-projects/lem-project/lem/lem.asd":Aborted during step [1/3].
Unhandled LOAD-SYSTEM-DEFINITION-ERROR in thread #<SB-THREAD:THREAD "main thread" RUNNING {7008B804E3}>: Error while trying to load definition for system lem from pathname /Users/he/.roswell/local-projects/lem-project/lem/lem.asd: Subprocess #<UIOP/LAUNCH-PROGRAM::PROCESS-INFO {7008A37F43}>
with command ("qlot" "install" "--no-deps")
exited with error code 255
if I continue running install, I will meet System "alexandria" not found
problem
$ ros install lem-project/lem
Installing from github lem-project/lem
To load "lem":
Load 1 ASDF system:
lem
; Loading "lem"
[1/3] System 'lem' found. Loading the system..Aborted during step [1/3].
Unhandled QUICKLISP-CLIENT:SYSTEM-NOT-FOUND in thread #<SB-THREAD:THREAD "main thread" RUNNING
{7008B804E3}>:
System "alexandria" not found
Environment Info
- Operation System: macOS 13.5.2
- SBCL version: 2.3.9
- roswell version
roswell 23.10.14.114(NO-GIT-REVISION) build with Apple clang version 14.0.3 (clang-1403.0.22.14.1) libcurl=7.87.0 Quicklisp=2021-02-13 Dist=2023-10-21 lispdir='/opt/homebrew/Cellar/roswell/23.10.14.114/etc/roswell/' homedir='/Users/he/.roswell/' sbcl-bin-variant=''
Hi, I'm reading a perhaps similar MacOS issue on Discord.
Yeah Roswell can be a little broken on macOS It’s because it’s trying to install quicklisp from HTTP Try doing ‘brew uninstall —zap Roswell’ and installing qlot manually Let it handle the quicklisp install
curl -L https://qlot.tech/installer | bash
(this will install to your user directory ~/, which you can remove with the uninstaller script)
then maked sdl2
.
Hope this helps.
I also had severe issues getting lem
to compile/run on macOS 14.0 (different to the ones in the issue) and I also initially installed roswell
from homebrew which did not work out.
Those are my steps to get the SDL2 version to work:
-
brew uninstall --zap roswell
-
curl -L https://qlot.tech/installer | bash
-
git clone --recursive [email protected]:lem-project/lem.git
-
cd lem
-
make sdl2
(this generate the lem executable in the same directory) -
./lem
You can use roswell from homebrew, but you'll have to setup a script on your path for SBCL that will use roswell.
printf '#!/bin/sh\nexec ros -L sbcl-bin run -- "$@"\n' | \
sudo tee /usr/local/bin/sbcl \
&& sudo chmod +x /usr/local/bin/sbcl
Alternatively look at what the make file is doing, and run those commands but with ros run
instead.