Команда Swoole опублікувала відкритий вихідний код TypePHP - компілятора, який перетворює PHP-код у нативний машинний код. Альберт Чен (Albert Chen) повідомив про це у соцмережі X, зазначивши, що реліз відбувся раніше запланованого жовтневого терміну.
Що таке TypePHP
TypePHP - це Ahead-Of-Time (AOT) компілятор, який транслює PHP-код спочатку в C++, а потім у нативний машинний код. На відміну від кешу байт-коду чи віртуальної машини, він не інтерпретує опкоди під час виконання: натомість генерує оптимізовані нативні бінарники, що запускаються безпосередньо на процесорі.
Ключові особливості
Компілятор зберігає звичний синтаксис PHP і додає інформацію про типи на етапі компіляції. Це дозволяє генерувати швидкий, статично типізований C++-код для критичних ділянок програми (hot paths).
Динамічні PHP-значення, внутрішні функції, рефлексія та метадані об'єктів продовжують взаємодіяти з Zend-рантаймом через PHPX. Користувацькі функції після компіляції більше не виконуються як Zend-опкоди - вони працюють як нативний машинний код.
Самокомпіляція на чистому PHP
Особливістю TypePHP є те, що компілятор повністю написаний на PHP і підтримує самокомпіляцію (self-hosting). Бінарник компілятора tpc створюється шляхом компіляції власного PHP-коду за допомогою TypePHP. Весь ланцюжок bootstrap-процесу базується на чистому PHP - без жодного C чи C++ коду в самому компіляторі.
Це означає, що TypePHP використовує себе для компіляції власного вихідного коду, демонструючи зрілість і повноцінність рішення.
Де дізнатися більше
Детальну документацію та додаткову інформацію про проєкт можна знайти на офіційному сайті TypePHP. Вихідний код доступний у репозиторії на GitHub.