Revision history for Perl extension RiveScript.
1.17 Sep 15 2008
- Updated the rsdemo tool to be more flexible as a general debugging and
developing program. Also updated rsdemo and rsup to include POD documentation
that can be read via `perldoc`.
- Added a global variable $RiveScript::basedir which is the the path to your
Perl lib/RiveScript folder. This is used by `rsdemo` as its default location
to search for replies.
- Tweak: Triggers of only # and _ can exist now alongside the old single-wildcard
trigger of *.
- Bugfix: The lookahead code would throw Perl warnings if the following line
had a single space in it, but was otherwise empty.
- Bugfix: Inline comment removing has been fixed.
- Bugfix: In conditionals, any blank side of the equality will get a default
value of "undefined". This way you can use a matching array inside an optional
and check if that <star> tag is defined.
+ i am wearing a [(@colors)] shirt
* <star> ne undefined => Why are you wearing a <star> shirt?
- What color is it?
- Updated the RiveScript Working Draft.
1.16 Jul 22 2008
- New options to the constructor: 'verbose' and 'debugfile'. See the new()
constructor for details.
- Added new wildcard variants:
* matches anything (previous behavior)
# matches only numbers
_ matches only letters
So you can have a trigger like "+ i am # years old" and "+ i am * years old",
with the latter trigger telling them to try that again and use a NUMBER this
time. :)
- Bugfix: when there were multiple +trigger's that had a common %previous,
there was no internal sort buffer for those +trigger's. As a result, matching
wasn't very efficient. Added the method sortThatTriggers() to fix this.
- Bugfix: tags weren't being processed in @Redirects when they really
should've!
- Bugfix: The ^Continue lookahead code wouldn't work if the next line began
with a tab. Fixed!
- Updated the RiveScript Working Draft.
1.15 Jun 19 2008
- Person substitutions support multiple-word patterns now.
- Message substititons also support multiple-word patterns now.
- Added syntax tracking, so Deep Recursion errors can give you a filename and
line number where the problem occurred.
- Added a handler for detecting when a user was put into an empty topic.
- Rearranged tag priority.
- Updated the RiveScript Working Draft.
1.14 Apr 2 2008
- Bugfix: If a BEGIN/request trigger didn't exist, RiveScript would not fetch
any replies for the client's message. Fixed.
- Bugfix: Tags weren't being re-processed for the text of the BEGIN statement,
so i.e. {uppercase}{ok}{/uppercase} wasn't working as expected. Fixed.
- Bugfix: RiveScript wasn't parsing out inline comments properly.
- Rearranged tag priorities.
- Optimization: When substituting <star>s in, an added bit of code will insert
'' (nothing) if the variable is undefined. This prevents Perl warnings that
occurred frequently with the Eliza brain.
- Updated the RiveScript Working Draft.
1.13 Mar 18 2008
- Included an "rsup" script for upgrading old RiveScript code.
- Attempted to fix the package for CPAN (1.12 was a broken upload).
- Bugfix: <bot> didn't have higher priority than <set>, so
i.e. <set name=<bot name>> wouldn't work as expected. Fixed.
1.12 Mar 16 2008
- Initial beta release for a RiveScript 2.00 parser.