Help language development. Donate to The Perl Foundation
Revision history for IRC-Log 0.0.24 2021-12-11T20:11:49+01:00 - Remove .merge method, it can only work on IRC::Log::Colabti 0.0.23 2021-12-11T14:33:15+01:00 - Add support for .merge method 0.0.22 2021-12-10T22:21:16+01:00 - Add support for .heartbeat Entry instance method - Add support for EXPORT class method 0.0.21 2021-12-01T21:44:16+01:00 - Use less scoping for conversation/control checks 0.0.20 2021-11-18T11:58:42+01:00 - Make sure an empty log file is properly handled 0.0.19 2021-11-17T13:55:55+01:00 - Add %.nick-indices hash for fast lookup of nick-names, which turned out to be a severe bottleneck in parsing of a log. This change made parsing of the perl6 historical log about 2.5x as fast as with 0.0.18, and 20% faster than 0.0.14 (before the last refactor). Memory usage is also down about 20% since 0.0.14. 0.0.18 2021-11-16T21:34:28+01:00 - Added support for :targets to .search method - Fixed several other issues with .search found when trying to use it from IRC::Channel::Log - Changed the interface to parse-log, to make parsing a little bit faster and remove the mutability of the .nr-control-entries and .nr.conversation.entries that is no longer needed 0.0.17 2021-11-15T12:30:48+01:00 - Add full .search capability - Add .Date method - Added dependency on "has-word" module 0.0.16 2021-11-12T18:20:33+01:00 - Rename .this-target to .target-entry - Add methods .target-index, .entries-lt-target, .entries-le-target, .entries-ge-target, .entries-gt-target - The .entries and .problems methods now always return IterationBuffer - The .parse method now only takes the text to parse - Consuming classes now need to provide a .parse-log method, rather than a .parse method, which is now provided by the role. This allows some common functionality to be moved from the consumer classes, simplifying them significantly 0.0.15 2021-11-10T00:52:31+01:00 - Added .nick-names and .entries-of-nick methods - Added .clear method to reset an object for re-parsing - Pretty extensive refactor to save memory, probably a little bit at the expense of CPU. Each message now consists of at least a "log" attribute, and a so-called hmon attribute (a 32bit unsigned integer value containing hour, minute, ordinal and nick-index value). Nick-names are now stored in a native str array (1-based). Linking between messages is now done with the $entries and the associated $hmon values. The %nicks hash is now gone: all there is now is a .entries-of-nick method that lazily produces the entries of the nick given. This reduces the memory footprint significantly, as well as simplifies updating of any additional messages. Consumers of the IRC::Log role can simplify their parsing logic, as they no longer need to keep track of position and other stuff - Added dependency on Array::Sorted::Util 0.0.14 2021-10-26T23:00:36+02:00 - Work around issue with .target 0.0.13 2021-10-25T23:24:31+02:00 - Fix issue with .entries returning an IterationBuffer instead of a List - Limit values that can be passed to TWEAK for hour, minute, ordinal and pos 0.0.12 2021-10-24T13:28:40+02:00 - Subtle change in semantics of .next/.prev. Instead of returning Empty on end reached, they now return Nil 0.0.11 2021-10-23T14:22:44+02:00 - Added "first-entry" and "last-entry" methods - Fix some documentation typos 0.0.10 2021-09-05T21:23:01+02:00 - Move to the zef ecosystem 0.0.9 2021-08-20T12:43:20+02:00 - Delegate handling of last-topic-change to "parse" method 0.0.8 2021-08-20T10:51:15+02:00 - Add .last-topic-change instance method 0.0.7 2021-06-09T19:47:15+02:00 - Add .next / .prev entry methods 0.0.6 2021-05-25T17:52:53+02:00 - Make Message.gist be the same what IRC::Log::Colabti parses 0.0.5 2021-05-23T23:13:45+02:00 - Oops. .new should not return its type object. Need more tests 0.0.4 2021-05-23T22:50:25+02:00 - Changed default branch. - Expect .update to return Nil, 0 or > 0 0.0.3 2021-05-19T17:50:07+02:00 - Seems tagging got mixed up somehow 0.0.2 2021-05-19T17:32:10+02:00 - Tweaks to make IRC::Log::Colabti work 0.0.1 2021-05-19T17:27:07+02:00 - Initial version