Closed futuro closed 10 years ago
I'll add something in the README file.
This does not seem to have been fixed yet. I checked the current Quicklisp version (iolib-20151218-git) and neither the README
nor the files in doc/
mentions libfixposix at all.
To make things worse, when trying to ql:quickload
the library, there is nothing in the error message that suggests that libfixposix may be the problem. Here's the full output from an SBCL session where I try to load iolib
:
$ sbcl
This is SBCL 1.3.1.185-bb7a213, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.
SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses. See the CREDITS and COPYING files in the
distribution for more information.
* (ql:quickload "iolib")
To load "iolib":
Load 1 ASDF system:
iolib
; Loading "iolib"
; clang++ -m64 -Wno-write-strings -I /usr/local/include/ -I/usr/home/elias/quicklisp/dists/quicklisp/software/iolib-20151218-git/src/grovel/ -o /usr/home/elias/.cache/common-lisp/sbcl-1.3.1.185-bb7a213-bsd-x64/usr/home/elias/quicklisp/dists/quicklisp/software/iolib-20151218-git/src/syscalls/ffi-types-unix /usr/home/elias/.cache/common-lisp/sbcl-1.3.1.185-bb7a213-bsd-x64/usr/home/elias/quicklisp/dists/quicklisp/software/iolib-20151218-git/src/syscalls/ffi-types-unix.c
.
debugger invoked on a UIOP/RUN-PROGRAM:SUBPROCESS-ERROR in thread #<THREAD "main thread" RUNNING {1003994AA3}>: Subprocess (:PROCESS #<SB-IMPL::PROCESS :EXITED 1> :OUTPUT-STREAM #<SB-SYS:FD-STREAM for "descriptor 7" {10042746B3}>)
with command ("clang++" "-m64" "-Wno-write-strings" "-I" "/usr/local/include/" "-I/usr/home/elias/quicklisp/dists/quicklisp/software/iolib-20151218-git/src/grovel/" "-o" "/usr/home/elias/.cache/common-lisp/sbcl-1.3.1.185-bb7a213-bsd-x64/usr/home/elias/quicklisp/dists/quicklisp/software/iolib-20151218-git/src/syscalls/ffi-types-unix" "/usr/home/elias/.cache/common-lisp/sbcl-1.3.1.185-bb7a213-bsd-x64/usr/home/elias/quicklisp/dists/quicklisp/software/iolib-20151218-git/src/syscalls/ffi-types-unix.c")
exited with error code 1
Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.
restarts (invokable by number or by possibly-abbreviated name):
0: [CONTINUE ] IGNORE-ERROR-STATUS
1: [RETRY ] Retry PROCESS-OP on #<GROVEL-FILE "iolib/syscalls" "ffi-types">.
2: [ACCEPT ] Continue, treating PROCESS-OP on #<GROVEL-FILE "iolib/syscalls" "ffi-types"> as having been successful.
3: Retry ASDF operation.
4: [CLEAR-CONFIGURATION-AND-RETRY] Retry ASDF operation after resetting the configuration.
5: [ABORT ] Give up on "iolib"
6: Exit debugger, returning to top level.
(UIOP/RUN-PROGRAM::%CHECK-RESULT 1 :COMMAND ("clang++" "-m64" "-Wno-write-strings" "-I" "/usr/local/include/" "-I/usr/home/elias/quicklisp/dists/quicklisp/software/iolib-20151218-git/src/grovel/" "-o" "/usr/home/elias/.cache/common-lisp/sbcl-1.3.1.185-bb7a213-bsd-x64/usr/home/elias/quicklisp/dists/quicklisp/software/iolib-20151218-git/src/syscalls/ffi-types-unix" "/usr/home/elias/.cache/common-lisp/sbcl-1.3.1.185-bb7a213-bsd-x64/usr/home/elias/quicklisp/dists/quicklisp/software/iolib-20151218-git/src/syscalls/ffi-types-unix.c") :PROCESS (:PROCESS #<SB-IMPL::PROCESS :EXITED 1> :OUTPUT-STREAM #<SB-SYS:FD-STREAM for "descriptor 7" {10042746B3}>) :IGNORE-ERROR-STATUS NIL)
0] ;
; compilation unit aborted
; caught 2 fatal ERROR conditions
("iolib")
Unless you know about libfixposix it's going to be a lot of work figuring out what's wrong.
I added a mention in the IOlib and Libfixposix README files. More than this I'm not sure what to do.
Would it make sense to include the libfixposix source code in the iolib distribution itself, and have it compiled if it's not already available on the host?
I would vote for @lokedhs proposal. The problem is then some other package loadable from quicklisp depends on iolib and therefore fail to compile.
This doesn't come up when you (ql:quickload :iolib), but it will fail quickloading other libraries, such as dbus, complaining about a missing lfp.h file.
Can this be stated explicitly in the iolib quickload process? Or perhaps the Readme?