From: Hannu Koivisto
Subject: Socket streams and CMUCL
Date: 
Message-ID: <t2wempnouyo.fsf@lehtori.cc.tut.fi>
Greetings,

I started to write a small network client program and I'd like
it work with at least CMUCL and CLISP. I haven't seen any
library that would act as a layer on top of each CL
implementation's different socket/network interface, so I need
to write such myself. Now, CLISP's implementation notes
describes a socket stream interface that pretty much does what
my layer should also do, so mapping is easy. However, I'm a bit
confused about CMUCL.

Its User's Manual tells me that all Unix system calls are
available in the UNIX package and describes a pattern how C
functions are mapped to CL functions, so using them should be
easy enough. There is also system:make-fd-stream call that I
could probably use to create a stream out of a socket created
using the calls in UNIX package. "Interprocess Communication
under LISP" chapter also describes "wire" facility, of which I'm
not sure whether it helps me at all. So, I thought to use UNIX
package's functions and system:make-fd-stream until I happened
to browse CMUCL's source package and accidentally saw file
"internet.lisp" which seems to be a higher level wrapper on top
of UNIX package's socket functions. This isn't documented
anywhere (at least I couldn't find such documentation), so I'm a
bit uncertain whether it should be used instead of Unix system
calls or not.

I would appreciate if someone could point me to proper
documentation or give some tips about where I should start from
to write my own network stream package with CMUCL.

TIA,
//Hannu