It will speed up lots of filters.
Version: unspecified
Severity: normal
It will speed up lots of filters.
Version: unspecified
Severity: normal
Subject | Repo | Branch | Lines +/- | |
---|---|---|---|---|
Improve ignoring short-circuited operations | mediawiki/extensions/AbuseFilter | master | +23 -0 |
(In reply to comment #2)
But they *do* short-circuit now, though not in a proper way.
I just see some filters only saying cond1 & cond2 where cond1 is very cheap and is false for most of edits (for example, user_name == 'FooBar') but cond2 is some more expensive consume more condition limit than expected (in short-circuited evaluation).
From T53784:
Currently, if I create a filter having the code
false & false & false & false & falseand then make an edit in any page, the filter's page will have a message saying "... it consumes 5 conditions of the condition limit."
There is no reason for it to consume the last 4 conditions, because the first one is already false.
Notice the behavior is a little better if the code is changed to
false & ( false & false & false & false )because it will now consume just 2 conditions. Ideally, it should consume only 1 condition in both cases (see Short-circuit evaluation).
Change 282475 had a related patch set uploaded (by Bartosz Dziewoński):
Improve ignoring short-circuited operations