Overview for 'nikic'
Written by Nikita Popov
/ Original link
on May. 22, 2022
In a previous article, I described how the caching related functionality in opcache works. However, opcache also exposes an optimizer, which is the subject of this article. Previously, the optimizer was part of opcache proper. Since PHP 8.1, it is part of the core engine. However, the engine only…
Written by Nikita Popov
/ Original link
on Nov. 8, 2021
Inheritance in PHP enforces the Liskov substitution principle (LSP) to make sure that an instance of the parent class can be replaced with an instance of the child class. Of course, PHP cannot enforce this in full generality – it can only detect definitely incompatible cases by inspecting class mem…
Written by Nikita Popov
/ Original link
on Oct. 20, 2021
PHP allows using a class before its declaration in the same file – sometimes. Internally we call this “early binding”. However, the precise behavior is rather arcane and not well documented. After reading this blog post, you’ll probably appreciate why bug reports related to early binding go right…
Written by Nikita Popov
/ Original link
on Oct. 13, 2021
The opcache PHP extension implements various functionality to speed up PHP in a transparent manner. As the name indicates, its origin and primary purpose is opcode caching, but nowadays it also contains an optimizer and just-in-time compiler. However, this blog post will focus only on the opcode ca…
Written by Nikita Popov
/ Original link
on Jun. 2, 2021
On the whole, LLVM has a well-designed intermediate representation (IR), which is specified in the language reference. However, there are a number of areas where design mistakes have been made. And while the LLVM project is generally open to addressing such issues, mistakes in core IR design tend…
Written by Nikita Popov
/ Original link
on Jun. 2, 2021
On the whole, LLVM has a well-designed intermediate representation (IR), which is specified in the language reference. However, there are a number of areas where design mistakes have been made. And while the LLVM project is generally open to addressing such issues, mistakes in core IR design tend…