3.0 arrived in September and can produce one file containing the application, its dependencies and the runtime — which changes what deployment means compared with a PHP release…
3.6 added lookup tables, which is WooCommerce admitting postmeta does not scale. What they contain, what they do not, and the regeneration nobody schedules.
Composing generators by looping and re-yielding works and loses the inner generator’s keys and its return value, which is usually discovered much later. Keys from the inner generator…
Alpine uses musl rather than glibc, and musl’s resolver queries all configured nameservers in parallel and takes the first answer — which behaves differently from glibc under partial…
Changing the shape of a cached value makes every existing entry wrong, and there is no way to clear them selectively without knowing every key that exists. A…
C# 8 lets a reference type declare whether it may be null, which turns the language’s oldest category of bug into a compile-time warning — on an existing…
Testing that a controller queued something by starting a worker and waiting is slow and flaky; testing it by reading the queue table couples the test to the…
Loading the extension slows execution substantially even with no session and no profiler running, because it installs hooks into the engine. The trigger form means the profiler runs…
Counting failures in a PHP object means each of fifty workers keeps its own count and opens independently, which is fifty times more slow calls than intended. Using…