Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error Building Lem on MacOS Using Roswell #1337

Open
stevemolitor opened this issue Mar 15, 2024 · 9 comments
Open

Error Building Lem on MacOS Using Roswell #1337

stevemolitor opened this issue Mar 15, 2024 · 9 comments

Comments

@stevemolitor
Copy link

When I run this command:

ros follow-dependency=t install lem-project/lem

I get this error:

63: (SB-IMPL::PROCESS-EVAL/LOAD-OPTIONS ((:EVAL . "(progn #-ros.init(cl:load \"/opt/homebrew/Cellar/roswell/23.10.14.114/etc/roswell/init.lisp\"))") (:EVAL . "(ros:run '((:eval\"(ros:quicklisp)\")(:script \"/opt/homebrew/Cellar/roswell/23.10.14.114/etc/roswell/install.ros\"\"lem-project/lem\")(:quit ())))")))
64: (SB-IMPL::TOPLEVEL-INIT)
65: ((FLET SB-UNIX::BODY :IN SB-IMPL::START-LISP))
66: ((FLET "WITHOUT-INTERRUPTS-BODY-3" :IN SB-IMPL::START-LISP))
67: (SB-IMPL::%START-LISP)

unhandled condition in --disable-debugger mode, quitting
;
; compilation unit aborted
;   caught 1 fatal ERROR condition

Versions:

roswell 23.10.14.114(NO-GIT-REVISION)
SBCL 2.3.4
MacOS Sonoma 14.0 M1 (arm) chip

@vkz
Copy link

vkz commented Mar 16, 2024

Also unable to install on:

Mac Monterey
roswell 23.10.14.114(NO-GIT-REVISION)
sbcl-bin/2.4.2

First it failed to find qlot, so I had to explicitly install it:
$ ros install qlot

$ ros follow-dependency=t install lem-project/lem

getting similar error reported by OP

@vkz
Copy link

vkz commented Mar 16, 2024

Ditto on Debian with roswell built from source. I both cases feels like some issue with dependency resolution or smth.

$ ros --version
roswell 22.12.14.113(eae6e5c)
$ ros run -- --version
SBCL 2.4.2

error
[package type-i]..................................
[package trivia.balland2006]......
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 #:
  System "micros" not found

Backtrace for: #<SB-THREAD:THREAD tid=20847 "main thread" RUNNING {10012C0093}>
0: (SB-DEBUG::DEBUGGER-DISABLED-HOOK #<QUICKLISP-CLIENT:SYSTEM-NOT-FOUND {1003FD1C53}> # :QUIT T)
1: (SB-DEBUG::RUN-HOOK SB-EXT:INVOKE-DEBUGGER-HOOK #<QUICKLISP-CLIENT:SYSTEM-NOT-FOUND {1003FD1C53}>)
2: (INVOKE-DEBUGGER #<QUICKLISP-CLIENT:SYSTEM-NOT-FOUND {1003FD1C53}>)
3: (CERROR "Try again" QUICKLISP-CLIENT:SYSTEM-NOT-FOUND :NAME "micros")
4: ((LABELS QUICKLISP-CLIENT::RECURSE :IN QUICKLISP-CLIENT::COMPUTE-LOAD-STRATEGY) "micros")
5: (QL-DIST::CALL-WITH-CONSISTENT-DISTS #<FUNCTION (LAMBDA NIL :IN QUICKLISP-CLIENT::COMPUTE-LOAD-STRATEGY) {1003FCCC3B}>)
6: (QUICKLISP-CLIENT::COMPUTE-LOAD-STRATEGY "micros")
7: (QUICKLISP-CLIENT::AUTOLOAD-SYSTEM-AND-DEPENDENCIES "micros" :PROMPT NIL)
8: (QUICKLISP-CLIENT::AUTOLOAD-SYSTEM-AND-DEPENDENCIES "lem" :PROMPT NIL)
9: ((:METHOD QL-IMPL-UTIL::%CALL-WITH-QUIET-COMPILATION (T T)) # #<FUNCTION (FLET QUICKLISP-CLIENT::QL :IN QUICKLISP-CLIENT:QUICKLOAD) {10038A44FB}>) [fast-method]
10: ((:METHOD QL-IMPL-UTIL::%CALL-WITH-QUIET-COMPILATION :AROUND (QL-IMPL:SBCL T)) #<QL-IMPL:SBCL {1004C50CD3}> #<FUNCTION (FLET QUICKLISP-CLIENT::QL :IN QUICKLISP-CLIENT:QUICKLOAD) {10038A44FB}>) [fast-method]
11: ((:METHOD QUICKLISP-CLIENT:QUICKLOAD (T)) "lem" :PROMPT NIL :SILENT NIL :VERBOSE NIL) [fast-method]
12: (QL-DIST::CALL-WITH-CONSISTENT-DISTS #<FUNCTION (LAMBDA NIL :IN QUICKLISP-CLIENT:QUICKLOAD) {100387F97B}>)
13: (INSTALL-SYSTEM-SCRIPT "lem")
14: (INSTALL-SYSTEM-IF-PROBED "lem")
15: (INSTALL NIL)
... continued...

Here it failed to find micros and on mac it was iterate or smth. I'm guessing those are attempted in parallel, so there's something up with deps resolution? Sorry, first time attempting common lisp.

@garlic0x1
Copy link
Contributor

Nice PFP @vkz
I would recommend installing Qlot on its own (without Roswell) then running the included Makefile, lots of people seem to have issues with Roswell but not with the Makefile on Mac or Linux.

@vkz
Copy link

vkz commented Mar 17, 2024

Yeah, that worked. Thank you. But this adds to confusion with qlot, roswell, separate sbcl and larger ecosystem that you may not be familiar, yet. I wonder if copying the built binary out is safe or it depends on other artifacts that may've been built in the process? Do you know if it is a self-contained image that can be used on its own?

@mdbergmann
Copy link

Have the same issue using roswell.

However, building by manually cloning the repo and running the build scripts (make) works fine.

@t-sin
Copy link
Contributor

t-sin commented May 15, 2024

I met this. I think the reason on this relates that lem uses qlot for out-of-quicklisp dependency management. ql:*quicklisp-home* may be modified by roswell or qlot, so quicklisp cannot found iterate (closer-mop or etc. defined in ASDF's :depends-on)

But I wondered that this problem occurs only in mac...

printing `ql:*quicklisp-home*`

ros install lem-project/lem outputs

m$ ros install lem-project/lem
Installing from github lem-project/lem
[lem.asd] qlhome = #P"/Users/t-sin/.roswell/lisp/quicklisp/"
[lem.asd] qlhome = #P"/Users/t-sin/.roswell/local-projects/lem-project/lem/.qlot/"
[lem.asd] localproj-dir = (#P"/Users/t-sin/.roswell/local-projects/")
[lem.asd] qlhome = #P"/Users/t-sin/.roswell/local-projects/lem-project/lem/.qlot/"
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 tid=259 "main thread" RUNNING
                                                         {7005420683}>:
  System "closer-mop" not found

format I added

diff --git a/lem.asd b/lem.asd
index b7c0418c..2b5d1ac5 100644
--- a/lem.asd
+++ b/lem.asd
@@ -7,13 +7,18 @@
                       :error-output t))
   #+quicklisp
   (setf ql:*quicklisp-home* (merge-pathnames #P".qlot/"))
+(format t "[lem.asd] qlhome = ~s~%" ql:*quicklisp-home*)
   (let ((local-project-dir (or roswell:*local-project-directories*
                                #+quicklisp (copy-list ql:*local-project-directories*))))
+(format t "[lem.asd] localproj-dir = ~s~%" local-project-dir)
     (load (merge-pathnames #P".qlot/setup.lisp"))
     ;; XXX: Not to modify the local project directories to install ros scripts in ~/.roswell/bin
     ;;   ref. https://github.com/roswell/roswell/blob/5b267381a66d36a514e2eee7283543f828541a63/lisp/util-install-quicklisp.lisp#L146
     (set (intern (string :*local-project-directories*) :ql) local-project-dir)))

+(format t "[lem.asd] qlhome = ~s~%" ql:*quicklisp-home*)
+
+
 (defsystem "lem"
   :version "2.2.0"
   :depends-on ("iterate"

This issue may relates behaviors of three systems: Quicklisp, Roswell and Qlot but I don't know how these relations. So any ideas? @snmsts @fukamachi

[ADDED]
This problem occurs only git-cloned and self-built roswell roswell/roswell@4c17a2b and does not occur with brew install roswell && ros install lem-project/lem.
So there is no problem using homebrew to install roswell.

@fukamachi
Copy link
Collaborator

fukamachi commented May 15, 2024

@t-sin
What version of Qlot are you using?
The situation is different, but I heard someone say Qlot won't work well with a global Quicklisp if its version is old (such as v1.4.x).

You may also want to delete the ".qlot/" directory when reinstalling it.

@t-sin
Copy link
Contributor

t-sin commented May 16, 2024

Oh, I did remove ~/.roswell but did not remove ~/.qlot so probably I used old qlot. I try again after removing ~/.qlot. Thanks for your mention!

@t-sin
Copy link
Contributor

t-sin commented May 17, 2024

I have successfully installed lem via roswell after removing ~/.roswell and ~/.qlot and building roswell. Thanks a lot @fukamachi !

It seems this issue is solved. Could I close this issue? @stevemolitor

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants