fukamachi / qlot

A project-local library installer for Common Lisp
https://qlot.tech
MIT License
469 stars 40 forks source link

Qlot fails with cffi/grovel - ASD file contains yet unknown package CFFI-GROVEL #254

Closed awalcz closed 4 months ago

awalcz commented 4 months ago

Describe the bug

If one of the projects include or inline in the project tree is CFFI. QLot fails to even install (qlot install)

Reproducible steps

Any repo. Add CFFI in a subdirectory (inline or git subtree)

Error messages

qlot install
Reading '/Users/*****/qlfile'...
Already have dist "quicklisp" version "2023-10-21".
Unhandled SB-INT:SIMPLE-READER-PACKAGE-ERROR in thread #<SB-THREAD:THREAD tid=259 "main thread" RUNNING {7008370303}>: Package CFFI-GROVEL does not exist. Line: 44, Column: 29, File-Position: 1753 Stream: #<SB-SYS:FD-STREAM for "file /Users/*****/third_party/cffi/cffi-libffi.asd" {700686C293}>

Backtrace for: #<SB-THREAD:THREAD tid=259 "main thread" RUNNING {7008370303}>
0: (SB-DEBUG::DEBUGGER-DISABLED-HOOK #<SB-INT:SIMPLE-READER-PACKAGE-ERROR "Package ~A does not exist." {700686C693}> #<unused argument> :QUIT T)
1: (SB-DEBUG::RUN-HOOK SB-EXT:*INVOKE-DEBUGGER-HOOK* #<SB-INT:SIMPLE-READER-PACKAGE-ERROR "Package ~A does not exist." {700686C693}>)
2: (INVOKE-DEBUGGER #<SB-INT:SIMPLE-READER-PACKAGE-ERROR "Package ~A does not exist." {700686C693}>)
3: (ERROR #<SB-INT:SIMPLE-READER-PACKAGE-ERROR "Package ~A does not exist." {700686C693}>)
4: (SB-KERNEL:WITH-SIMPLE-CONDITION-RESTARTS ERROR NIL SB-INT:SIMPLE-READER-PACKAGE-ERROR :PACKAGE "CFFI-GROVEL" :STREAM #<SB-SYS:FD-STREAM for "file /Users/*****/third_party/cffi/cffi-libffi.asd" {700686C293}> :FORMAT-CONTROL "Package ~A does not exist." :FORMAT-ARGUMENTS ("CFFI-GROVEL"))
5: (SB-IMPL::READER-FIND-PACKAGE "CFFI-GROVEL" #<SB-SYS:FD-STREAM for "file /Users/*****/third_party/cffi/cffi-libffi.asd" {700686C293}> T)
6: (SB-IMPL::READ-TOKEN #<SB-SYS:FD-STREAM for "file /Users/*****/third_party/cffi/cffi-libffi.asd" {700686C293}> #\c)
7: (SB-IMPL::READ-MAYBE-NOTHING #<SB-SYS:FD-STREAM for "file /Users/*****/third_party/cffi/cffi-libffi.asd" {700686C293}> #\c)
8: (SB-IMPL::READ-LIST #<SB-SYS:FD-STREAM for "file /Users/*****/third_party/cffi/cffi-libffi.asd" {700686C293}> #<unused argument>)
9: (SB-IMPL::READ-MAYBE-NOTHING #<SB-SYS:FD-STREAM for "file /Users/*****/third_party/cffi/cffi-libffi.asd" {700686C293}> #\()
10: (SB-IMPL::READ-LIST #<SB-SYS:FD-STREAM for "file /Users/*****/third_party/cffi/cffi-libffi.asd" {700686C293}> #<unused argument>)
11: (SB-IMPL::READ-MAYBE-NOTHING #<SB-SYS:FD-STREAM for "file /Users/*****/third_party/cffi/cffi-libffi.asd" {700686C293}> #\()
12: (SB-IMPL::READ-LIST #<SB-SYS:FD-STREAM for "file /Users/*****/third_party/cffi/cffi-libffi.asd" {700686C293}> #<unused argument>)
13: (SB-IMPL::READ-MAYBE-NOTHING #<SB-SYS:FD-STREAM for "file /Users/*****/third_party/cffi/cffi-libffi.asd" {700686C293}> #\()
14: (SB-IMPL::READ-LIST #<SB-SYS:FD-STREAM for "file /Users/*****/third_party/cffi/cffi-libffi.asd" {700686C293}> #<unused argument>)
15: (SB-IMPL::READ-MAYBE-NOTHING #<SB-SYS:FD-STREAM for "file /Users/*****/third_party/cffi/cffi-libffi.asd" {700686C293}> #\()
16: (SB-IMPL::READ-LIST #<SB-SYS:FD-STREAM for "file /Users/*****/third_party/cffi/cffi-libffi.asd" {700686C293}> #<unused argument>)
17: (SB-IMPL::READ-MAYBE-NOTHING #<SB-SYS:FD-STREAM for "file /Users/*****/third_party/cffi/cffi-libffi.asd" {700686C293}> #\()
18: (SB-IMPL::%READ-PRESERVING-WHITESPACE #<SB-SYS:FD-STREAM for "file /Users/*****/third_party/cffi/cffi-libffi.asd" {700686C293}> NIL #:EOF T)
19: (SB-IMPL::%READ-PRESERVING-WHITESPACE #<SB-SYS:FD-STREAM for "file /Users/*****/third_party/cffi/cffi-libffi.asd" {700686C293}> NIL #:EOF NIL)
20: ((LAMBDA NIL :IN QLOT/UTILS/ASDF::READ-ASD-FILE))
21: ((FLET "THUNK" :IN CALL-WITH-SAFE-IO-SYNTAX))
22: (SB-IMPL::%WITH-STANDARD-IO-SYNTAX #<FUNCTION (FLET "THUNK" :IN CALL-WITH-SAFE-IO-SYNTAX) {10299199B}>)
23: (CALL-WITH-SAFE-IO-SYNTAX #<FUNCTION (LAMBDA NIL :IN QLOT/UTILS/ASDF::READ-ASD-FILE) {700686C3FB}> :PACKAGE :CL)
24: ((LAMBDA (QLOT/UTILS/ASDF::IN) :IN QLOT/UTILS/ASDF::READ-ASD-FILE) #<SB-SYS:FD-STREAM for "file /Users/*****/third_party/cffi/cffi-libffi.asd" {700686C293}>)
25: (CALL-WITH-INPUT-FILE #P"/Users/*****/third_party/cffi/cffi-libffi.asd" #<FUNCTION (LAMBDA (QLOT/UTILS/ASDF::IN) :IN QLOT/UTILS/ASDF::READ-ASD-FILE) {700686BD9B}> :ELEMENT-TYPE NIL :EXTERNAL-FORMAT NIL :IF-DOES-NOT-EXIST :ERROR)
26: (QLOT/UTILS/PROJECT:PROJECT-DEPENDENCIES #P"/Users/*****/")
27: (QLOT/INSTALL::INSTALL-DEPENDENCIES #P"/Users/*****/" #P"/Users/*****/.qlot/")
28: (QLOT/INSTALL:INSTALL-QLFILE #P"/Users/*****/qlfile" :QUICKLISP-HOME NIL :INSTALL-DEPS T :CACHE-DIRECTORY NIL)
29: (QLOT/CLI::QLOT-COMMAND "install")
30: (SB-INT:SIMPLE-EVAL-IN-LEXENV (APPLY (QUOTE ROS/SCRIPT/QLOT::MAIN) ROSWELL:*ARGV*) #<NULL-LEXENV>)
31: (SB-INT:SIMPLE-EVAL-IN-LEXENV (ROSWELL:QUIT (APPLY (QUOTE ROS/SCRIPT/QLOT::MAIN) ROSWELL:*ARGV*)) #<NULL-LEXENV>)
32: (SB-EXT:EVAL-TLF (ROSWELL:QUIT (APPLY (QUOTE ROS/SCRIPT/QLOT::MAIN) ROSWELL:*ARGV*)) NIL NIL)
33: ((LABELS SB-FASL::EVAL-FORM :IN SB-INT:LOAD-AS-SOURCE) (ROSWELL:QUIT (APPLY (QUOTE ROS/SCRIPT/QLOT::MAIN) ROSWELL:*ARGV*)) NIL)
34: (SB-INT:LOAD-AS-SOURCE #<CONCATENATED-STREAM :STREAMS NIL {70089E0223}> :VERBOSE NIL :PRINT NIL :CONTEXT "loading")
35: ((LABELS SB-FASL::LOAD-STREAM-1 :IN LOAD) #<CONCATENATED-STREAM :STREAMS NIL {70089E0223}> NIL)
36: (SB-FASL::CALL-WITH-LOAD-BINDINGS #<FUNCTION (LABELS SB-FASL::LOAD-STREAM-1 :IN LOAD) {102990B4B}> #<CONCATENATED-STREAM :STREAMS NIL {70089E0223}> NIL #<CONCATENATED-STREAM :STREAMS NIL {70089E0223}>)
37: (LOAD #<CONCATENATED-STREAM :STREAMS NIL {70089E0223}> :VERBOSE NIL :PRINT NIL :IF-DOES-NOT-EXIST :ERROR :EXTERNAL-FORMAT :DEFAULT)
38: ((FLET ROSWELL::BODY :IN ROSWELL:SCRIPT) #<SB-SYS:FD-STREAM for "file /Users/****/.roswell/bin/qlot" {70089E0003}>)
39: (ROSWELL:SCRIPT "/Users/*****/.roswell/bin/qlot" "install")
40: (ROSWELL:RUN ((:EVAL "(ros:quicklisp)") (:SCRIPT "/Users/*****/.roswell/bin/qlot" "install") (:QUIT NIL)))
41: (SB-INT:SIMPLE-EVAL-IN-LEXENV (ROSWELL:RUN (QUOTE ((:EVAL "(ros:quicklisp)") (:SCRIPT "/Users/*****/.roswell/bin/qlot" "install") (:QUIT NIL)))) #<NULL-LEXENV>)
42: (EVAL (ROSWELL:RUN (QUOTE ((:EVAL "(ros:quicklisp)") (:SCRIPT "/Users/*****/.roswell/bin/qlot" "install") (:QUIT NIL)))))
43: (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 \"/Users/*****/.roswell/bin/qlot\"\"install\")(:quit ())))")))
44: (SB-IMPL::TOPLEVEL-INIT)
45: ((FLET SB-UNIX::BODY :IN SB-IMPL::START-LISP))
46: ((FLET "WITHOUT-INTERRUPTS-BODY-3" :IN SB-IMPL::START-LISP))
47: (SB-IMPL::%START-LISP)

Versions:

fukamachi commented 4 months ago

Thank you for reporting! I made changes in the master branch. Can you update Qlot with ros update qlot and try it again?