Works fine now. Thank you very much. I will read more carefully in the future.
Bye,
chris
-----Ursprüngliche Nachricht-----
Von: Stelian Ionescu <sionescu(a)cddr.org>
Gesendet: So 24.10.2010 19:01
An: iolib-devel(a)common-lisp.net;
Betreff: Re: [iolib-devel] iolib-0.7.0 or iolib-0,7.2 installation fails
On Sun, 2010-10-24 at 18:48 +0200, Marshall McLuhan wrote:
> 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?
[...]
As I mentioned, I've pushed a fix to CFFI. I'll try to make a CFFI
release soon, but in the meanwhile you need to use CFFI HEAD
--
Stelian Ionescu a.k.a. fe[nl]ix
Quidquid latine dictum sit, altum videtur.
http://common-lisp.net/project/iolib
!DSPAM:4cc46a5b48581684312916!
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!
Little by little I'll start shoving all syscall-related compatibility
code into a C library called libfixposix -
http://gitorious.org/libfixposix/libfixposix - on which iolib will
depend.
I've decided to do it mainly because writing OS compatibility code is
much easier in C and with the use of autoconf and because CFFI .so
wrappers cause problems with deployment/static executables.
Until this is finished, sources will be a little unstable so please
stick with the 0.7.0 release, or if you feel adventurous test
libfixposix and iolib, especially on *BSD and OSX.
--
Stelian Ionescu a.k.a. fe[nl]ix
Quidquid latine dictum sit, altum videtur.
http://common-lisp.net/project/iolib