Sun, 24 Oct 2010 07:53:31 -0700, Stelian Ionescu wrote:
On Sun, 2010-10-24 at 15:08 +0200, Marshall McLuhan wrote:
Hi
trying to load iolib.syscalls (iolib-0.7.0). I get the same results with iolib-0.7.2 if I did not miss something.
As far as I know all the dependencies described at http://common-lisp.net/project/iolib/download.shtml are in place.
Here some curiosity, the sbcl output mentions the lisp-name function.
[...]
Here lisp-name requires two arguments but I know that this is not the error in question, at least not yet.
It's surprising that SBCL doesn't signal an error on that
But I'm interested in your reflections on this nonetheless.
Since I also work on CFFI, I have several in-progress branches and I
I appreciate that.
think I might have tested the previous release on the wrong one.
Anyway, I've pushed a fix to CFFI and released 0.7.3, which work here
Thank you. Although an error still remains.
The value VALUE is not of type SEQUENCE. [Condition of type TYPE-ERROR]
The argument spec passed to the function parse-name-and-options is the symbol 'value but substitute exspects a sequence, a list in this case I guess. Where does the symbol 'value come from and what's it's purpose?
iolib-0.7.3/src/syscalls/early.lisp - start
(defun parse-name-and-options (SPEC) (assert (or (stringp spec) (and (symbolp (first spec)) (every #'stringp (ensure-list (second spec)))))) (cond ((stringp spec) (values (cffi::lisp-name SPEC nil) (cffi::foreign-name spec nil) (cffi::foreign-options nil nil))) (t (values (first spec) (let ((foreign-names (ensure-list (second spec)))) ;; If there are multiple foreign names, pick the ;; one that is available -- defaulting to the first ;; one if all else fails. (or (find-if #'foreign-symbol-pointer foreign-names) (car foreign-names))) (cffi::foreign-options (cddr spec) nil)))))
iolib-0.7.3/src/syscalls/early.lisp - end
cffi/src/functions.lisp - start
(defun lisp-name (SPEC varp) (intern (format nil (if varp "*~A*" "~A") (canonicalize-symbol-name-case (SUBSTITUTE #- #_ SPEC)))))
cffi/src/functions.lisp - end
Below the error in all it's glory.
Regards, chris
Restarts: 0: [TRY-RECOMPILING] Try recompiling ffi-wrappers 1: [RETRY] Retry compiling component ("iolib.syscalls" "ffi-wrappers"). 2: [ACCEPT] Continue, treating compiling component ("iolib.syscalls" "ffi-wrappers") as having been successful. 3: [ABORT] Abort compilation. 4: [ABORT] Return to SLIME's top level. 5: [TERMINATE-THREAD] Terminate this thread (#<THREAD "repl-thread" RUNNING {1003D95671}>)
Backtrace: 0: (SUBSTITUTE #- #_ VALUE)[:EXTERNAL] 1: (CFFI::LISP-NAME VALUE NIL) Locals: SB-DEBUG::ARG-0 = VALUE SB-DEBUG::ARG-1 = NIL 2: ((SB-PCL::FAST-METHOD CFFI-GROVEL::%PROCESS-WRAPPER-FORM ((EQL 'CFFI-GROVEL::DEFWRAPPER*) T T)) ..) Locals: SB-DEBUG::ARG-0 = :<NOT-AVAILABLE> SB-DEBUG::ARG-1 = :<NOT-AVAILABLE> SB-DEBUG::ARG-2 = :<NOT-AVAILABLE> SB-DEBUG::ARG-3 = #<SB-SYS:FD-STREAM for "file /home/chris/.cache/common-lisp/sbcl-1.0.37-lin.. SB-DEBUG::ARG-4 = (("iolib_set_errno" %SET-ERRNO) :INT ((VALUE :INT)) ..) 3: (CFFI-GROVEL::GENERATE-C-LIB-FILE ..) Locals: SB-DEBUG::ARG-0 = #P"/home/chris/code/lisp-tp/iolib-0.7.3/src/syscalls/ffi-wrappers-unix.lisp.. SB-DEBUG::ARG-1 = #P"/home/chris/.cache/common-lisp/sbcl-1.0.37-linux-x86-64/home/chris/code/.. 4: ((LAMBDA ())) [No Locals] 5: (SB-IMPL::%WITH-STANDARD-IO-SYNTAX #<CLOSURE (LAMBDA #) {1003B220C9}>) Locals: SB-DEBUG::ARG-0 = #<CLOSURE (LAMBDA ()) {1003B220C9}> 6: (CFFI-GROVEL::%PERFORM-PROCESS-WRAPPER-FILE #<ASDF:COMPILE-OP NIL {10032F1CD1}> #<CFFI-GROVEL:WRAPPER-FILE "iolib.syscalls" "ffi-wrappers">) Locals: SB-DEBUG::ARG-0 = #<ASDF:COMPILE-OP NIL {10032F1CD1}> SB-DEBUG::ARG-1 = #<CFFI-GROVEL:WRAPPER-FILE "iolib.syscalls" "ffi-wrappers"> 7: ((SB-PCL::FAST-METHOD ASDF:PERFORM (ASDF:COMPILE-OP CFFI-GROVEL:WRAPPER-FILE)) ..) Locals: SB-DEBUG::ARG-0 = :<NOT-AVAILABLE> SB-DEBUG::ARG-1 = :<NOT-AVAILABLE> SB-DEBUG::ARG-2 = #<ASDF:COMPILE-OP NIL {10032F1CD1}> SB-DEBUG::ARG-3 = #<CFFI-GROVEL:WRAPPER-FILE "iolib.syscalls" "ffi-wrappers"> 8: ((LAMBDA (SB-PCL::.PV. SB-PCL::.NEXT-METHOD-CALL. SB-PCL::.ARG0. SB-PCL::.ARG1.)) ..) Locals: SB-DEBUG::ARG-0 = :<NOT-AVAILABLE> SB-DEBUG::ARG-1 = :<NOT-AVAILABLE> SB-DEBUG::ARG-2 = #<ASDF:COMPILE-OP NIL {10032F1CD1}> SB-DEBUG::ARG-3 = #<CFFI-GROVEL:WRAPPER-FILE "iolib.syscalls" "ffi-wrappers"> 9: ((SB-PCL::FAST-METHOD ASDF:PERFORM :AROUND (ASDF:COMPILE-OP CFFI-GROVEL::CC-FLAGS-MIXIN)) ..) Locals: SB-DEBUG::ARG-0 = :<NOT-AVAILABLE> SB-DEBUG::ARG-1 = #S(SB-PCL::FAST-METHOD-CALL ..) SB-DEBUG::ARG-2 = #<ASDF:COMPILE-OP NIL {10032F1CD1}> SB-DEBUG::ARG-3 = #<CFFI-GROVEL:WRAPPER-FILE "iolib.syscalls" "ffi-wrappers"> 10: ((SB-PCL::FAST-METHOD ASDF::PERFORM-WITH-RESTARTS (ASDF:COMPILE-OP ASDF:CL-SOURCE-FILE)) ..) Locals: SB-DEBUG::ARG-0 = :<NOT-AVAILABLE> SB-DEBUG::ARG-1 = #S(SB-PCL::FAST-METHOD-CALL ..) SB-DEBUG::ARG-2 = #<ASDF:COMPILE-OP NIL {10032F1CD1}> SB-DEBUG::ARG-3 = #<CFFI-GROVEL:WRAPPER-FILE "iolib.syscalls" "ffi-wrappers"> 11: ((LAMBDA ())) [No Locals] 12: ((FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK)) [No Locals] 13: ((FLET #:WITHOUT-INTERRUPTS-BODY-[CALL-WITH-RECURSIVE-LOCK]317)) [No Locals] 14: (SB-THREAD::CALL-WITH-RECURSIVE-LOCK ..) Locals: SB-DEBUG::ARG-0 = #<CLOSURE (FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK) {7FFFF2979CA9}> SB-DEBUG::ARG-1 = #S(SB-THREAD:MUTEX ..) 15: ((FLET SB-C::WITH-IT)) [No Locals] 16: ((SB-PCL::FAST-METHOD ASDF:OPERATE (T T)) #<unused argument> #<unused argument> ASDF:LOAD-OP "iolib.syscalls") Locals: #:*ASDF-VERBOSE*-DEFAULTING-TEMP = NIL ASDF::ARGS = NIL #:N-SUPPLIED-0 = NIL ASDF::OPERATION-CLASS = ASDF:LOAD-OP ASDF:SYSTEM = "iolib.syscalls" #:VERSION-DEFAULTING-TEMP = NIL 17: ((LAMBDA ())) 18: ((FLET SWANK-BACKEND:CALL-WITH-COMPILATION-HOOKS) #<CLOSURE (LAMBDA #) {10032DCB89}>) --more--
Which operating system and version are you using for iolib development?
Gentoo Linux/x86
!DSPAM:4cc4637b48589899414596!