This passes tests, but it sure is a big mess compared to a 3-character change to just add a maximum length, and discretion is the better part of avoiding a sunk cost fallacy or something along those lines:
- Queries
- All Stories
- Search
- Advanced Search
- Transactions
- Transaction Logs
All Stories
Feb 17 2021
At least on my system, no: \w+, \w{3,}, and \w{3,}+ all take 60s+ to (fail to) match AAAAAAAA... (with total length 512KB).
Perhaps \w{3,}+ resolves the issue? (+ being a possessive quantifier here that prevents backtracking)
We also can't pass $flags to preg_replace_callback(...) because it wasn't supported until PHP 7.4. This means preg_replace_callback() can't operate on a match-offset basis.
- Fix regexp issue.
I've deployed these changes to secure, so hopefully any issues will present themselves.
If something goes wrong with this, the patch which fixes the problem can now change the indexer version and then all mis-indexed documents can be reindexed with:
- Correct "bin/index" -> "bin/search index".
- Fix typos and bugs, test more "--type" flag values.
Feb 16 2021
The existing SearchIndexVersion table (which stores document versions) may reasonably be able to store index versions too. This limits the need to apply changes to fdocument.
This has stalled for a while because it's moderately expensive to recover from if the updated index logic has a bug: rebuilding all document indexes is expensive, and it's difficult to identify the set of documents that need to be reindexed if a bug is present.
- Fix recently added lint warning about catching "Exception" without "Throwable".
Yep, that's more constraints.
Feb 15 2021
See PHI1997, which discusses things from the perspective of reporting coverage from a build system.
In 2014, Phacility was still largely pre-revenue and the business model wasn't entirely clear, and there was value in testing support for payment processing by handling small, low-stakes charges. Phacility now has revenue and more clarity around the business model (and the payment processing code is more mature and proven), and accepting donations (even with the disclaimer that Phacility is an "evil, for-profit corporation") no longer feels appropriate.
Feb 13 2021
Feb 12 2021
Feb 10 2021
Feb 8 2021
I also don't see any way to really make useful assertions about this parameter statically.
PHP8 supports named arguments. At a minimum, the builtin function call_user_func_array() has changed behavior. This script:
Feb 7 2021
Feb 5 2021
See also PHI1987 for another case of this.