Commit Graph

167 Commits

Author SHA1 Message Date
pjh123 27b7f28726 test: compile_multiple_stmts 锚按 D-11 放宽为存在性断言
DCE 默认开启删除死 '1; 2' 链的 LOAD_CONST,仅剩顶层值 '3'。
精确计数断言 load_count >= 3 实测失败,放宽为 any(LOAD_CONST)。
2026-08-06 12:16:51 +08:00
pjh123 d1bfae2723 feat: Compiler 增加 enable_dce 字段与 with_dce 开关(D-10)
- unit struct 改带字段 struct,new() 默认开启 DCE
- compile 在 emit 与 lower 之间插入 oxide_dce::dce(nested 不递归 D-03)
- Cargo.toml 追加 oxide_dce path 依赖;dev 环经 resolver v2 解析通过
2026-08-06 11:45:26 +08:00
pjh123 263fd255b6 docs: 添加 Rustdoc 注释 2026-08-05 21:46:47 +08:00
pjh123 7c8f19f61a refactor: 拆分 oxide_emit 为独立 emit pass crate(依赖倒置) 2026-08-05 20:13:18 +08:00
pjh123 4f670eb7fd refactor: 拆分 oxide_ir 为独立 crate 2026-08-05 19:34:44 +08:00
pjh123 3ae2eeee42 refactor: 拆分闭包分析与预扫描模块,拆分函数体编译子步骤 2026-08-05 19:29:02 +08:00
pjh123 050f75c952 fix: 完善闭包捕获(cell 索引稳定、参数遮蔽、函数/类名捕获、b 槽立即数) 2026-08-05 19:19:29 +08:00
pjh123 179960ed75 fix: 重写闭包捕获分析为 AST 级,修复 MAKE_CELL 时序 2026-08-05 18:41:48 +08:00
pjh123 0028a1787e chore: 清理过时 dead_code 标注与空代码块 2026-08-05 18:26:46 +08:00
pjh123 1171c53ff6 test: 补 IR 结构测试 2026-08-05 18:03:21 +08:00
pjh123 90f932680d test: 补薄弱域字节码断言测试 2026-08-05 18:01:42 +08:00
pjh123 76e650ce82 refactor: 抽取 assemble_ir 共用出口组装 2026-08-05 17:55:32 +08:00
pjh123 f34f791b9a refactor: 原子切换 emit 产出符号化 IR 2026-08-05 17:52:42 +08:00
pjh123 ef3cd65eb6 feat: 实现 IRFunction 到字节码的 lowering 转换 2026-08-05 17:24:35 +08:00
pjh123 e9e1ad8acd feat: 新增 Operand/Inst/IRFunction 类型系统与构造 API 2026-08-05 17:17:51 +08:00
pjh123 c250f5cb2b fix: 修复编译阶段缺失的预注册顶层 var 名步骤 2026-08-05 15:21:00 +08:00
pjh123 dce335e766 fix: 逐个按顺序处理 field 与 block 以符合 JS 类元素源码顺序语义 2026-08-05 15:04:44 +08:00
pjh123 94576d60c5 fix: 编译阶段预扫描 builtin 避免寄存器分配问题 2026-08-05 13:28:51 +08:00
pjh123 77d11fb18c refactor: 单趟编译收尾 2026-08-05 10:27:30 +08:00
pjh123 489fe5e6bb refactor: 移除 class 计数辅助 2026-08-05 10:27:29 +08:00
pjh123 76fb0b5b88 refactor: 移除表达式计数辅助 2026-08-05 10:27:29 +08:00
pjh123 c4ea84bda1 refactor: 移除迭代计数辅助 2026-08-05 10:27:29 +08:00
pjh123 fd978b7ef8 refactor: 移除语句跳转计数辅助 2026-08-05 10:27:28 +08:00
pjh123 dfc14cfce9 refactor: 移除简单表达式计数辅助 2026-08-05 10:27:28 +08:00
pjh123 198bb7d428 refactor: 移除语句计数辅助 2026-08-05 10:27:28 +08:00
pjh123 c4ea281985 refactor: 模块编译改单趟完成 2026-08-05 00:49:13 +08:00
pjh123 b043c0272b refactor: 逻辑赋值跳转改经 fixup 解析 2026-08-05 00:42:02 +08:00
pjh123 3bbdc3f562 refactor: 可选链跳转改经 fixup 延迟发射 2026-08-05 00:38:11 +08:00
pjh123 f51eaca6a8 refactor: 逻辑运算跳转改经 fixup 延迟发射 2026-08-05 00:34:39 +08:00
pjh123 7519f3e9c3 refactor: 循环跳转改经 fixup 延迟发射 2026-08-05 00:30:45 +08:00
pjh123 865bf8091a refactor: 控制流跳转改经 fixup 延迟发射 2026-08-05 00:24:12 +08:00
pjh123 b413bd7890 feat: 编译器新增延迟跳转 fixup 机制 2026-08-04 21:10:10 +08:00
pjh123 aee2db5cf3 refactor: 拆分 class 相关编译逻辑 2026-07-05 19:13:58 +08:00
pjh123 ea70e3965d refactor: 清除旧代码并展开 crate 2026-07-05 18:43:22 +08:00
pjh123 e57d09d751 fix: 修复 SET_PROP_DYNAMIC 额外寄存器计数问题 2026-07-05 15:55:27 +08:00
pjh123 d608fc3236 refactor: 按逻辑归类 emit 和 count 函数,并消除通配导入 2026-07-05 15:35:58 +08:00
pjh123 194d65c2b5 refactor: 拆分编译流水线过程以避免逻辑漂移 2026-07-05 14:41:08 +08:00
pjh123 435674d961 fix: 接通透传闭包值链路 2026-06-30 23:57:22 +08:00
pjh123 991e6040e5 fix: 修复闭包值传递链路 2026-06-30 22:52:25 +08:00
pjh123 655bc8516e fix: 分析时跳过继承作用域,避免将外层 var 误判为嵌套函数本地变量 2026-06-30 22:05:46 +08:00
pjh123 77a52bf7e8 fix: 修复嵌套函数调用并接通闭包捕获链路 2026-06-30 21:52:18 +08:00
pjh123 c9016ee662 style: 自动格式化 2026-06-30 20:49:56 +08:00
pjh123 f9449c52e3 fix: 修复嵌套函数调用并接通闭包捕获链路 2026-06-30 20:49:23 +08:00
pjh123 dcc3b610e9 style: 自动格式化 2026-06-30 20:04:27 +08:00
pjh123 c58aae4862 feat: 搭建闭包捕获基础设施 2026-06-30 19:58:58 +08:00
pjh123 930b14b3f0 fix: count pass 注册顶层 var 名,hoisted 函数声明可解析外层 var 2026-06-30 16:37:50 +08:00
pjh123 ccc527af71 fix: 顶层 count pass 镜像 emit 的函数提升顺序,消除跳转目标漂移导致的死循环 2026-06-30 16:01:00 +08:00
pjh123 d5c292d33f style: 修复 clippy --all-targets 告警 2026-06-30 15:18:13 +08:00
pjh123 8d23c83ce2 fix: 对齐 ?? 与静态成员复合赋值的 counter/emitter 计数,并加 projected_pc 断言 2026-06-27 21:07:16 +08:00
pjh123 03c9809c30 fix: 对齐 class 体 counter/emitter 指令条数,修私有方法、计算键、派生构造器字段注入位置的跳转漂移 2026-06-27 20:50:12 +08:00