Changes for version 0.47 - 2010-05-29

  • Optimize Hailo::Tokenizer::Words to use less subroutine calls in critical code. Changed the time being spent in that file from 5.14s to 3.72s out of a total runtime of 35.6s when running t/hailo/real_workload.t.
  • The initial tokenizer class is now saved as metadata to the database, and loaded into Hailo from existing brains.
    • This means that this now works as expected:
      • hailo --brain db.sqlite --tokenizer Chars --train file.trn hailo --brain db.sqlite --reply foo
    • I.e. Hailo will note that it used the Chars tokenizer in the database, and load the correct tokenizer in the future. However this will cause Hailo to die:
      • hailo --brain db.sqlite --tokenizer Chars --train file.trn hailo --brain db.sqlite --tokenizer Words --reply foo
    • It spots that you've explicitly said you want a tokenizer that's incompatible with the one in the database for doing replies and dies. This is what it did before if you did the exact same thing with the --order switch.
  • Rename tests file in t/ to drop the DBD- prefix. Tests like Words-*.t are were also moved into sub-directories. e.g. Words/*.t.

Documentation

Command-line interface to the Hailo Markov bot

Modules

A pluggable Markov engine analogous to MegaHAL
Class for the hailo command-line interface to Hailo
The default engine backend for Hailo
A role which adds an 'arguments' attribute
A role representing a Hailo engine backend
A role representing a Hailo storage backend
A role representing a Hailo tokenizer
A role representing a Hailo UI
A base class for Hailo storage backends
A storage backend for Hailo using DBD::mysql
A storage backend for Hailo using DBD::Pg
A storage backend for Hailo using DBD::SQLite
Deploy the database schema Hailo uses
A character tokenizer for Hailo
A tokenizer for Hailo which splits on whitespace, mostly.
A UI for Hailo using Term::ReadLine