* Display result below the field, rather than at the top of the page.
* Clear the result when the field is changed, not after some arbitrary time period.
* Re-add, per Brion's request.
* Add an easy PHP tester, to run the tests used for the native parser.
* Update to pass 20 tests out of 27. Still to go:
** Implement dates.
** Fix order of operations.
** Fix backslash parsing.
** Implement if-then-else and ternery operator.
* Add special page aliases for AbuseFilter
* Change special page aliases method for ChangeAuthor, and Collection
* Add missing to Translate/aliases.txt
(may require another commit; we will see)
* Reimplement tools, starting with a spiffy AJAX expression tester. Didn't bother implementing as non-AJAX, as it's just an extra.
* Change exchange protocol between native parser and PHP app. Resulted in 2-3-fold performance boost.
* Fix minor bug from last night.
* Revert r38187 for now:
** Introduced a memory leak.
** Used an unnecessary library. The point is taken, and this will be fixed in a few days (using glibc instead).
* Fix logic error in boolean ops.
* Integrate with the PHP abuse filter using AbuseFilterParserNative class.
* Fix memory leak.
* Fix a few miscellaneous bugs
* Add a bunch of profiling, so we can figure out where performance bottlenecks are.
* Cache the in-object token cache in memcached, bringing per-condition run times from 4ms to a cooler 296us
* Disallow more than 100 condition-checks per action.
* Disallow filters which are misbehaving (more than 5 matches, constituting more than 5% of recent actions)
* Display statistics for all filters (percentage of times the condition limit is reached, and percentage of times some filter is matched), and individual filters (percentage of times it's matched).