pjh123
|
9981086424
|
fix: SUPER_CALL 后构造实例 proto 设为 new.target.prototype(子类化内建)
|
2026-08-07 18:41:34 +08:00 |
|
pjh123
|
5c385c2b1c
|
fix: 闭包捕获分析补扫 catch 参数解构模式的表达式引用
|
2026-08-07 18:32:05 +08:00 |
|
pjh123
|
e6886eb1d0
|
feat: 实现整数索引读取与 for-of 迭代(get_iterator 支持)
|
2026-08-07 18:10:19 +08:00 |
|
pjh123
|
2b7b9afcc8
|
fix: REST_OBJECT 提前消费 ext 字防 ToObject 早返回后 pc 错位
|
2026-08-07 18:00:59 +08:00 |
|
pjh123
|
93942a1aa5
|
fix: REST_OBJECT 对原始类型 ToObject(number/boolean/symbol 空对象,string 索引字符)
|
2026-08-07 17:50:49 +08:00 |
|
pjh123
|
df69213849
|
fix: builtin 槽 vreg 预着色恒等排除出可分配集防 prologue 覆写
|
2026-08-07 17:40:09 +08:00 |
|
pjh123
|
76b3bcf6eb
|
fix: 顶层模块 param_layout.base 改 0 防父槽误判 + regalloc/VM 诊断日志
|
2026-08-07 17:13:57 +08:00 |
|
pjh123
|
38c569c1da
|
fix: catch 参数支持解构 pattern(数组/对象/默认值)
|
2026-08-07 16:27:48 +08:00 |
|
pjh123
|
344a2a17e3
|
fix: 闭包捕获 let/const 的 cell 未初始化(TDZ)读取抛 ReferenceError
|
2026-08-07 16:19:35 +08:00 |
|
pjh123
|
fca660110d
|
fix: LOAD_UPVALUE 的 uv_idx 改 Imm 编码避免被 RegAlloc 重写
|
2026-08-07 16:09:17 +08:00 |
|
pjh123
|
66c952d2b2
|
feat: 实现默认参数(形参 initializer 与解构默认值)
|
2026-08-07 15:26:25 +08:00 |
|
pjh123
|
192b697335
|
fix: 数组元素访问器属性触发 getter 并透传异常
|
2026-08-07 15:05:44 +08:00 |
|
pjh123
|
de67cc8eee
|
fix: 链式 upvalue 捕获支持多层嵌套函数引用深层变量
|
2026-08-07 14:56:51 +08:00 |
|
pjh123
|
710c8c8a2c
|
fix: 闭包 upvalue cell 占位稳定化修复错读调用方表
|
2026-08-07 14:38:47 +08:00 |
|
pjh123
|
61d39b6536
|
fix: Function.prototype.call 的 native 错误转 JS 异常可被捕获
|
2026-08-07 13:45:39 +08:00 |
|
pjh123
|
0ce089b522
|
chore: 锁定 oxc_semantic 依赖
|
2026-08-07 12:27:32 +08:00 |
|
pjh123
|
c0ea2d3eb1
|
fix: 函数 name 属性与 harness 重复 Test262Error 定义
|
2026-08-07 12:22:59 +08:00 |
|
pjh123
|
b26715742f
|
feat: 引入 oxc_semantic 早期错误检查与 onlyStrict 注入
|
2026-08-07 12:04:46 +08:00 |
|
pjh123
|
91528d9c19
|
feat: 迭代协议支持对象字面量 computed key 与 upvalue 捕获
|
2026-08-07 10:49:24 +08:00 |
|
pjh123
|
fd94ff6931
|
fix: 子模块全局扁平化根治逃逸闭包上下文错位
|
2026-08-07 10:49:15 +08:00 |
|
pjh123
|
98b07687f0
|
fix: CREATE_CLOSURE 越界改运行时错误防进程中断
|
2026-08-07 00:42:33 +08:00 |
|
pjh123
|
f10010869e
|
fix: new 构造入口补齐 sub_modules 上下文切换
|
2026-08-07 00:38:50 +08:00 |
|
pjh123
|
dd5607ce1a
|
fix: inline 回调支持 upvalue 闭包上下文
|
2026-08-07 00:23:35 +08:00 |
|
pjh123
|
710965b7f2
|
fix: new 构造 cell_stack 失衡与子模块 immutables 缓存失步
|
2026-08-07 00:15:09 +08:00 |
|
pjh123
|
31e28a03a6
|
docs: 补充注释与格式化
|
2026-08-06 23:10:27 +08:00 |
|
pjh123
|
e36a69976e
|
refactor: 清除 color() 冗余干涉图构建 + use_points 改用精确 use 判定
- color() 入口移除无用的 graph::build(run 内重建),删掉 _graph 参数
- graph.rs reg_count 改名 inst_count(实为指令数)
- use_points 由 live_before 活集改为 inst.use_regs() 精确 use 点,消除冗余 UNSPILL,spill 压力测试 38s→6s
|
2026-08-06 20:41:01 +08:00 |
|
pjh123
|
d65fa03de6
|
fix: nested 子模块引用父槽无预着色保护致读错物理槽
子模块 alloc 时引用父槽的 LOAD_VAR.a/STORE_VAR.rd 被当作自身 vreg 染色移走,
父侧 collect_escaped 只保护父不移动槽,子侧无对称保护。以 param_layout.base
(inherited_reg_start 分界)识别父槽引用并预着色恒等,spill 自由色排除。
新增 nested_parent_slot_regress 回归测试(field/method + 高压力变量),
workspace 全绿 + clippy 干净。
|
2026-08-06 20:34:55 +08:00 |
|
pjh123
|
c47a0a73d1
|
test: vreg 超 253 高复用复现样例 + n_registers 汇总断言
|
2026-08-06 19:33:16 +08:00 |
|
pjh123
|
50b843a72a
|
fix: 调用参数打包连续寄存器 + 捕获参数建 cell + TEMPLATE_STR ext 重映射(修复 JSON/closures/template 回归)
|
2026-08-06 19:33:05 +08:00 |
|
pjh123
|
d3385bc838
|
feat: 管线接入 liveness/精确DCE/RegAlloc + --no-regalloc flag(D-17/D-18)
|
2026-08-06 17:56:55 +08:00 |
|
pjh123
|
08f061dfd3
|
feat: 指令改写 + 元数据回写 + alloc 入口,RegAlloc on/off 运行时等价(D-16/D-20)
|
2026-08-06 17:44:31 +08:00 |
|
pjh123
|
0b0d36fa85
|
feat: 新增 oxide_regalloc crate,干涉图 + graph coloring + spill 拆分(D-09/D-10/D-11)
|
2026-08-06 17:13:27 +08:00 |
|
pjh123
|
9d619cd9bb
|
feat: liveness 驱动的精确二轮 dce_precise + is_top_level 标志(D-17/D-19/D-20)
|
2026-08-06 16:55:26 +08:00 |
|
pjh123
|
fd267816f4
|
feat: 新增 MOV/SPILL/UNSPILL 执行语义 + spill 栈帧边界(D-06/D-07/D-08)
|
2026-08-06 16:51:01 +08:00 |
|
pjh123
|
59d2c93bff
|
feat: 新增 oxide_liveness crate,CFG 数据流 liveness + 逐指令 live range(D-15)
|
2026-08-06 16:41:57 +08:00 |
|
pjh123
|
c46f7023c6
|
feat: 新增 MOV/SPILL/UNSPILL opcode 登记 + 构造 API + 契约层(D-06/D-07)
|
2026-08-06 16:34:25 +08:00 |
|
pjh123
|
224d1347eb
|
refactor: 寄存器号 u8→u32 全链放宽,vreg 化去 checkpoint/reg_overflow
|
2026-08-06 16:31:16 +08:00 |
|
pjh123
|
5988696f5b
|
fix: const 声明 STORE_VAR 恒 b=0 致寄存器复用误抛
|
2026-08-06 16:03:09 +08:00 |
|
pjh123
|
be91604fef
|
fix: upvalue_captures 按名字排序,修复 HashSet 非确定顺序致 LOAD_UPVALUE 错位
|
2026-08-06 14:29:04 +08:00 |
|
pjh123
|
8952c1eccd
|
test: 迁移 lowering 测试到 oxide_ir(测试随实现落位)
|
2026-08-06 14:11:54 +08:00 |
|
pjh123
|
6db19bb693
|
test: 各 Pass 模块补模块级单测,测试随实现拆分
|
2026-08-06 14:09:03 +08:00 |
|
pjh123
|
77f819a826
|
refactor: 拆分寄存器契约(def/use/is_pure)为 contract 独立模块
|
2026-08-06 14:05:53 +08:00 |
|
pjh123
|
54720a9bfc
|
refactor: 拆分单文件为三 Pass 独立模块(可达性/迭代删除/重建)
|
2026-08-06 14:01:31 +08:00 |
|
pjh123
|
6c84ccca07
|
fix: STORE_VAR 一律判有副作用,修复顶层变量赋值被误删
|
2026-08-06 13:29:07 +08:00 |
|
pjh123
|
bca499fc39
|
fix: Compiler 改带字段 struct 后 5 处 bench 用 new() 构造
04-03 将 Compiler 从 unit struct 改为带 enable_dce 字段后,
bench 里旧语法 'Compiler.compile(...)' 编译失败(clippy --all-targets
暴露,cargo test 不编 bench)。统一改 Compiler::new().compile(...)。
|
2026-08-06 12:17:13 +08:00 |
|
pjh123
|
d210fb1610
|
fix: label 目标与 nested 逃逸变量槽保活,修复两处误删
1. label 目标指令强制保留:块头是控制流汇合点,删除使存活 JMP
的 label 引用悬空(do-while 锚暴露 'Label not found')。
2. nested 树引用的变量槽顶层写者保活:STORE_VAR 写槽可被闭包
跨函数读取(computed class field key 场景),D-03 不递归使
顶层 use 计数看不到跨函数读,误删 k 赋值致 key 变 undefined。
|
2026-08-06 12:17:06 +08:00 |
|
pjh123
|
63cec1d448
|
fix: 无条件 JMP 后继位置切成块头,修复跳转边丢失
Pass 1 仅对条件跳转切 fallthrough 后继,无条件 JMP 与其后指令
融块导致块尾判定错、Jump 边丢失,DCE 可达性误删 break 出口块
(label 悬空报 'Label not found')。JMP 后继同样置块头。
|
2026-08-06 12:16:58 +08:00 |
|
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
|
957f8f0fe7
|
chore: 更新 Cargo.lock 记录 oxide_compiler → oxide_dce 依赖
|
2026-08-06 11:49:26 +08:00 |
|
pjh123
|
7a3b354f02
|
feat: compile 子命令新增 --no-dce flag 透传 Compiler(D-10)
- Commands::Compile 追加 #[arg(long)] no_dce 字段
- compile(expr, file, no_dce) 按 flag 选择 Compiler::new().with_dce(false)
- eval/run/repl 走默认 enable_dce=true 不变
|
2026-08-06 11:48:30 +08:00 |
|