韩天峰
|
7939f28f37
|
test(phpunit): 添加抽象类和私有方法重写的测试用例
- 添加 testNewAbstractClass 方法测试抽象类实例化错误
- 添加 testOverridePrivateMethod 方法测试私有方法重写错误
- 使用 exec 方法验证预期的错误消息输出
- 扩展测试覆盖范围以包含更多边界情况
|
2 months ago |
韩天峰
|
315220eac6
|
docs: 添加 HHVM/HHBBC 和 KPHP 编译器技术调研文档
- 新增 HHVM/HHBBC 编译器架构分析文档,涵盖全程序分析、类型系统与优化管道
- 新增 KPHP 编译器设计与优化技术调研文档,包含流水线并行编译和智能类型收窄
- 记录可借鉴的创新设计,包括 rewrite rules DSL、smart casts、并行编译管道等
- 分析工具链差异,涵盖测试基础设施、基准测试框架和 IDE 集成方案
- 对比语法兼容性差异,明确支持与不支持的语言特性及架构限制
- 提供优先级评估建议,指导 AOT 编译器的技术改进方向
|
3 months ago |
韩天峰
|
279fe22d82
|
fix(compiler): 解决对象属性类型检查和赋值操作问题
- 添加对象属性赋值时的类型验证逻辑
- 实现固定类型对象属性的 unset 操作默认值恢复
- 修复 std 命名空间内置类型方法的类型检测
- 更新对象属性类型推断和方法返回类型解析
- 添加对象属性子类赋值到基类类型的错误检查
- 修改测试用例以反映 AOT 编译器的严格类型行为
|
3 months ago |
韩天峰
|
46800d9dc9
|
docs(aot): 添加 AOT 编译器优化优先级和 PHP 源码优化器分析文档
- 新增 AOT 编译器优化优先级重新评估文档,重点分析类型推断、去虚拟化、逃逸分析等核心优化策略
- 详细阐述 GCC/Clang 二次编译架构下的优化分工原则
- 新增 PHP Zend Optimizer/OPcache/JIT 设计分析文档,提取可借鉴的编译器优化技术
- 包含 SSA/e-SSA 构建、类型推断、SCCP、DCE、逃逸分析等关键技术的实现细节
- 提供 PHP 优化器位掩码类型系统的具体设计方案和算法实现
- 分析 PHP 的稀疏条件数据流框架(SCDF)和通用优化 pass 流水线架构
|
3 months ago |
韩天峰
|
95b1c89053
|
BitInt 支持位运算操作符
|
3 months ago |
韩天峰
|
eb31e3584b
|
docs: 添加 AOT 编译器高精度类型和通用方法使用教程
- 新增 HIGH_PRECISION_TYPES.md 文档,详细介绍 BigInt、Decimal 和 BigFloat 三种高精度数值类型
- 新增 UNIVERSAL_METHODS.md 文档,全面介绍通用方法系统的使用方式和各类型支持的方法
- 包含高精度类型的构造、运算、转换等完整使用指南
- 提供通用方法的设计原理、Handler 类型和各类原生类型的方法详解
- 添加完整的使用示例和最佳实践说明
|
3 months ago |
韩天峰
|
743c170e39
|
docs(native_types): 完善文档中高精度数值类型使用指南
- 添加 BigInt、Decimal、BigFloat 三种高精度数值类型的详细介绍
- 补充高精度数值类型的 C++ 底层库依赖和关键头文件说明
- 详细说明高精度数值类型的声明与构造方式
- 完善算术运算符和比较运算符的使用示例
- 添加通用方法表格对比 BigInt、Decimal、BigFloat 的方法差异
- 补充类型转换规则和跨类型转换限制说明
- 添加 C++ API 参考和超长字面量自动识别机制说明
- 增加使用建议章节区分原生类型与 ZVAL 的适用场景
|
3 months ago |
韩天峰
|
f33641aead
|
docs(native_types): 更新原生类型文档并完善类型提升规则说明
- 将标题从"AOT编译器原生类型支持说明"改为"AOT编译器类型系统说明"
- 新增高精度数值类型支持(bigInteger、decimal、bigFloat)
- 更新类型映射表,增加底层实现列和新类型条目
- 完善二元运算类型提升规则文档,包括Var主导规则、Float优先规则、大数类型精度提升规则
- 添加类型提升完整矩阵表格便于查阅
- 更新复合赋值运算符类型转换说明
- 将最后更新日期更新至2026年5月26日
|
3 months ago |
韩天峰
|
05a409ac37
|
test: 添加AOT测试及eval()作用域限制文档
|
3 months ago |
韩天峰
|
7ee2a161b9
|
docs: 添加两项专利申请技术交底书
- 添加 C++ 模版实现动态语言强类型数据容器的专利文档
- 添加混合态编程语言编译执行方法的专利文档
- 文档涵盖技术方案、系统组成、方法流程和关键保护点
- 包含详细的术语解释和技术背景说明
|
3 months ago |
韩天峰
|
25a574122a
|
docs(std): 添加 STD 容器文档说明
- 介绍 Swoole AOT 强类型高性能容器特性
- 详细说明 std::array、std::vector、std::map、std::unordered_map 的使用方法
- 提供各类容器的代码示例和性能对比数据
- 解释与 PHP Array 的转换机制和使用建议
- 包含编译原理说明和性能测试结果
- 说明 UnsafePtr 与 native 函数参数的使用规则
|
4 months ago |
韩天峰
|
9186d04da4
|
refactor(backend): 将调试配置选项从 debug_info 统一更改为 debug
- 将所有编译器后端(GCC、Clang、MSVC)中的 debug_info 参数重命名为 debug
- 更新单元测试中相应的配置选项参数名称
- 修改命令行参数解析从 --debug-info 改为 --debug
- 调整文档中关于调试选项的描述和示例
- 修复链接阶段不应包含调试符号的逻辑错误
- 重构内部调试变量命名从 debugInfo 改为 debug
- 更新 YAML 配置文件中的调试选项键名
|
4 months ago |
韩天峰
|
028a83dcb2
|
feat(compiler): 添加编译器选择机制和平台优化
- 实现基于环境变量的编译器选择(PHPX_CC > CXX > 平台默认)
- 支持通过 YAML 配置文件指定 cpp-compiler 选项
- 为 macOS、Linux、Windows 自动选择合适的默认编译器
- 优化 PHP 路径检测逻辑,移除硬编码路径依赖
- 为 extension 和 bin 模式统一添加 PHP 库链接
- 在 macOS 上实现 RPATH 支持以解决动态库加载问题
- 添加对多种构建模式名称的映射支持(extension/ext/binary/bin/cli)
|
4 months ago |
韩天峰
|
3489413661
|
docs: 添加 AOT 编译器类继承规则文档和预览版使用须知
- 新增 CLASS_INHERITANCE.md 文档,详细说明 AOT 编译器类继承规则
- 新增 README.md 文件,包含预览版使用条款和责任限制说明
- 文档涵盖合法继承示例、非法继承示例和最佳实践指南
- 添加故障排除部分和常见问题解答
- 说明 AOT 编译器与传统 PHP 在继承方面的差异对比
- 强调预览版软件的使用限制和风险提示
|
4 months ago |
韩天峰
|
a284a9bfaf
|
docs(syntax): 更新不支持语法文档并添加新测试用例
- 新增重复函数名和类名不支持特性的详细说明
- 新增break/continue多层循环不支持特性的详细说明
- 新增字符串越界访问行为差异特性的详细说明
- 添加相关替代方案和最佳实践建议
- 更新统计数据和FAQ问答内容
- 修复代码块标记格式问题
- 添加字符串相关的bug测试用例
|
5 months ago |
韩天峰
|
26682179d4
|
docs(syntax): 更新不支持语法文档添加引用参数默认值和变长引用参数说明
- 新增引用参数带有默认值的不支持语法说明
- 新增变长参数中使用引用的不支持语法说明
- 更新统计信息表格中的语法数量和百分比
- 在快速参考表中添加新的不支持语法条目
- 为相关测试文件添加 skip 标记说明
- 更新更新日志记录新增的两个不支持语法特性
|
5 months ago |
韩天峰
|
646fb7d56d
|
docs(compiler): 添加 AOT 编译器命令行工具使用指南
- 新增完整的命令行选项详解文档
- 包含优化级别、编译模式、输出文件名等所有参数说明
- 提供典型使用场景和性能优化技巧
- 添加故障排除和最佳实践章节
- 包含编译过程详解和高级主题说明
|
5 months ago |
韩天峰
|
c8e22239bb
|
docs: 添加 PHP 与 C++ 混合编程指南并完善原生类型文档
- 新增完整的 PHP 与 C++ 混合编程指南文档
- 详细介绍 AOT 编译器的混合编程机制和使用方法
- 添加 Box 封装器机制的完整说明和示例
- 扩展原生类型文档,新增 objval 编译期函数说明
- 更新类型映射表,增加性能和状态标识
- 补充类型声明方式对比表格
- 添加大量实用示例和最佳实践指导
|
5 months ago |
韩天峰
|
1d14d569bf
|
docs: 添加 AOT 编译器文档集
- 新增 COMPILATION_MODES.md 详细介绍扩展模式和二进制模式
- 新增 NATIVE_TYPES.md 说明原生类型支持情况
- 新增 QUICKSTART.md 提供快速入门指南
- 新增 README.md 创建文档索引
- 更新 UNSUPPORTED_SYNTAX.md 补充类型约束说明
|
5 months ago |
韩天峰
|
552fa1c882
|
docs(guide): 添加函数参数类型声明优化指南
- 介绍自动原生类型机制,支持 int、float、bool 参数声明
- 对比 ZVAL 类型与原生类型的内存占用和性能差异
- 提供斐波那契数列和圆周率计算的实际测试案例
- 展示性能对比数据,AOT 原生类型比 Zend VM 快 100-300 倍
- 分析内存布局优化、寄存器直接运算和编译期优化原理
- 提供递归函数、循环密集型、数学计算和条件判断的最佳实践
- 介绍混合类型策略,外层灵活内层高效的设计模式
- 警告类型不匹配、返回值约束和溢出风险等注意事项
- 包含完整的性能测试基准和决策树指导
- 总结核心要点和推荐实践方案
|
5 months ago |
韩天峰
|
2ef2358735
|
fix(compiler): 移除变量类型重新赋值检查逻辑
- 删除了变量类型不匹配时的致命错误检查
- 允许相同变量名在不同类型的std::转换间灵活赋值
- 更新了本地变量类型验证和添加逻辑
- 修改了表达式解析和类型转换流程
|
5 months ago |
韩天峰
|
5b0346a4ad
|
test(aot): 添加 AOT 编译器功能测试和文档
- 新增匿名类功能测试文件 tests/aot/anonymous-classes.phpt
- 新增数组展开操作符测试文件 tests/aot/array-spread.phpt
- 新增箭头函数测试文件 tests/aot/arrow-functions.phpt
- 新增属性注解测试文件 tests/aot/attributes.phpt
- 新增构造函数属性提升测试文件 tests/aot/constructor-promotion.phpt
- 新增生成器测试文件 tests/aot/generators.phpt
- 新增 trait 基础功能测试文件 tests/aot/trait-basic.phpt
- 更新测试运行脚本支持 main 函数自动调用
- 新增 AOT 编译器语法支持文档 docs/UNSUPPORTED_SYNTAX.md
- 记录 ZVAL 与原生类型性能对比和使用建议
- 文档化扩展模式和二进制可执行文件模式差异
- 详细说明不支持的语法特性包括生成器、可变变量等
|
5 months ago |