|
From: Lawrence M. <we...@gm...> - 2005-01-06 16:17:18
|
Michael Olson wrote:
> I'm planning on putting together a release of erc on Friday the 6th.
> If there are any major changes that still need to be completed, please
> let me know.
> Do we have a policy on what copyrights to list in `debian/copyright'?
> If not, I guess I'll add everyone who is listed in `AUTHORS'.
Hi there, here's a possible NEWS file, can people look at it and
add comments, corrections, additions?
* Changes since ERC 4.0
** Channel members are now stored as a hash-table.
`erc-server-users' and `erc-channel-users' are now hash-tables, rather
than alists. This significantly increases performance, especially in
large channels. Each channel member is stored as an `erc-server-user'
struct, with additional information about the channels they are on
stored in an `erc-channel-user' struct. Code using old alist-style
channel members needs to be updated to work with hash-tables.
This new code also removes the need for erc-members.el, which has been
removed.
** The way ERC deals with input from the server has changed.
All server response code is now in a new file, erc-backend.el. There
should be no real user visible changes. There are, however, a few
major changes for implementors, and module writers:
o The PARSED response that all handlers get called with is
no longer a vector, but an `erc-response' struct.
This means LESS MAGIC NUMBERS in the ERC source code, but a few
changes in how you get at parsed responses.
The sender is accessed via `erc-response.sender'.
The command is accessed via `erc-response.command'.
The arguments to the command (everything after the command and
before the colon) are accessed via `erc-response.command-args'.
This is a /list/ of arguments in the order they appear in the
unparsed response.
The contents of the response is accessed via
`erc-response.contents'.
Should, for some reason, you want to do something with the
/unparsed/ response, you can get it via `erc-response.unparsed'.
o The `erc-server-hook-list' mechanism is gone.
All server response handlers should be defined with
`define-erc-response-handler'. This defines functions and
corresponding hook variables.
The mapping of server commands to hook variables is no longer
done via `erc-event-to-hook', but through an #'equal hashtable,
`erc-server-responses'. In order to find a hook you do:
(erc-get-hook command)
See the docstring of `define-erc-response-handler' for more
information.
o ALL hook variables have been renamed.
In accordance with recommendations in the Emacs Lisp manual,
the hook variables are no longer called `erc-server-FOO-hook',
but rather `erc-server-FOO-functions'. This is to indicate
that the functions they call take arguments.
All the modules in ERC have been updated to reflect this change,
but external module authors should beware.
** ERC has a new way of displaying nicknames in a channel.
The new file erc-nicklist.el defines a new command `erc-nicklist'
which pops up a small Emacs window showing the nicknames of all
members of the current channel. The implementation is not complete
and is rather proof-of-concept for now. The result is something a bit
like erc-speedbar, but not quite as invasive, and doesn't require use
of a new frame.
--
Lawrence Mitchell <we...@gm...>
|