Hi Douglas
Yes, the CMUCL port is already done. Though SCL is derived from CMUCL, the sockets API between them is a little different, some points I can list below (so far):
1) CMUCL already support basic UDP networking, it has three necessary UDP-related functions:
EXT:INET-SENDTO, EXT:INET-RECVFROM, EXT:INET-SHUTDOWN, just direct mapping of UNIX sendto(), recvfrom(), and shutdown()
SCL manual doesn't say about these functions, by actual running SCL, I think they're not exist (and should be added).
SCL already have EXT:CREATE-INET-SOCKET function, I think it's useless for TCP users because they usually only care a TCP connection as a stream. But for UDP networking, it's essential.
I should mention that: even SCL doesn't make any change, support UDP in SCL should be possible: we can always export these unix function through FFI (more code but should work), just like what I do for LispWorks (completely no UDP support in LW, but I wrote one from scratch).
2) The EXT:CONNECT-TO-INET-SOCKET function would be better if add two new keywords: LOCAL-HOST and LOCAL-PORT, this is not for UDP but TCP: sometimes user want to bind to specified local address/port when connect to remote address/port. Almost all other CL platform's sockets API support this. See following discuss on usocket mailing list:
http://thread.gmane.org/gmane.lisp.usocket.devel/40
Days later, CMUCL author (Raymond Toy) added all I want in CMUCL 2008-08 snapshot, see this link (cvs diff)
http://common-lisp.net/cgi-bin/viewcvs.cgi/src/code/internet.lisp?root=cmucl...
I hope SCL could make a similar code change like above (if possible).
Regards,
Chun Tian (binghe)
Hello Chun,
I would be happy to write the SCL port which would be easy if the CMUCL port was already done?
Regards Douglas Crosher
Chun Tian (binghe) wrote:
Hi, Douglas
Thanks very much! I'll investigate the SCL sockets API and give a report days later, and tell you what to be added into SCL to support the new USOCKET package with UDP.
Regards,