Stelian Ionescu <sionescu <at> cddr.org> writes:
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.
Hi,
with an iolib snapshot and sbcl I got the following errors:
...
; compiling (DEFCSTRUCT (FD-SET :SIZE ...)) ; compiling (DEFCONSTANT SIZE-OF-FD-SET ...) ; compiling (DEFCONSTANT WNOHANG ...) ; compiling (DEFCONSTANT WUNTRACED ...) ; compiling (DEFCONSTANT WCONTINUED ...)
; /home/chris/.cache/common-lisp/sbcl-1.0.37-linux-x86-64/home/chris/code/ lisp-tp/~ iolib-20101017/src/libfixposix/ffi-types.fasl written ; compilation finished in 0:00:00.270 ; compiling file "/home/chris/code/lisp-tp/iolib-20101017/src/libfixposix/ffi-functions.lisp" (written 23 OCT 2010 01:52:49 AM):
; file: /home/chris/code/lisp-tp/iolib-20101017/src/libfixposix/~ ffi-functions.lisp ; in: EVAL-WHEN (:COMPILE-TOPLEVEL :LOAD-TOPLEVEL :EXECUTE) ; (CFFI:USE-FOREIGN-LIBRARY LIBFIXPOSIX::LIBFIXPOSIX) ; ==> ; (CFFI:LOAD-FOREIGN-LIBRARY 'LIBFIXPOSIX::LIBFIXPOSIX) ; ; caught ERROR: ; (during compile-time-too processing) ; Unable to load foreign library (LIBFIXPOSIX). ; Error opening shared object "libfixposix.so": ; /usr/local/lib/libfixposix.so: undefined symbol: execvpe.
; /home/chris/.cache/common-lisp/sbcl-1.0.37-linux-x86-64/home/chris/code/ ~lisp-tp/iolib-20101017/src/libfixposix/ASDF-TMP-ffi-functions.fasl written ; compilation finished in 0:00:00.143 WARNING: COMPILE-FILE warned while performing #<COMPILE-OP NIL {10054F89F1}> on #<IOLIB-SOURCE-FILE "libfixposix" "ffi-functions">. ; ; compilation unit aborted ; caught 1 fatal ERROR condition ; caught 1 ERROR condition ; caught 1 STYLE-WARNING condition
CL-USER>
*Slime Compilation Buffer*
cd /home/chris/code/lisp-tp/iolib-0.7.0/src/multiplex/ 6 compiler notes:
Unknown location: warning: IOLIB.BASE also exports the following symbols: (STREAM-READ-CHAR-NO-HANG STREAM-READ-BYTE STREAM-ADVANCE-TO-COLUMN STREAM-LISTEN STREAM-FORCE-OUTPUT IOLIB.BASE:TRIVIAL-GRAY-STREAM-MIXIN STREAM-START-LINE-P STREAM-CLEAR-OUTPUT STREAM-WRITE-CHAR STREAM-WRITE-STRING FUNDAMENTAL-CHARACTER-INPUT-STREAM FUNDAMENTAL-BINARY-INPUT-STREAM STREAM-CLEAR-INPUT STREAM-FINISH-OUTPUT STREAM-TERPRI FUNDAMENTAL-BINARY-OUTPUT-STREAM FUNDAMENTAL-BINARY-STREAM STREAM-UNREAD-CHAR STREAM-WRITE-BYTE FUNDAMENTAL-CHARACTER-OUTPUT-STREAM STREAM-READ-CHAR STREAM-READ-LINE FUNDAMENTAL-OUTPUT-STREAM STREAM-FRESH-LINE STREAM-LINE-COLUMN IOLIB.BASE:STREAM-READ-SEQUENCE FUNDAMENTAL-STREAM IOLIB.BASE:STREAM-WRITE-SEQUENCE FUNDAMENTAL-CHARACTER-STREAM STREAM-PEEK-CHAR FUNDAMENTAL-INPUT-STREAM IOLIB.BASE:STREAM-FILE-POSITION) also: mmon Lisp Hyperspec, DEFPACKAGE [:macro]
Unknown location: warning: COMPILE-FILE warned while performing #<COMPILE-OP NIL {1002CFE8D1}> on #<CL-SOURCE-FILE "iolib.base" "sequence">.
Unknown location: warning: COMPILE-FILE warned while performing #<COMPILE-OP NIL {10031C5D31}> on #<CL-SOURCE-FILE "trivial-garbage" "trivial-garbage">.
Unknown location: warning: COMPILE-FILE warned while performing #<COMPILE-OP NIL {10054F89F1}> on #<IOLIB-SOURCE-FILE "libfixposix" "ffi-functions">.
Unknown location: error: erred while invoking #<COMPILE-OP NIL {10054F89F1}> on #<IOLIB-SOURCE-FILE "libfixposix" "ffi-functions">
../../../alexandria/alexandria/sequences.lisp:161:23: note: unable to optimize due to type uncertainty: The first argument is a SEQUENCE, not a (SIMPLE-ARRAY * (*)). note: unable to optimize due to type uncertainty: The first argument is a Ssix.so.0.0.0 libfixposix.so; }; }) libtool: install: /usr/bin/install -c src/lib/.libs/libfixposix.lai /usr/local/lib/libfixposix.la libtool: install: /usr/bin/install -c src/lib/.libs/libfixposix.a /usr/local/lib/libfixposix.a libtool: install: chmod 644 /usr/local/lib/libfixposix.a libtool: install: ranlib /usr/local/lib/libfixposix.a libtool: finish: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/sbin" ldconfig -n /ent> ASDF:LOAD-OP "iolib") 17: ((LAMBDA ())) 18: ((FLET SWANK-BACKEND:CALL-WITH-COMPILATION-HOOKS) #<CLOSURE (LAMBDA #) {1004321EC9}>) --more--
...
; compiling (DEFUN WEAKNESS-KEYWORD-OPT ...)
; file: /home/chris/code/lisp-tp/trivial-garbage_0.18/trivial-garbage.lisp ; in: DEFUN WEAKNESS-KEYWORD-OPT ; (DEFUN TRIVIAL-GARBAGE::WEAKNESS-KEYWORD-OPT ; (TRIVIAL-GARBAGE::WEAKNESS TRIVIAL-GARBAGE::ERRORP) ; (ECASE TRIVIAL-GARBAGE::WEAKNESS ; SYSCALLS::I) ; --> AREF ; ==> ; (SB-KERNEL:HAIRY-DATA-VECTOR-REF ARRAY SB-INT:INDEX) ; ; note: unable to ; optimize ; due to type uncertainty: ; The first argument is a STRING, not a SIMPLE-STRING. ; ; note: unable to ; avoid runtime dispatch on array element type ; due to type uncertainty: ; The first argument is a STRING, not a SIMPLE-ARRAY.
; (CHAR IOLIB.SYSCALLS::SSTRING (INCF IOLIB.SYSCALLS::I)) ; --> AREF ; ==> ; (SB-KERNEL:HAIRY-DATA-VECTOR-REF ARRAY SB-INT:INDEX) ; ; ; ; note: unable to ; fold identity operations ; due to type uncertainty: ; The first argument is a NUMBER, not a (OR RATIONAL (COMPLEX RATIONAL)). ; ; note: unable to ; recode as leas, shifts and adds ; due to type uncertainty: ; The first argument is a NUMBER, not a (UNSIGNED-BYTE 64). ; The result is a (VALUES NUMBER &OPTIONAL), not a (VAR, not a INTEGER. ; ; note: unable to ; fold identity operations ; due to type uncertainty: ; The first argument is a NUMBER, not a (OR RATIONAL (COMPLEX RATIONAL)). ; ; note: unable to ; recode as leas, shifts and adds ; due to type uncertainty: ; The first argument is a NUMBER, not a (UNSIGNED-BYTE 64). ; The result is a (VALUES FIXNUM &OPTIONAL), not a (VALUES (UNSIGNED-BYTE 64) ;&REST T). ; ; note: unable to ; recode as leas, shifts and adds ; due to type uncertainty: ; The first argument is a NUMBER, not a FIXNUM.
; (INCF IOLIB.SYSCALLS::LS::C-PTR :UNSIGNED-CHAR ; IOLIB.SYSCALLS::INDEX) ; IOLIB.SYSCALLS::OCTET) ; --> LET* MULTIPLE-VALUE-BIND LET PROGN CFFI::MEM-SET CFFI-SYS:%MEM-SET ; --> LET SETF SB-KERNEL:%SET-SAP-REF-8 ; ==> ; (* #:INDEX-TMP65 1) ; ; note: unable to ; optimize ; due to type uncertainty: ; The first argument is a NUMBER, not a FLOAT. ; ; note: unable to ; convert x*2^k to shift ; due to type uncertainty: ; The first argument is a NUMBER, not a INTEGER. ; ; note: unable to ; fold identity operations ; due to type uncertainty: ; The first argument is a NUMBER, not a (OR RATIONAL ~ (COMPLEX RATIONALe uncertainty: ; The first argument is a NUMBER, not a FIXNUM.
; (INCF IOLIB.SYSCALLS::INDEX) ; --> LET* ; ==> ; (+ IOLIB.SYSCALLS::INDEX #:G51) ; ; note: unable to ; optimize ; due to type uncertainty: ; The first argument is a NUMBER, not a FLOAT.
; (LOOP :WITH IOLIB.SYSCALLS::LEN := (LENGTH IOLIB.SYSCALLS::SSTRING) ; :WITH IOLIB.SYSCALLS::END-OFFSET := ( IOLIB.SYSCALLS::OCTET) ; --> LET* MULTIPLE-VALUE-BIND LET PROGN CFFI::MEM-SET CFFI-SYS:%MEM-SET ; --> LET SETF SB-KERNEL:%SET-SAP-REF-8 ; ==> ; (* #:INDEX-TMP115 1) ; ; note: forced to do GENERIC-* (cost 30) ; unable to do inline fixnum arithmetic (cost 3) because: ; The first argument is a NUMBER, not a FIXNUM. ; unable to do inline (signed-byte 64) arithmetic (cost 4)~ ithmetic (cost 4) because: ; The first argument is a NUMBER, not a (SIGNED-BYTE 64). ; etc.
; (INCF IOLIB.SYSCALLS::INDEX) ; --> LET* ; ==> ; (+ IOLIB.SYSCALLS::INDEX #:G91) ; ; note: forced to do GENERIC-+ (cost 10) ; unable to do inline fixnum arithmetic (cost 1) ES NUMBER &OPTIONAL),~ not a (VALUES FIXNUM &REST T). ; unable to do inline fixnum arithmetic (cost 2) because: ; The first argument is a NUMBER, not a FIXNUM. ; The result is a (VALUES NUMBER &OPTIONAL), not a ~ (VALUES FIXNUM &REST T). ; etc.
; (SETF (CFFI:MEM-AREF IOLIB.SYSCALLS::C-PTR :UNSIGNED-CHAR ; IOLIB.SYSCALLS::INDEX) ; IOLIB.SYSCALLS::OCTET) ; --> LET* MULTIPLE-VALUE-BIND LETt is a NUMBER, not a FIXNUM. ; The result is a (VALUES NUMBER &OPTIONAL), not a (VALUES ~ FIXNUM &REST T). ; etc.
; (SETF (CFFI:MEM-AREF IOLINEL:HAIRY-DATA-VECTOR-REF ARRAY SB-INT:INDEX) ; ; note: unable to ; optimize ; due to type uncertainty: ; The first argument is a STRING, not a SIMPLE-STRING. ; ; note: unable to ; avoid runtime dispatch on array element type ; due to type uncertainty: ; The first argument is a STRING, not a SIMPLE-ARRAY.
; (LOOP :WITH IOLIB.SYSCALLS::LEN := (LENGs-unix /home/chris/.cache/common-lisp/sbcl-1.0.37-linux-x86-64/home/chris/code/~ lisp-tp/iolib-0.7.0/src/syscalls/ffi-types-unix.c ; /home/chris/.cache/common-lisp/sbcl-1.0.37-linux-x86-64/home/chris/code/~ lisp-tp /iolib-0.7.0/src/syscalls/ffi-types-unix /home/chris/.cache/common-lisp/sbcl-1.0.37-linux-x86-64/home/chris/code/ lisp-tp/iolib-0.7.0/src/syscalls/ffi-types-unix.grovel-tmp.lisp ;g (COMMON-LISP:DEFCONSTANT S-IRWXG ...) ; compiling (COMMON-LISP:DEFCONSTANT S-IRGRP ...) ; compiling (COMMON-LISP:DEFCONSTANT S-IWGRP ...) ; compiling (COMMON-LISP:DEFCONSTANT S-IXGRP ...) ; compiling (COMMON-LISP:DEFCONSTANT S-IRWXO ...) ; compiling (COMMON-LISP:DEFCONSTANT S-IROTH ...) ; compiling (COMMON-LISP:DEFCONSTANSTANT MAP-SHARED ...) ; compiling (COMMON-LISP:DEFCONSTANT MAP-PRIVATE ...) ; compiling (COMMON-LISP:DEFCONSTANT MAP-FIXED ...) ; compiling (COMMON-LISP:DEFCONSTANT MAP-FAILED ...) ; compiling (DEFCTYPE NFDS-T ...) ; compiling (COMMON-LISP:DEFCONSTANT SIZE-OF-NFDS-T ...) ; compiling (DEFCSTRUCT (POLLFD :SIZE.) ; compiling (COMMON-LISP:DEFCONSTANT RLIMIT-NICE ...) ; compiling (COMMON-LISP:DEFCONSTANT RLIMIT-RTPRIO ...) ; compiling (COMMON-LISP:DEFCONSTANT RLIMIT-SIGPENDING ...) ; compiling (DEFCSTRUCT (UTSNAME :SIZE ...) ...) ; compiling (COMMON-LISP:DEFCONSTANT SIZE-OF-UTSNAME ...) ; compil compiling (COMMON-LISP:DEFCONSTANT EUCLEAN ...) ; compiling (COMMON-LISP:DEFCONSTANT ENOTNAM ...) ; compiling (COMMON-LISP:DEFCONSTANT ENAVAIL ...) ; compiling (COMMON-LISP:DEFCONSTANT EREMOTEIO ...) ; compiling (COMMON-LISP:DEFCONSTANT ENOMEDIUM ...) ; compiling (COMMON-LISP:DEFCONSTANT EMEDIUMTYPE ...) ; compiling (COMMON-LISP:DEFCONSTANT ESTALE bcl-1.0.37-linux-x86-64/home/~ chris/code/lisp-tp/iolib-0.7.0/src/syscalls/ASDF-TMP-conditions.fasl written ; compilation finished in 0:00:00.053 ; compiling file "/home/chris/code/lisp-tp/iolib-0.7.0/src/syscalls/os-conditions-unix.lisp" (written 23 OCT 2010 01:04:29 AM):
; /home/chris/.cache/common-lisp/sbcl-1.0.37-linux-x86-64/home/chris/code/ ~lisp-tp/iolib-0.7.0/src/syscalls/ASDF-TMP-os-conditions-unix.fasl written ; compilation finished in 0:00:00.037 ; compiling file "/home/chris/code/lisp-tp/io