From ehuelsmann at common-lisp.net Thu Jan 4 22:48:22 2007 From: ehuelsmann at common-lisp.net (ehuelsmann at common-lisp.net) Date: Thu, 4 Jan 2007 17:48:22 -0500 (EST) Subject: [cl-irc-cvs] r165 - trunk Message-ID: <20070104224822.C9E8538010@common-lisp.net> Author: ehuelsmann Date: Thu Jan 4 17:48:22 2007 New Revision: 165 Modified: trunk/cl-irc.asd trunk/command.lisp trunk/protocol.lisp trunk/utility.lisp Log: Change trivial-sockets dependency to usocket as discussed many moons ago. This commit adds support for all usocket supported lisps, except that they're not all supported by (cl-irc::start-process ...). Modified: trunk/cl-irc.asd ============================================================================== --- trunk/cl-irc.asd (original) +++ trunk/cl-irc.asd Thu Jan 4 17:48:22 2007 @@ -16,7 +16,7 @@ :version "0.5.2" :licence "MIT" :description "Common Lisp interface to the IRC protocol" - :depends-on (:split-sequence :trivial-sockets :flexi-streams) + :depends-on (:split-sequence :usocket :flexi-streams) :properties ((#:author-email . "cl-irc-devel at common-lisp.net") (#:date . "$Date$") ((#:albert #:output-dir) . "doc/api-doc/") Modified: trunk/command.lisp ============================================================================== --- trunk/command.lisp (original) +++ trunk/command.lisp Thu Jan 4 17:48:22 2007 @@ -249,8 +249,11 @@ (connection-type 'connection) (logging-stream t)) "Connect to server and return a connection object." - (let* ((stream (socket-connect server port)) + (let* ((socket (usocket:socket-connect server port + :element-type 'flexi-streams:octet)) + (stream (usocket:socket-stream socket)) (connection (make-connection :connection-type connection-type + :socket socket :network-stream stream :client-stream logging-stream :server-name server)) Modified: trunk/protocol.lisp ============================================================================== --- trunk/protocol.lisp (original) +++ trunk/protocol.lisp Thu Jan 4 17:48:22 2007 @@ -122,6 +122,9 @@ :initarg :server-port :accessor server-port :initform *default-irc-server-port*) + (socket + :initarg :socket + :documentation "Slot to store socket (for internal use only).") (network-stream :initarg :network-stream :accessor network-stream @@ -199,6 +202,7 @@ (password nil) (server-name "") (server-port nil) + (socket nil) (network-stream nil) (outgoing-external-format *default-outgoing-external-format*) (client-stream t) @@ -212,6 +216,7 @@ :password password :server-name server-name :server-port server-port + :socket socket :network-stream network-stream :output-stream output-stream :client-stream client-stream))) Modified: trunk/utility.lisp ============================================================================== --- trunk/utility.lisp (original) +++ trunk/utility.lisp Thu Jan 4 17:48:22 2007 @@ -101,10 +101,6 @@ (fourth (ldb (byte 8 0) integer))) (vector first second third fourth))) -(defun socket-connect (server port) - "Create a socket connected to `server':`port' and return stream for it." - (trivial-sockets:open-stream server port :element-type '(unsigned-byte 8))) - (defun external-format-fixup (format) (let ((new-format (copy-list format))) (setf (getf (cdr new-format) :eol-style) :crlf) From ehuelsmann at common-lisp.net Thu Jan 4 23:20:51 2007 From: ehuelsmann at common-lisp.net (ehuelsmann at common-lisp.net) Date: Thu, 4 Jan 2007 18:20:51 -0500 (EST) Subject: [cl-irc-cvs] r166 - trunk Message-ID: <20070104232051.3DB87581BB@common-lisp.net> Author: ehuelsmann Date: Thu Jan 4 18:20:49 2007 New Revision: 166 Modified: trunk/CREDITS Log: Credit Andreas Fuchs for the many patches he sent in. Modified: trunk/CREDITS ============================================================================== --- trunk/CREDITS (original) +++ trunk/CREDITS Thu Jan 4 18:20:49 2007 @@ -3,3 +3,4 @@ Jochen Schmidt Kevin Rosenberg Erik Huelsmann +Andreas Fuchs From ehuelsmann at common-lisp.net Fri Jan 5 09:03:52 2007 From: ehuelsmann at common-lisp.net (ehuelsmann at common-lisp.net) Date: Fri, 5 Jan 2007 04:03:52 -0500 (EST) Subject: [cl-irc-cvs] r167 - trunk Message-ID: <20070105090352.47B95581BB@common-lisp.net> Author: ehuelsmann Date: Fri Jan 5 04:03:51 2007 New Revision: 167 Modified: trunk/protocol.lisp Log: Remove forgotten socket-connect call. Modified: trunk/protocol.lisp ============================================================================== --- trunk/protocol.lisp (original) +++ trunk/protocol.lisp Fri Jan 5 04:03:51 2007 @@ -456,7 +456,8 @@ (output-stream t)) (make-instance 'dcc-connection :user user - :network-stream (socket-connect remote-address remote-port) + :network-stream (usocket:socket-connect remote-address + remote-port) :output-stream output-stream)) (defgeneric dcc-close (connection)) From ehuelsmann at common-lisp.net Fri Jan 5 11:25:42 2007 From: ehuelsmann at common-lisp.net (ehuelsmann at common-lisp.net) Date: Fri, 5 Jan 2007 06:25:42 -0500 (EST) Subject: [cl-irc-cvs] r168 - trunk Message-ID: <20070105112542.3C6D05539F@common-lisp.net> Author: ehuelsmann Date: Fri Jan 5 06:25:40 2007 New Revision: 168 Modified: trunk/event.lisp trunk/protocol.lisp Log: Fix several compile-warnings in SBCL. Modified: trunk/event.lisp ============================================================================== --- trunk/event.lisp (original) +++ trunk/event.lisp Fri Jan 5 06:25:40 2007 @@ -155,7 +155,7 @@ (destructuring-bind (nick chan-visibility channel names) (arguments message) - (declare (ignore nick chan-visibility)) + (declare (ignore nick)) (let ((channel (find-channel connection channel))) (setf (visibility channel) (or (car (assoc chan-visibility Modified: trunk/protocol.lisp ============================================================================== --- trunk/protocol.lisp (original) +++ trunk/protocol.lisp Fri Jan 5 06:25:40 2007 @@ -972,6 +972,8 @@ (defclass standard-ctcp-message (ctcp-mixin irc-message) ()) (defgeneric find-ctcp-message-class (type)) +(defgeneric ctcp-request-p (message)) +(defgeneric ctcp-reply-p (message)) (eval-when (:compile-toplevel :load-toplevel :execute) (defun define-ctcp-message (ctcp-command) From ehuelsmann at common-lisp.net Sat Jan 6 11:08:56 2007 From: ehuelsmann at common-lisp.net (ehuelsmann at common-lisp.net) Date: Sat, 6 Jan 2007 06:08:56 -0500 (EST) Subject: [cl-irc-cvs] r169 - trunk Message-ID: <20070106110856.A4D6D2E1BE@common-lisp.net> Author: ehuelsmann Date: Sat Jan 6 06:08:56 2007 New Revision: 169 Modified: trunk/command.lisp Log: Allow reason specification when parting channels/a channel. Modified: trunk/command.lisp ============================================================================== --- trunk/command.lisp (original) +++ trunk/command.lisp Sat Jan 6 06:08:56 2007 @@ -21,8 +21,8 @@ (defgeneric squit (connection server comment)) (defgeneric join (connection channel &key password)) (defgeneric multi-join (connection channels)) -(defgeneric part (connection channel)) -(defgeneric part-all (connection)) +(defgeneric part (connection channel &optional reason)) +(defgeneric part-all (connection &optional reason)) (defgeneric topic- (connection channel topic)) (defgeneric names (connection channel &optional target)) (defgeneric list- (connection &optional channel target)) @@ -159,16 +159,17 @@ (dolist (channel channels) (join connection channel))) -(defmethod part ((connection connection) (channel string)) - (send-irc-message connection :part channel)) +(defmethod part ((connection connection) (channel string) &optional reason) + (apply #'send-irc-message + connection :part channel (when reason (list reason)))) -(defmethod part ((connection connection) (channel channel)) - (part connection (name channel))) +(defmethod part ((connection connection) (channel channel) &optional reason) + (part connection (name channel) reason)) ;; utility function not part of the RFC -(defmethod part-all ((connection connection)) +(defmethod part-all ((connection connection) &optional reason) (dolist (channel (channels connection)) - (part connection (name channel)))) + (part connection (name channel) reason))) (defmethod topic- ((connection connection) (channel string) (topic string)) (send-irc-message connection :topic channel topic)) From ehuelsmann at common-lisp.net Sat Jan 6 13:31:06 2007 From: ehuelsmann at common-lisp.net (ehuelsmann at common-lisp.net) Date: Sat, 6 Jan 2007 08:31:06 -0500 (EST) Subject: [cl-irc-cvs] r170 - trunk Message-ID: <20070106133106.499CEF@common-lisp.net> Author: ehuelsmann Date: Sat Jan 6 08:31:05 2007 New Revision: 170 Modified: trunk/protocol.lisp Log: Refactor START-BACKGROUND-MESSAGE-HANDLER. Deprecate threading functions, because - It makes cl-irc less implementation dependent. - Users might want to use portability layers such as CLIM-SYS or BORDEAUX-THREADS - Our implementation doesn't implement error handling - Our implementation will never correctly handle errors from user-code (ie errors raised in event-handlers) Modified: trunk/protocol.lisp ============================================================================== --- trunk/protocol.lisp (original) +++ trunk/protocol.lisp Sat Jan 6 08:31:05 2007 @@ -185,7 +185,6 @@ (defgeneric client-raw-log (connection message)) (defgeneric connectedp (connection)) (defgeneric read-message (connection)) -(defgeneric start-process (function name)) (defgeneric read-irc-message (connection)) (defgeneric send-irc-message (connection command &rest arguments)) (defgeneric get-hooks (connection class)) @@ -276,7 +275,9 @@ (defvar *process-count* 0) -(defmethod start-process (function name) +(defun start-process (function name) + "Internal helper for the DEPRECATED function +START-BACKGROUND-MESSAGE-HANDLER and therefore DEPRECATED itself." (declare (ignorable name)) #+allegro (mp:process-run-function name function) #+cmu (mp:make-process function :name name) @@ -287,30 +288,41 @@ (defun start-background-message-handler (connection) "Read messages from the `connection', parse them and dispatch -irc-message-event on them. Returns background process ID if available." - (flet (#-(and sbcl (not sb-thread)) - (do-loop () (read-message-loop connection))) +irc-message-event on them. Returns background process ID if available. + +This function has been DEPRECATED. The function body is meant as an +example for library users on handling connection input. Users +are strongly encouraged to implement error handling (which is lacking +from the prototype given here." + (warn "START-BACKGROUND-MESSAGE-HANDLER has been deprecated and +is up for removal in a next release.") + + #+(and sbcl (not sb-thread)) + (flet ((select-handler (fd) + (declare (ignore fd)) + (if (listen (network-stream connection)) + (read-message connection) + ;; select() returns with no + ;; available data if the stream + ;; has been closed on the other + ;; end (EPIPE) + (sb-sys:invalidate-descriptor + (sb-sys:fd-stream-fd + (network-stream connection)))))) + (sb-sys:add-fd-handler (sb-sys:fd-stream-fd + (network-stream connection)) + :input #'select-handler)) + + #-(and sbcl (not sb-thread)) + (flet ((do-loop () (read-message-loop connection))) (let ((name (format nil "irc-hander-~D" (incf *process-count*)))) - (declare (ignorable name)) - #+(or allegro cmu lispworks sb-thread openmcl armedbear) - (start-process #'do-loop name) - #+(and sbcl (not sb-thread)) - (sb-sys:add-fd-handler (sb-sys:fd-stream-fd - (network-stream connection)) - :input (lambda (fd) - (declare (ignore fd)) - (if (listen (network-stream connection)) - (read-message connection) - ;; select() returns with no - ;; available data if the stream - ;; has been closed on the other - ;; end (EPIPE) - (sb-sys:invalidate-descriptor - (sb-sys:fd-stream-fd - (network-stream connection))))))))) + (start-process #'do-loop name)))) (defun stop-background-message-handler (process) - "Stops a background message handler process returned by the start function." + "Stops a background message handler process returned by the start function. + +Just as its cousin START-BACKGROUND-MESSAGE-HANDLER, +this function is DEPRECATED." (declare (ignorable process)) #+cmu (mp:destroy-process process) #+allegro (mp:process-kill process) From ehuelsmann at common-lisp.net Sat Jan 6 13:38:57 2007 From: ehuelsmann at common-lisp.net (ehuelsmann at common-lisp.net) Date: Sat, 6 Jan 2007 08:38:57 -0500 (EST) Subject: [cl-irc-cvs] r171 - branches/eenge Message-ID: <20070106133857.6CB79F@common-lisp.net> Author: ehuelsmann Date: Sat Jan 6 08:38:56 2007 New Revision: 171 Removed: branches/eenge/ Log: Remove eenge branch manufactured by cvs2svn (Initial import branch). From ehuelsmann at common-lisp.net Sat Jan 6 13:50:15 2007 From: ehuelsmann at common-lisp.net (ehuelsmann at common-lisp.net) Date: Sat, 6 Jan 2007 08:50:15 -0500 (EST) Subject: [cl-irc-cvs] r172 - trunk Message-ID: <20070106135015.B333D3012@common-lisp.net> Author: ehuelsmann Date: Sat Jan 6 08:50:15 2007 New Revision: 172 Modified: trunk/cl-irc.asd Log: Long overdue version number update. Modified: trunk/cl-irc.asd ============================================================================== --- trunk/cl-irc.asd (original) +++ trunk/cl-irc.asd Sat Jan 6 08:50:15 2007 @@ -13,7 +13,7 @@ (defsystem cl-irc :name "cl-irc" :author "Erik Enge & Contributors" - :version "0.5.2" + :version "0.8-dev" :licence "MIT" :description "Common Lisp interface to the IRC protocol" :depends-on (:split-sequence :usocket :flexi-streams) From ehuelsmann at common-lisp.net Sat Jan 6 16:50:07 2007 From: ehuelsmann at common-lisp.net (ehuelsmann at common-lisp.net) Date: Sat, 6 Jan 2007 11:50:07 -0500 (EST) Subject: [cl-irc-cvs] r173 - public_html/releases Message-ID: <20070106165007.735A93E056@common-lisp.net> Author: ehuelsmann Date: Sat Jan 6 11:50:03 2007 New Revision: 173 Added: public_html/releases/ public_html/releases/cl-irc-0.6.tar.gz (contents, props changed) public_html/releases/cl-irc-0.6.tar.gz.asc public_html/releases/cl-irc-0.7.tar.gz (contents, props changed) public_html/releases/cl-irc-0.7.tar.gz.asc public_html/releases/cl-irc_latest.tar.gz (contents, props changed) public_html/releases/cl-irc_latest.tar.gz.asc (contents, props changed) Log: Create a directory for releases and populate it with current ones. Added: public_html/releases/cl-irc-0.6.tar.gz ============================================================================== Binary file. No diff available. Added: public_html/releases/cl-irc-0.6.tar.gz.asc ============================================================================== --- (empty file) +++ public_html/releases/cl-irc-0.6.tar.gz.asc Sat Jan 6 11:50:03 2007 @@ -0,0 +1,7 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.2.4 (GNU/Linux) + +iD8DBQBCRJRpi5O0Epaz9TkRAobKAJ483k76l9tg50NHOQ1MeCEU+l5FsgCfavXw +syorbMdzqKBvMlvmkbRq2E0= +=6nx4 +-----END PGP SIGNATURE----- Added: public_html/releases/cl-irc-0.7.tar.gz ============================================================================== Binary file. No diff available. Added: public_html/releases/cl-irc-0.7.tar.gz.asc ============================================================================== --- (empty file) +++ public_html/releases/cl-irc-0.7.tar.gz.asc Sat Jan 6 11:50:03 2007 @@ -0,0 +1,7 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.2.4 (GNU/Linux) + +iD8DBQBCRJRXi5O0Epaz9TkRAmbQAJ0REfCpstUmhfS3XIuPKdet10Y/ZACfd6fj +9Oh0Fq80gsUuQqdOvFSNEas= +=wtEs +-----END PGP SIGNATURE----- Added: public_html/releases/cl-irc_latest.tar.gz ============================================================================== --- (empty file) +++ public_html/releases/cl-irc_latest.tar.gz Sat Jan 6 11:50:03 2007 @@ -0,0 +1 @@ +link cl-irc-0.7.tar.gz \ No newline at end of file Added: public_html/releases/cl-irc_latest.tar.gz.asc ============================================================================== --- (empty file) +++ public_html/releases/cl-irc_latest.tar.gz.asc Sat Jan 6 11:50:03 2007 @@ -0,0 +1 @@ +link cl-irc-0.7.tar.gz.asc \ No newline at end of file From ehuelsmann at common-lisp.net Sat Jan 6 22:03:03 2007 From: ehuelsmann at common-lisp.net (ehuelsmann at common-lisp.net) Date: Sat, 6 Jan 2007 17:03:03 -0500 (EST) Subject: [cl-irc-cvs] r174 - trunk Message-ID: <20070106220303.5C615111CE@common-lisp.net> Author: ehuelsmann Date: Sat Jan 6 17:03:03 2007 New Revision: 174 Modified: trunk/ChangeLog Log: Update ChangeLog in preparation for 0.8 release. Modified: trunk/ChangeLog ============================================================================== --- trunk/ChangeLog (original) +++ trunk/ChangeLog Sat Jan 6 17:03:03 2007 @@ -1,3 +1,22 @@ + +Changes in 0.8 since 0.7: + + * The library tracks user and channel modes automatically + * The concept of 'trailing-argument' removed (non-RFC compliance) + * Socket support now through 'usocket' library + * Threading support deprecated; use 'bordeaux-threads' or 'clim-sys' instead + * Support for password protected network logon + * Joining password protected channels now supported + * Specifying a reason phrase when parting channels now supported + * 'irc-message-event' now specializable on the default connection class + * RPL_ISUPPORT fixes + * Message parsing closer to specs in RFC + * Support for specified outgoing external-format + * Support for specified incoming external-format (with fallback) + * Stop leaking 'invalidate-me' conditions (by removing them completely) + * DCC support enhancements + * More generic functions to silence compiler warnings + 2005-03-21 Erik Huelsmann Add MODE tracking support. From ehuelsmann at common-lisp.net Sat Jan 6 22:06:28 2007 From: ehuelsmann at common-lisp.net (ehuelsmann at common-lisp.net) Date: Sat, 6 Jan 2007 17:06:28 -0500 (EST) Subject: [cl-irc-cvs] r175 - tags/0.8.0 Message-ID: <20070106220628.C850617030@common-lisp.net> Author: ehuelsmann Date: Sat Jan 6 17:06:27 2007 New Revision: 175 Added: tags/0.8.0/ - copied from r174, trunk/ Modified: tags/0.8.0/cl-irc.asd tags/0.8.0/variable.lisp Log: Create tag for 0.8.0 release. Modified: tags/0.8.0/cl-irc.asd ============================================================================== --- trunk/cl-irc.asd (original) +++ tags/0.8.0/cl-irc.asd Sat Jan 6 17:06:27 2007 @@ -13,7 +13,7 @@ (defsystem cl-irc :name "cl-irc" :author "Erik Enge & Contributors" - :version "0.8-dev" + :version "0.8.0" :licence "MIT" :description "Common Lisp interface to the IRC protocol" :depends-on (:split-sequence :usocket :flexi-streams) Modified: tags/0.8.0/variable.lisp ============================================================================== --- trunk/variable.lisp (original) +++ tags/0.8.0/variable.lisp Sat Jan 6 17:06:27 2007 @@ -10,7 +10,7 @@ (defconstant +soh+ #.(code-char 1)) -(defparameter *version* "0.8.0-dev") +(defparameter *version* "0.8.0") (defparameter *ctcp-version* (format nil "CL IRC library, cl-irc:~A:~A ~A" *version* (machine-type) (machine-version))) From ehuelsmann at common-lisp.net Sat Jan 6 22:15:53 2007 From: ehuelsmann at common-lisp.net (ehuelsmann at common-lisp.net) Date: Sat, 6 Jan 2007 17:15:53 -0500 (EST) Subject: [cl-irc-cvs] r176 - in public_html: . releases Message-ID: <20070106221553.50405111CE@common-lisp.net> Author: ehuelsmann Date: Sat Jan 6 17:15:40 2007 New Revision: 176 Added: public_html/releases/cl-irc-0.8.0.tar.gz (contents, props changed) public_html/releases/cl-irc-0.8.0.tar.gz.asc Modified: public_html/index.html public_html/releases/cl-irc_latest.tar.gz public_html/releases/cl-irc_latest.tar.gz.asc Log: Publish 0.8.0 release and upload distribution tarballs. Modified: public_html/index.html ============================================================================== --- public_html/index.html (original) +++ public_html/index.html Sat Jan 6 17:15:40 2007 @@ -5,7 +5,7 @@
-

cl-irc 0.7.0

+

cl-irc 0.8.0

@@ -28,6 +28,7 @@

News

    +
  • Version 0.8.0 released (user and channel mode tracking, characterset support on the irc network)
  • Version 0.7.0 released (RPL_ISUPPORT, many small tweaks and fixes)
  • Version 0.6.0 released (interim release while common-lisp.net was down)
  • Version 0.5.0 released (package rename and minor changes)
  • Added: public_html/releases/cl-irc-0.8.0.tar.gz ============================================================================== Binary file. No diff available. Added: public_html/releases/cl-irc-0.8.0.tar.gz.asc ============================================================================== --- (empty file) +++ public_html/releases/cl-irc-0.8.0.tar.gz.asc Sat Jan 6 17:15:40 2007 @@ -0,0 +1,7 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.1 (GNU/Linux) + +iD8DBQBFoB5ti5O0Epaz9TkRAp1sAJ9B+kAIlgaxxFG+GRQwdC6ud+5FlgCbBkei +ua+WCEU3XY6AGpji/7lQ34s= +=oaQF +-----END PGP SIGNATURE----- Modified: public_html/releases/cl-irc_latest.tar.gz ============================================================================== --- public_html/releases/cl-irc_latest.tar.gz (original) +++ public_html/releases/cl-irc_latest.tar.gz Sat Jan 6 17:15:40 2007 @@ -1 +1 @@ -link cl-irc-0.7.tar.gz \ No newline at end of file +link cl-irc-0.8.0.tar.gz \ No newline at end of file Modified: public_html/releases/cl-irc_latest.tar.gz.asc ============================================================================== --- public_html/releases/cl-irc_latest.tar.gz.asc (original) +++ public_html/releases/cl-irc_latest.tar.gz.asc Sat Jan 6 17:15:40 2007 @@ -1 +1 @@ -link cl-irc-0.7.tar.gz.asc \ No newline at end of file +link cl-irc-0.8.0.tar.gz.asc \ No newline at end of file From ehuelsmann at common-lisp.net Sat Jan 6 22:24:12 2007 From: ehuelsmann at common-lisp.net (ehuelsmann at common-lisp.net) Date: Sat, 6 Jan 2007 17:24:12 -0500 (EST) Subject: [cl-irc-cvs] r177 - public_html Message-ID: <20070106222412.F164F1C0B5@common-lisp.net> Author: ehuelsmann Date: Sat Jan 6 17:24:10 2007 New Revision: 177 Added: public_html/cl-irc_latest.tar.gz (contents, props changed) public_html/cl-irc_latest.tar.gz.asc (contents, props changed) Log: Add all of the site into version control to be able to control the content of public_html/ from a working copy. Added: public_html/cl-irc_latest.tar.gz ============================================================================== --- (empty file) +++ public_html/cl-irc_latest.tar.gz Sat Jan 6 17:24:10 2007 @@ -0,0 +1 @@ +link releases/cl-irc_latest.tar.gz \ No newline at end of file Added: public_html/cl-irc_latest.tar.gz.asc ============================================================================== --- (empty file) +++ public_html/cl-irc_latest.tar.gz.asc Sat Jan 6 17:24:10 2007 @@ -0,0 +1 @@ +link releases/cl-irc_latest.tar.gz.asc \ No newline at end of file