There is a new ICBM mailing list. This list will carry announcements, general discussion, bug reports, support issues, code contributions and anything else that comes up. The list is located at http://www.caerllewys.net/mailman/listinfo/icbm-users and is open to all ICBM users and interested parties.
This is a bugfix and maintenance release which contains a nearly complete rewrite of the code which creates the ICBM command FIFO. This rewrite fixes bugs encountered in FIFO creation on OSX, as well as fixing some anomalous behavior encountered on other platforms which caused ICBM's open() of the already-created FIFO to block until something wrote to it.
ICBM v1.3.2 is a maintenance release containing bug fixes and some minor enhancements.
This is a maintenance release after about six months away from my development systems. Changes are comparatively minor, but should be useful.
Version 1.3.0 of ICBM is now available. The most significant features of this release are:
- Fixes for a number of bugs in logging and the /replay command, including a race condition between threads that could cause a "Log file open failed" message to be incorrectly displayed by a '/log start' command that actually succeeded, and an off-by-one error that under unusual conditions could cause a single character of an incoming message to be silently dropped when splitting a long line.
- Extensive code cleanup, including breaking out the replay command from handle_input() into a separate replay() command and removing a few obsolete Perl4-isms that I finally broke myself of.
- Relocation of ICBM's sockets into a new sockets directory.... read more
This is a maintenance release that fixes a couple of minor documentation errors and enhances output from the /whois command.
"OK, let's get a closeup look at that on the ReplayCam."
This is a recommended release for all users.
Changes since v1.1.0
Extensively rewrote the /replay command code to make major extensions to its syntax and functionality. The rewritten /replay command, in addition to its previously existing capabilities, can now show only messages from specified nicks or only messages of specified classes. Explicit include lists, ignore lists, and message class masking can all be combined in the same command, although there's little point in using an explicit include list and an ignore list together. See icbm.1 for details.
Removed a leftover commandline option that was inserted for testing purposes, then accidentally left in.
Streamlined the code in set_status() somewhat
Fixed the /redraw command so that it really does clean up the input window, and aliased it as /refresh
Fixed /replay so that if you /replay smeggems, you get both messages from smeggems and private messages *TO* smeggems.
Added a 'rawmsg' hook type for those vanishingly rare occasions when you wish to do something to, or inspect, the raw message packet. (Well, OK, it's not *totally* raw. The packet type and length bytes have already been stripped when you see it.)
Added a 'leave' hook type to match the 'join' type.
Added a 'trigger' hook type for use with generic-trigger functionality.
Added generic-trigger functionality to allow implemention of commands which wait for a response from the server before completing execution. See the documentation for details.
ICBM v1.0.2 : "I'm sorry. We'll come in again."
So about ten minutes after releasing 1.0.1, it occurred to me, "You know, NOW, I could probably make ICBM reconnect to the server during a session without having to start a new session." So I tried it, and found again what I'd found before but forgotten: an object instance is not shareable between Perl ithreads.
However, in the process, I DID gain insights that allowed me to fix two minor but annoying bugs. So here's the fixes.
ICBM v1.0.1 is a minor bugfix update to v1.0.0 that fixes set() to allow setting variables to values containing embedded whitespace. It also adds the capability to set (either statically or interactively) the format strings for the status-bar clock display, message timestamps, and log open/close events.
ICBM v1.0.0 has now been officially released. This release represents completion of all currently planned features, although known bugs are still outstanding. Significant new features in this release include logging, paging, and timestamps.
ICBM-1.0.0 preserves correct arrival timestamps on messages queued while paging or replayed from message history, even if timestamping was not enabled at the time the message was received. This allows you to turn on timestamping and logging, then /replay a conversation, in order to obtain a retroactively timestamped log of the conversation.
This release also includes a significant code rearrangement and the addition of a separate thread for logging. Communication between threads for message logging is implemented via a UNIX-domain socket which is removed on exit.... read more
V0.99.1, now in CVS as the current head (but not yet tagged as such), contains a fix for the annoying bug wherein $cur_group, $cur_nick and $cur_mod, although shared and global across all running threads, are not available in the scope of user-loaded functions. (This is quite annoying, both when trying to write hooks which are sensitive to nick, group and/or mod status, but for my own nick-stack implementation and the associated management functions.)
This particular problem has been worked around by adding get_nick(), get_mod() and get_group() functions.... read more
ICBM is coming to Sourceforge. In the next few days, I will be tagging the current development release (currently 0.98.7) and making it available here, first as a raw tarball, then in CVS. Mailing lists (icbm-announce, icbm-devel, and icbm-users) should be up by this time tomorrow.
Current status: ICBM is very much usable (I've been using it for several months now), but has several recalcitrant known bugs, and several planned features that have not yet been implemented. Any and all assistance in clearing up these remaining issues will be appreciated.