From: Wolfgang J. <wje...@us...> - 2004-03-09 04:40:14
|
Update of /cvsroot/maxima/maxima/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8604 Modified Files: server.lisp Log Message: (open-socket): Add SBCL support from CLOCC for client side connection. (getpid,xchdir): Define for SBCL. This REQUIREs some SBCL modules at compile and load time. A correctly installed reasonably recent SBCL should handle this automatically. Index: server.lisp =================================================================== RCS file: /cvsroot/maxima/maxima/src/server.lisp,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- server.lisp 14 Feb 2004 23:22:21 -0000 1.2 +++ server.lisp 9 Mar 2004 04:15:25 -0000 1.3 @@ -3,6 +3,12 @@ (in-package "MAXIMA") +#+sbcl +(eval-when (:compile-toplevel :load-toplevel :execute) + (require 'asdf) ;not needed here for a recent SBCL + (require 'sb-posix) + (require 'sb-bsd-sockets)) + (defun setup-server (port &optional (host "localhost")) (let* ((sock (open-socket host port))) (setq me sock) @@ -33,10 +39,18 @@ #+cmu (sys:make-fd-stream (ext:connect-to-inet-socket host port) :input t :output t :element-type (if bin '(unsigned-byte 8) 'character)) + #+sbcl (let ((socket (make-instance 'sb-bsd-sockets:inet-socket + :type :stream :protocol :tcp))) + (sb-bsd-sockets:socket-connect + socket (sb-bsd-sockets:host-ent-address + (sb-bsd-sockets:get-host-by-name host)) port) + (sb-bsd-sockets:socket-make-stream + socket :input t :output t :buffering (if bin :none :line) + :element-type (if bin '(unsigned-byte 8) 'character))) #+gcl (si::socket port :host host) #+lispworks (comm:open-tcp-stream host port :direction :io :element-type (if bin 'unsigned-byte 'base-char)) - #-(or allegro clisp cmu gcl lispworks) + #-(or allegro clisp cmu sbcl gcl lispworks) (error 'not-implemented :proc (list 'open-socket host port bin)))) @@ -57,11 +71,15 @@ #+cmu (defun getpid () (unix:unix-getpid)) -#+(or gcl clisp cmu) +#+sbcl +(defun getpid () (sb-unix:unix-getpid)) + +#+(or gcl clisp cmu sbcl) (defun xchdir (w) #+clisp (cd w) #+gcl (si::chdir w) #+cmu (unix::unix-chdir w) + #+sbcl (sb-posix:chdir w) ) |