[usocket-devel] CLISP problems

Erik Huelsmann ehuels at gmail.com
Wed Apr 23 19:54:10 UTC 2008


Hi Leslie,


On Mon, Apr 21, 2008 at 9:56 AM,  <leslie.polzer at gmx.net> wrote:
>
>  Hello,
>
>  CLISP 2.41 gives me the following:
>
>  ;; Loading file /home/sky/.sbcl/site/usocket-0.3.5/backend/clisp.fas ...
>  ** - Continuable Error
>  FFI::FIND-FOREIGN-FUNCTION: foreign function "gethostname" does not exist

Hrm. That's too bad.

>  Changing backend/clisp.lisp thus (in pseudo-diff format):
>
>  (FFI:DEF-CALL-OUT get-host-name-internal
>          (:name "gethostname")
>          (:arguments (name (FFI:C-PTR (FFI:C-ARRAY-MAX ffi:character
>  256))
>                            :OUT :ALLOCA)
>                      (len ffi:int))
>          #+win32 (:library "WS2_32")
>  +        #+unix (:library "libc.so.6")
>          (:language #-win32 :stdc
>                     #+win32 :stdc-stdcall)
>          (:return-type ffi:int))
>
>  helps on my system.

>  Is there some rationale behind the non-working code?

Yes: it works on my system and not having libc.so.6 means it will work
on more Unix platforms which have a C library with gethostname()
loaded by default.

>  And is there a particular reason that usocket doesn't use CFFI?

Yes: I've been unable to use implementation-provided streams with
self-created sockets. This means using CFFI would require me to fall
back to gray streams *and* I would need to emulate any
implementation-provided byte->character recoding (external format
conversion) support. I'd rather avoid that can of worms, even at the
expense of 7 different backends.

>   Thanks! :)

Welcome!

BTW: What *is* your platform (other than CLISP on a Unix variant)
exactly? I've seen this report before, but never have had any problems
with it myself. Do you also get the error if you start CLISP as 'clisp
-Kfull'?


Thanks for your report!


Bye,


Erik.



More information about the usocket-devel mailing list