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!