TypePHP 是一个 AOT ( Ahead-Of-Time ,提前编译)编译器,它把 PHP 源码翻译为 C++,再编译为原生机器码。与字节码缓存或虚拟机不同,它不会在运行时解释 opcode ,而是直接生成在 CPU 上运行的原生二进制。
它保留熟悉的 PHP 语法,同时引入编译期类型信息,让编译器为性能热点生成快速、静态类型的 C++ 代码。动态 PHP 值、内置函数、反射和对象元数据继续通过 PHPX 与 Zend runtime 互操作;用户函数编译完成后不再以 Zend opcode 方式执行。
TypePHP 完全由 PHP 语言编写,并且完全自举:tpc 编译器二进制就是用 TypePHP 编译编译器自身的 PHP 源码得到的。整个自举链路是纯 PHP——编译器本身没有任何 C 或 C++ 胶水代码。
第 2 条附言 · 5 小时 12 分钟前


马上过千了
第 3 条附言 · 4 小时 59 分钟前
只要一提起「把 PHP 编译成更快的程序」,几乎必然会有人联想到 Facebook 的 Hack 与 HHVM 。这个联想很自然。十几年前,Facebook 为了让 PHP 跑得更快,先做了把 PHP 翻译成 C++ 的 HPHPc ,后来又做了带 JIT 的 HHVM ,2014 年顺势发布了 Hack 语言。这套组合曾经是「 PHP 性能优化」的终极答案,也深刻地影响了整个 PHP 社区对「编译」这件事的想象。于是当 TypePHP 出现——一个 AOT 编译器,把 PHP 源码直接编译成原生二进制——很多人第一反应是:这不就是又一个 Hack 吗?完全不是。这两者的差异不是「谁更快一点」「谁的生态更大一点」这种程度问题,而是设计目标、实现路径、交付形态、参与门槛四个维度上的全面分歧。
https://mp.weixin.qq.com/s/SAbxksaIF74yh7V7Uz08xA

