韩天峰
576222998c
feat(compiler): add expected and unexpected branch prediction functions
...
- Implemented expected() and unexpected() compile-time functions for branch prediction hints
- Added C++ macro generation for EXPECTED(...) and UNEXPECTED(...) in compiled output
- Updated documentation to include new branch prediction functions
- Added comprehensive tests for branch prediction macro generation
- Modified compiler base to handle expected/unexpected function type detection
- Added parser support for branch prediction function calls with proper argument validation
- Included polyfill implementations for expected and unexpected functions
- Updated version number from 1086 to 1087
1 month ago
韩天峰
10d807bed6
chore(deps): update swoole/phpx dependency and increment version
...
- Updated swoole/phpx from ~2.3.10 to ~2.4.0
- Incremented version number from 1084 to 1086
1 month ago
韩天峰
7e28e8441b
feat(build): add support for building shared libraries in addition to binaries and extensions
...
- Add BUILD_MODE_LIB constant to CompilerBase class
- Implement isBuildModeLib and isBuildModeEmbed methods for library detection
- Update Clang backend to handle lib build mode with -fPIC flag and DLL linking
- Modify GccLikeBackend to support lib build mode with shared library flags
- Update MSVC backend to handle lib build mode with DLL compilation
- Extend PlatformBase to return correct extensions for lib builds
- Add proper handling for misc directory files during preprocessing
- Create new example project demonstrating library build functionality
- Update Translator to include main.cc for embed modes and add PHPX_NO_MAIN define for libraries
- Expand mode mapping to accept multiple library-related build mode aliases
- Increment version number from 1082 to 1084
- Update documentation to reflect new lib build option alongside bin and ext modes
2 months ago
韩天峰
9ffe109cb1
feat: 添加斗地主Win32示例游戏
2 months ago
韩天峰
91af3ea0ea
chore: 升级版本至 0.3.0
2 months ago
韩天峰
eb5510e64a
feat: 将打包产物重命名为tpc
2 months ago
韩天峰
0360a51104
chore(deps): 更新 swoole/phpx 依赖版本
...
- 将 swoole/phpx 从 ~2.3.9 升级到 ~2.3.10
- 更新版本号从 1073 到 1074
2 months ago
韩天峰
e16f103cc7
chore(deps): 更新项目依赖包到最新版本
...
- 更新 league/climate 从 3.10.1 到 3.11.0
- 更新 symfony/polyfill-ctype 从 v1.36.0 到 v1.37.0
- 更新 symfony/polyfill-mbstring 从 v1.36.0 到 v1.38.2
- 更新 symfony/var-dumper 从 v8.0.8 到 v8.1.0
- 更新 symfony/yaml 从 v8.0.8 到 v8.1.0
- 更新 composer/pcre 从 3.3.2 到 3.4.0
- 更新 ergebnis/agent-detector 从 1.1.1 到 1.2.0
- 更新 friendsofphp/php-cs-fixer 从 v3.95.1 到 v3.95.11
- 更新 symfony/console 从 v8.0.8 到 v8.1.0
- 更新 symfony/deprecation-contracts 从 v3.6.0 到 v3.7.0
- 更新 symfony/event-dispatcher 从 v8.0.8 到 v8.1.0
- 更新 symfony/event-dispatcher-contracts 从 v3.6.0 到 v3.7.0
- 更新 symfony/filesystem 从 v8.0.8 到 v8.1.0
- 更新 symfony/finder 从 v8.0.8 到 v8.1.0
- 更新 symfony/options-resolver 从 v8.0.8 到 v8.1.0
- 更新 symfony/polyfill-intl-grapheme 从 v1.36.0 到 v1.38.1
- 更新 symfony/polyfill-intl-normalizer 从 v1.36.0 到 v1.38.0
2 months ago
韩天峰
cd37d26e64
feat(generator): 添加匿名类生成器支持命名空间类型解析
...
- 新增 AnonClassGenerator trait 处理匿名类类型名称解析
- 实现匿名类内部类型引用转为全限定名称的功能
- 添加处理命名空间 use 导入的类型匹配逻辑
- 重构嵌入代码生成方法到独立 trait 中
- 添加匿名类继承和接口实现的全限定名称转换
- 新增测试用例验证匿名类在命名空间中的行为
2 months ago
韩天峰
1ec0f3a2e0
chore(build): 更新版本号并优化打包脚本
...
- 添加 clean-elf.sh 脚本用于删除临时 ELF 可执行文件
- 将 swoole/phpx 依赖从 ~2.3.6 更新到 ~2.3.7
- 从打包清单中移除 composer.lock 文件
- 将版本号从 1066 更新到 1069
2 months ago
韩天峰
5e1c44832c
chore(version): 更新版本号从 1064 到 1066
...
- 将 version.txt 中的版本号从 1064 更新为 1066
2 months ago
韩天峰
0647b6425a
fix(php): 修复类常量解析和对象转换功能
...
- 添加对 self::class、parent::class 和 static::class 的支持
- 实现 parent::class 的继承链验证和错误处理
- 禁止使用 static::class 并提示编译时无法解析
- 移除 objval() 函数中的冗余参数验证逻辑
- 为 self::class 和 parent::class 场景添加测试用例
- 更新版本号至 1064
- 添加 yield 示例代码文件
3 months ago
韩天峰
d082de3f6e
chore(version): 更新版本号
...
- 将版本号从 1061 更新为 1063
3 months ago
韩天峰
cdd0b05bf7
test(analysis): 添加SSA分析相关组件的单元测试
...
- 添加SsaFlags常量值的测试验证
- 添加SsaVar对象创建和默认值的测试
- 添加PiConstraint约束条件的测试用例
- 添加SsaBlock基本块结构的测试验证
- 添加VarState变量状态管理的测试
- 添加SsaBuilder构造器基础功能测试
- 添加控制流图CFG构建的测试用例
- 添加goto语句和标签处理的测试
- 添加类型约束构建buildPiConstraints的测试
- 添加
3 months ago
韩天峰
8950c6d51d
fix(compiler): 优化数组编译避免复制操作并更新依赖版本
...
- 在数组编译过程中添加临时变量清理机制,避免数组复制操作
- 将 phpx 依赖从 2.3.1 版本更新至 2.3.3 版本
- 更新翻译器版本号从 0.2.0 至 0.2.3
- 提升内部版本计数器从 1058 至 1060
- 添加新的数组功能测试用例
3 months ago
韩天峰
bbb43664fc
test(aot): 添加trait测试用例和decimal类型toString方法测试
...
- 新增单个trait简单方法测试用例,验证const数组和方法调用功能
- 添加decimal类型toString方法测试用例,验证浮点数转字符串功能
- 更新版本号从1057到1058
3 months ago
韩天峰
28d1432664
refactor(type): 移除不必要的类实例断言检查
...
- 删除了 MapType 类中冗余的 get_class 断言验证
- 简化了类型比较逻辑,提升代码简洁性
- 更新版本号从 1055 到 1057
3 months ago
韩天峰
c77d3ca273
chore(version): 更新版本号
...
- 将版本号从 1054 更新为 1055
3 months ago
韩天峰
31bd1ae256
fix(php): 修复严格类型声明和类型检查逻辑
...
- 移除未使用的 strictTypes 属性
- 在 declare(strict_types=0) 时抛出错误,只支持 strict_types=1
- 简化类型赋值检查逻辑,统一类型相同时可赋值
- 移除宽松类型转换警告相关代码
3 months ago
韩天峰
588cd85ca4
chore(deps): 更新 swoole/phpx 依赖版本
...
- 将 swoole/phpx 从 ~2.1.5 升级到 ~2.1.6
- 更新项目版本号从 1051 到 1053
4 months ago
韩天峰
b17b4acbac
feat(build): 添加 Windows 资源文件支持功能
...
- 在 .gitignore 中添加 node_modules 目录
- 在 Msvc.php 中添加 compileResourceFile 方法用于编译 .rc 资源文件
- 新增 package.json 配置文件及 svg-to-ico.js 转换脚本
- 在 project.yml 中添加 Windows 资源文件配置示例
- 添加 swoole-logo.svg 图标文件
- 在 Translator.php 中集成资源文件生成功能
- 实现资源文件编译和链接到最终可执行文件的流程
- 更新版本号从 1049 到 1051
4 months ago
韩天峰
954c0f399b
feat(build): 更新 Windows 打包脚本以支持新示例和配置文件
...
- 在打包列表中添加 composer.json 文件
- 增加对 tetris-win32 示例项目的复制支持
- 实现文件扩展名排除功能以过滤 .obj 目标文件
- 更新 copyDirectory 函数以支持扩展名过滤参数
- 修改打包清单显示以反映新增的配置文件和示例
- 将版本号从 1035 更新至 1049
4 months ago
韩天峰
6cc40059e0
feat(game): 将俄罗斯方块游戏重构为纯PHP逻辑实现
...
- 移除原有的C++游戏逻辑,将所有游戏状态管理转为PHP实现
- 添加TetrisBoard类处理游戏核心逻辑(碰撞检测、方块锁定、消除行等)
- 添加TetrisRenderer类负责Win32图形渲染
- 定义完整的俄罗斯方块形状和颜色常量数组
- 实现键盘控制(左右移动、旋转、硬降等功能)
- 添加计分系统和等级计算功能
- 更新C++层仅提供Win32 API封装(窗口创建、绘图原语等)
- 修改游戏主循环处理Windows消息和自动下落逻辑
- 添加游戏结束检测和重新开始功能
4 months ago
韩天峰
8f45f9a803
chore(version): 更新版本号从 1003 到 1035
...
- 将 version.txt 文件中的版本号从 1003 更新为 1035
4 months ago
韩天峰
673f3b3dc5
refactor(preprocessor): 重构参数声明生成逻辑
...
- 添加 genArgumentDeclaration 方法统一处理参数声明格式
- 将参数声明逻辑从多个位置提取到独立方法中
- 简化可变参数和普通参数的声明处理流程
- 更新版本号从 1002 到 103
- 删除废弃的示例文件 test1.cc
- 添加混合类型声明的测试用例
4 months ago
韩天峰
3460c1e435
feat(build): 更新打包脚本以支持版本号自动递增
...
- 移除硬编码的输出文件名
- 添加基于版本号的动态输出文件命名
- 在打包过程中显示当前版本和输出文件信息
- 添加版本文件初始化,当前版本为1002
4 months ago