Gina P. Banyard opened the mass deprecation vote for PHP 8.6: 35 separate ballots, each requiring a 2/3 majority, running through August 10. Most are passing easily (mysqli_get_charset() 34–0, spl_classes() 33–0), but the headline items are failing: list() — found over 12,000 times on Packagist — stands at 17–19, the gettext _() alias at 6–18, reserving in/out/inout at 5–16, and let at 17–10, short of the threshold.

The dechunk stream filter deprecation is a coin flip at 15–13. Matteo Beccati argued an alternative should ship alongside the deprecation rather than expecting projects like symfony/http-client to write their own decoder; Jakub Zelenka called it a half-baked deprecation since the filter must be kept for internal use anyway. Pierre Joye countered that presence in a codebase does not equal usage, noting Symfony's native client disables it by default — though Beccati corrected that Symfony has shipped a pure-PHP alternative since release 8.2. Zelenka also revealed he already fixed the select limitation on filtered streams in master, landing in 8.6 regardless.

Caleb White's first RFC, the pipe assignment operator |>=, went to a vote running to August 11 and is split 8–8 with 3 abstentions. Nick Sdot's readonly property defaults vote stands at 17–0 (closes August 7), and Khaled Alam's const object property writes at 11–2 (closes August 8). Carryover votes: the minimum-supported-versions ballot for 8.6 (autoconf 2.71 at 27–2, COM_RESET_CONNECTION at 26–0) and the Time\Duration class, whose primary vote stretched to 33–1 with multiplyBy/divideBy method names leading 28–2.

Seifeddine Gmati opened voting on literal scalar types for just 18 minutes before retracting it for violating the Feature Proposals policy — no intent-to-vote two days ahead, and a minor 1.0 update that morning restarted a 7-day cooldown. He plans to reopen July 30, close to the freeze, possibly retargeting 8.7. The episode sparked criticism of the process itself from Juris Evertovskis and Bob Weinand as overly bureaucratic.

Derick Rethans reported a regression on master: the display-error-function-args RFC broke Xdebug's test suite because stream warnings from include, require, bzopen() and finfo_open() no longer include the file path, which was scrubbed as an argument. Kamil Tekiela defended the change, arguing paths could leak sensitive information, and suggested deliberately including paths in message text instead.

Edmond of the TrueAsync project turned last week's pre-RFC into a full RFC for Concurrency Support in the PHP Engine: a minimal coroutine representation with an extension-pluggable scheduler, adding no classes, functions, constants or syntax, no parallelism, everything on one OS thread. Gmati's early read was positive. Osama Aldemeery shipped the PREG_THROW_ON_ERROR RFC: an opt-in flag making preg_*() failures throw a catchable PregException, following the JSON_THROW_ON_ERROR pattern, targeting the release after 8.6.

The 8.6 release managers posted the schedule: soft freeze at tagging on August 11, beta 1 on August 13, hard freeze at RC 1 on September 22; all 8.6 votes must close before beta 1. Other notes: curl's Daniel Stenberg confirmed CURLOPT_HTTPHEADER headers must not be CRLF-terminated and libcurl may reject them; Steven Wilton's snmp PRs await final merge; PEAR bug pages now error out over unconfirmed reporter emails; and Larry Garfield closed the typed-arrays thread by pointing to reified generics and a future working group as the path for collections.