sionescu / iolib

Common Lisp I/O library
http://common-lisp.net/project/iolib/
MIT License
141 stars 31 forks source link

Indicate that iolib requires compiling libfixposix #10

Closed futuro closed 10 years ago

futuro commented 10 years ago

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?

sionescu commented 10 years ago

I'll add something in the README file.

lokedhs commented 8 years ago

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.

sionescu commented 8 years ago

I added a mention in the IOlib and Libfixposix README files. More than this I'm not sure what to do.

lokedhs commented 8 years ago

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?

fourier commented 5 years ago

I would vote for @lokedhs proposal. The problem is then some other package loadable from quicklisp depends on iolib and therefore fail to compile.