The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
0.16 Mon Feb 22 17:08:46 GMT 2010
    - Don't seed a reply with a token which is too rare
    - Make the Word tokenizer split "example.com" into 3 tokens, while still
      keeping "3.14" as one token. Also accept ',' as a decimal point.
    - Various improvements to capitalization in the Word tokenizer
    - Don't run the ReadLine UI if --stats is supplied
    - Allow keeping the entire SQLite database in memory while running
    - Make that the default behavior to reduce IO
    - Declare undeclared File::Slurp dependency
    - Declare undeclared Test::Script dependency
    - Fixed utf8 problems with ReadLine UI
    - Optimize the SQL schema bit, which shaves about 10% off the size of
      the DB and cuts more than half of the time needed to generate a reply

0.15 Thu Feb 18 23:55:19 GMT 2010
    - Allow specifying SQLite's cache size with --storage-args
    - Reduce likelhood of returning a reply which is identical to the input
    - Instead of depending on version "0" of most modules (i.e. any
      version) depend on the latest CPAN version. We know this works;
      but we have no idea if the older modules work.
    - Changed to word tokenizer so that it doesn't return whitespace tokens,
      instead returning a flag which dictatesthe whitespace policy of the
      token in question. Changed the default Markov order to 2 to compensate.
    - Fixed a bug with the DBD::* backends not retrieving the Markov order
      from an existing database
    - Removed Text::Trim dependency due to it not being acceptable for Debian
    - Learn from the input when using the ReadLine UI
    - Removed Test::Exit hard dependency for tests: Not in Debian yet
    - Added a --stats option to print some statistics about the brain

0.14 Sat Feb 13 17:07:30 GMT 2010
    - Fixed a bug in the test suite preventing optional backends from
      being tested
    - All tests now use Hailo::Test, consequently backends now go
      through much more thorough testing. Lots of other test related
      since from 0.13.
    - utils/hailo-benchmark: Rewritten to use Hailo::Test, the
      benchmark is now more representive of actual Hailo usage.
    - Hailo->learn() can now take an arrayref

0.13 Sat Feb 13 09:19:52 GMT 2010
    - Add missing .trn files to the test suite
    - Fix number of tests in t/storage/all.t

0.12 Sat Feb 13 08:55:25 GMT 2010
    - If asked for a reply before we've learned anything, return nothing
      instead of spewing warnings
    - Issue #19: Ability to ->train() from filehandle as well as from
      a file
    - Re-enable t/bug/tokens-repeat.t test disabled in
      cc189bd7a2dc56561c71868f061307ee5068f904
    - When replying to some input, pay more attention to rare tokens
    - Hailo::Storage::Mixin::Hash would inevitably die due to not importing uniq()
    - Allow Hailo->train() to take an arrayref, filename, or filehandle argument

0.11 Fri Feb 12 09:44:13 GMT 2010
    - Corrected outdated documentation in some places
    - Fixed a problem with the SQLite backend not reading some information
      from an existing brain if reply() is called first
    - Fix --reply option, its argument was being ignored

0.10 Fri Feb 12 02:31:34 GMT 2010
    - Normalized the SQL schema some more. This breaks compatability with old
      brains of course, but training/learning is quite a bit faster now.
    - Removed Hailo::Engine and moved most of its logic into the storage
      backends
    - Fixed module loader picking Perl::Flat when Perl was requested
    - Always return a reply, even when input tokens are unknown or missing

0.09 Thu Feb 11 02:36:49 GMT 2010
    - Disable SQLite's journal while training. Speeds up long imports.
    - Add Perl::Flat backend which keeps things in a simple key-value
      hash where key and value are both Str. It can be subclassed to
      store data in e.g. BerkeleyDB, Cache or other key-value
      backends.
    - Add CHI backend with File, Memory, BerkeleyDB etc. backends
    - Use MooseX::Role::Strict instead of Moose::Role
    - Use Log::Log4perl for logging
    - SQLite broke if using a :memory: brain if a :memory: file existed
    - Use Module::Pluggable for finding plugins

0.08 Wed Feb 10 00:06:20 GMT 2010
    - 0.07 broke the PostgreSQL and MySQL backend. Fixed them.
    - Made it less likely that non-SQLite backends will be broken in
      the future by moving the DB-specific SQL out of Pg.pm and
      mysql.pm into macros in SQL.pm
    - Use of $. in Hailo.pm broke file-based backends such as Cache.pm
    - Make MySQL docs copy-pasteable 
    - Add a benchmark script as utils/hailo-benchmark

0.07 Tue Feb  9 15:23:44 GMT 2010
    - Note: The storage backends for this release have been changed in such
      a way that it is incompatible with brains created by older releases
    - Add missing dependencies on Test::Script/MX::Getopt::Dashes
    - The Words tokenizer now compresses whitespace when tokenizing as
      well as whitespace-trimming the output it produces
    - Make start/end expressions only start/end sentences most of the time
      instead of all the time
    - Issue #13: `hailo -b brain' will launch an interactive ReadLine
      terminal
    - Don't exit() on print_version=> in run(), just return()
    - Add $VERSION to all .pm files
    - Use namespace::clean everywhere

0.06 Sat Jan 30 19:21:28 GMT 2010
    - Construct SQL's dbd_options with lazy_build, not default. This
      makes it easy to add additional options in the individual
      storage engines.
    - Remove some dead code in Hailo::Storage::Perl
    - Explicitly disconnect sqlite's dbh / sth handles. This should
      fix some cpantesters FAILs we're getting which print "database
      is locked" errors.

0.05 Sat Jan 30 13:55:18 GMT 2010
    - Shuffle key tokens and don't reuse them. Should make for more random
      replies.
    - Check for definedness of $self->brain in Hailo::Storage::*
    - Use autodie to catch open/close errors
    - Hailo->learn() was broken when print_progress was false
    - Add tests for Hailo invocation
    - Use MooseX::StrictConstructor

0.04 Fri Jan 29 17:48:49 GMT 2010
    - You know that bug we talked about being fixed in 0.03? It was
      still there now it's actually fixed.
    - Use Class::MOP::load_class() instead of eval { require $str } to load plugins
    - Depend on Perl 5.10
    - Added MySQL storage backend, don't use it.

0.03 Fri Jan 29 14:37:17 GMT 2010
    - Fixed a fatal error in Hailo::Engine::Default that would
      inevitable occur on any large brain. When Hailo was given
      repeating input with such as [ qw(badger ! badger !) ] where
      the probability of all the given token following each other was
      100% (i.e. there's nothing to break the loop) it would start
      generating infinitely long replies.
  
      This was fixed by adding a guard clause in Hailo::Engine::Default
      which breaks the loop if we're up to C<$order * 10> and the
      number of unique tokens in the reply is less than the model
      C<$order>.

0.02 Fri Jan 29 03:54:32 GMT 2010
    - Fix typo in NAME in Hailo::Tokenizer::Words which caused the POD
      not to be displayed on search.cpan.org
    - Present options in --help output in reverse sort order
    - Add facility to pass arguments to storage/engine/tokenizer from
      the command line or via Hailo->new(). Make Hailo::Storage::Pg
      use this facility for its database connection arguments.
    - Fix spelling error in Hailo's POD
    - --reply on the command line didn't work

0.01 Fri Jan 29 00:39:54 GMT 2010
    - First CPAN release