- New algorithm for handling variable tags (<get>, <set>, <add>, <sub>,
<mult>, <div>, <bot> and <env>) that allows for iterative nesting of
these tags (for example, <set copy=<get orig>> will work now).
- Fix sorting algorithm, so triggers with matching word counts will be
sorted by length descending.
- stream() function can accept a multiline string instead of an array
- Speed optimization by precompiling as many regexps as possible (what was
especially helpful was to precompile substitution and simple trigger
regexps), taking the time-to-reply for the default brain from ~0.19s down
to ~0.04s
- Add support for `! local concat` option to override concatenation mode
(file scoped)
- Fix the regexp used when matching optionals so that the triggers don't match
on inputs where they shouldn't. (RiveScript-JS issue 46)