#22: Introduce conditions specific to cl-irc
-------------------------+--------------------------------------------------
Reporter: ehuelsmann | Owner: ehuelsmann
Type: enhancement | Status: new
Priority: major | Milestone: pre-1.0
Component: chat | Version:
Keywords: | Has_patch: 0
-------------------------+--------------------------------------------------
Introduce conditions specific to cl-irc so llibrary-using code can
discriminate between errors. For example in handler-case/handler-bind
forms.
--
Ticket URL: <http://trac.common-lisp.net/cl-irc/ticket/22>
cl-irc <http://common-lisp.net/project/cl-irc>
cl-irc
#17: Fix RPL_ISUPPORT support where sending encoded characters
------------------------+---------------------------------------------------
Reporter: ehuelsmann | Owner: ehuelsmann
Type: defect | Status: new
Priority: major | Milestone:
Component: chat | Version:
Keywords: | Has_patch: 0
------------------------+---------------------------------------------------
The attached patch does this. At the same time it should be considered
proof-of-concept, since I don't like the resulting eventhandler code.
--
Ticket URL: <http://trac.common-lisp.net/cl-irc/ticket/17>
cl-irc <http://common-lisp.net/project/cl-irc>
cl-irc
#7: Make message parsing less memory hungry
-------------------------+--------------------------------------------------
Reporter: ehuelsmann | Owner: somebody
Type: enhancement | Status: new
Priority: minor | Milestone: unscheduled
Component: chat | Version:
Keywords: | Has_patch: 0
-------------------------+--------------------------------------------------
Andreas Fuchs has suggested to use displaced arrays instead of copy-seq
instructions to create the different message portions. This prevents a lot
of copying around of the same message content.
--
Ticket URL: <http://trac.common-lisp.net/cl-irc/ticket/7>
cl-irc <http://common-lisp.net/project/cl-irc>
cl-irc
#21: Implement a connection throttling API to prevent being flooded
-------------------------+--------------------------------------------------
Reporter: ehuelsmann | Owner: ehuelsmann
Type: enhancement | Status: new
Priority: minor | Milestone:
Component: chat | Version:
Keywords: needsdesign | Has_patch: 0
-------------------------+--------------------------------------------------
Well, the summary says it all.
There are 2 things however: alexis-bot (http://hix.nu/svn-public/alexis/)
has a throttling routine. Probably not general enough to be ported back to
cl-irc, but the general algorithm probably can.
--
Ticket URL: <http://trac.common-lisp.net/cl-irc/ticket/21>
cl-irc <http://common-lisp.net/project/cl-irc>
cl-irc
#6: [patch] keep server port and password in connection object
--------------------+-------------------------------------------------------
Reporter: afuchs | Owner: somebody
Type: defect | Status: new
Priority: major | Milestone:
Component: chat | Version:
Keywords: | Has_patch: 1
--------------------+-------------------------------------------------------
Beirc needs the port and password used to establish a connection in order
to reliably reconnect to the same server (ssh port forwards for example
can cause localhost to have many irc ports open). So, the attached patch
adds them as slots to the connection object.
The patch requires the "external format guessing" patch in order to apply
correctly, but the code will run independently. If needed, I'll create
another patch that applies to vanilla cl-irc.
--
Ticket URL: <http://trac.common-lisp.net/cl-irc/ticket/6>
cl-irc <http://common-lisp.net/project/cl-irc>
cl-irc
#2: external format guessing for incoming messages
-------------------------+--------------------------------------------------
Reporter: afuchs | Owner: somebody
Type: enhancement | Status: new
Priority: major | Milestone:
Component: chat | Version:
Keywords: | Has_patch: 1
-------------------------+--------------------------------------------------
(reposted from mail to cl-irc-devel)
Hi,
the following patch is a proof-of-concept implementation of external
format guessing for incoming messages (and customizable external
formats for outgoing messages, defaulting conservatively to latin-1).
With that patch, cl-irc now opens a binary stream to the server, and
opens flexi-streams on top of that. The outgoing part is pretty
straightforward; the incoming part not so much (:
Reading works like this:
* We read a line of latin-1 chars
* We try to decode their code-chars (latin1 is a 1:1 translation to
code-chars, and where it isn't, I hope flexistreams takes care of
that (-:) using the list of external-formats in
*default-incoming-external-formats*.
* When we find a decoding that doesn't throw a error, we build a
message from that.
Positive side effect: cl-irc should now work on windows because the
external format allows specification of eol convention. Negative side
effect: I didn't get parsing to work without #\Return, so this patch
appends a #\Return character to the raw message.
Which brings me to the todo list:
* DCC connections probably don't work. I don't care about dcc, so I
won't fix them (:
* The parser should work without #\Return.
* reading latin1 and decoding from the char codes is ... ugly. But
it's probably less ugly than doing our own buffering. Maybe
somebody wants to investigate that. (:
--
Ticket URL: <http://trac.common-lisp.net/cl-irc/ticket/2>
cl-irc <http://common-lisp.net/project/cl-irc>
cl-irc
#20: Switch from trivial-sockets to usocket
------------------------+---------------------------------------------------
Reporter: ehuelsmann | Owner: ehuelsmann
Type: task | Status: new
Priority: major | Milestone: pre-1.0
Component: all | Version:
Keywords: | Has_patch: 0
------------------------+---------------------------------------------------
Currently, the library depends on trivial-sockets, but to make DCC work,
we need to switch to usocket. That library has functions to retrieve more
information on either the remote and local tcp connection sides.
This switch really becomes worthwhile when usocket supports tcp-connection
listening sockets, to support the active initiation of DCC connections.
(In the current version of usocket, both accepting DCC connections and the
initiation of passive connections could be supported; just not active
initiation.)
--
Ticket URL: <http://trac.common-lisp.net/cl-irc/ticket/20>
cl-irc <http://common-lisp.net/project/cl-irc>
cl-irc
#19: Remove deprecated 'trailing-argument' function
------------------------+---------------------------------------------------
Reporter: ehuelsmann | Owner: ehuelsmann
Type: task | Status: new
Priority: minor | Milestone: pre-1.0
Component: chat | Version:
Keywords: | Has_patch: 0
------------------------+---------------------------------------------------
Well, just do so (after 2006-08-01, iff there has been a public release).
--
Ticket URL: <http://trac.common-lisp.net/cl-irc/ticket/19>
cl-irc <http://common-lisp.net/project/cl-irc>
cl-irc
#13: Add SEEN and SPOKE support
-------------------------+--------------------------------------------------
Reporter: ehuelsmann | Owner: somebody
Type: enhancement | Status: new
Priority: major | Milestone: pre-1.0
Component: chat | Version:
Keywords: | Has_patch: 0
-------------------------+--------------------------------------------------
Or, more generally speaking, add functionality to track any requested
message type, possibly on a per-user basis.
The functionality should also support persistence.
--
Ticket URL: <http://trac.common-lisp.net/cl-irc/ticket/13>
cl-irc <http://common-lisp.net/project/cl-irc>
cl-irc
#18: Remove deprecated use of trailing-argument from examples
------------------------+---------------------------------------------------
Reporter: ehuelsmann | Owner: ehuelsmann
Type: defect | Status: new
Priority: minor | Milestone: pre-1.0
Component: examples | Version:
Keywords: | Has_patch: 1
------------------------+---------------------------------------------------
The attached patch fixes the bots in examples/ to do just that.
--
Ticket URL: <http://trac.common-lisp.net/cl-irc/ticket/18>
cl-irc <http://common-lisp.net/project/cl-irc>
cl-irc