PHPnews.io

Overview for 'nikic'

Early binding in PHP

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…


How opcache works

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…


Design issues in LLVM IR

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…


Design issues in LLVM IR

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…


Make LLVM fast again

Written by Nikita Popov / Original link on May. 10, 2020

The front page of the LLVM website proudly claims that: Clang is an “LLVM native” C/C++/Objective-C compiler, which aims to deliver amazingly fast compiles […] I’m not sure whether this has been true in the past, but it certainly isn’t true now. Each LLVM release is a few percent slower than the la…


Make LLVM fast again

Written by Nikita Popov / Original link on May. 10, 2020

The front page of the LLVM website proudly claims that: Clang is an “LLVM native” C/C++/Objective-C compiler, which aims to deliver amazingly fast compiles […] I’m not sure whether this has been true in the past, but it certainly isn’t true now. Each LLVM release is a few percent slower than the la…