pjh123
|
ae73fb8da5
|
feat: 异常与 return 穿越释放资源,dispose_count 门控
|
2026-10-09 19:14:36 +00:00 |
|
pjh123
|
372bb80cfd
|
style: 修 rustfmt 格式化差异
|
2026-10-07 17:14:42 +00:00 |
|
pjh123
|
30a5600466
|
refactor: 运行时符号键调用点改经 realm 维度编码
|
2026-10-07 03:22:52 +00:00 |
|
pjh123
|
c6bc93a076
|
refactor: realm 与 Vm 生命周期解耦,Vm 持 Arc<Realm>
|
2026-10-07 01:35:16 +00:00 |
|
pjh123
|
14ef287a75
|
refactor: 提取 Realm 组合类型,session 与 GC 及原型槽归 realm
|
2026-10-07 00:13:24 +00:00 |
|
pjh123
|
26a46f802b
|
refactor: 退役三族挂起快照克隆重写与指针重写死函数
|
2026-10-02 23:01:13 +00:00 |
|
pjh123
|
ab0b874281
|
refactor: 晋升族整文件退役加生产调用点清理
|
2026-10-02 16:55:04 +00:00 |
|
pjh123
|
5c8699733d
|
refactor: 收集路径原地化退役移动式sweep与门控
|
2026-10-01 09:06:23 +00:00 |
|
pjh123
|
c671a6cfb0
|
refactor: for-in 迭代器体脱离 epoch arena 改堆上 Box 独占释放
|
2026-09-29 16:10:15 +00:00 |
|
pjh123
|
87d43cd180
|
refactor: 对象分配统一入口并新增会话分配入口
|
2026-09-29 14:23:07 +00:00 |
|
pjh123
|
9ab19fb472
|
feat: for-await-of 逃出关闭异步 await return() 结算后恢复帧
|
2026-09-27 19:48:19 +00:00 |
|
pjh123
|
ac13b1a285
|
feat: 异步生成器 yield* 走异步迭代协议按规范结算
|
2026-09-27 18:06:36 +00:00 |
|
pjh123
|
78953e338b
|
fix: upvalue cell 参与 mark-sweep 回收,闭合长 run 死闭包 cell 泄漏
|
2026-09-26 18:27:21 +00:00 |
|
pjh123
|
d4ed76855e
|
fix: fmt 收口与 clippy ptr_eq 收敛,padStart 测试期望对齐码元口径
|
2026-09-25 04:59:51 +00:00 |
|
pjh123
|
2920c77148
|
feat: 补齐动态函数构造器族与原型对象
|
2026-09-24 22:36:54 +00:00 |
|
pjh123
|
d93215c83b
|
feat: 补全 Object.prototype 方法族与 toString 标签
|
2026-09-21 03:30:25 +00:00 |
|
pjh123
|
d9c469e9d0
|
fix: 子模块表代际注册表——跨 run 存活函数按创建期表代解析子模块,索引悬空与静默错模块闭合
|
2026-09-12 19:27:22 +00:00 |
|
pjh123
|
473f73a1f6
|
fix: 原生盒 mark 边收集去对象预过滤——盒内字符串/BigInt 边并入 live 标记闭合 sweep 悬垂
|
2026-09-12 18:10:03 +00:00 |
|
pjh123
|
390b72e3bd
|
perf: 执行期 GC 收集——扩展 mark 跟随 epoch 臂、活 epoch 对象晋升 session(克隆体置活防同轮原地 sweep 误放)、死 session 对象原地释放出表,for-in 门控(活跃迭代器 + 挂起状态盒)与分配包络水位触发
|
2026-09-12 00:25:56 +00:00 |
|
pjh123
|
b17119ce16
|
fix: 脏重建方法 wrapper/构造器/global 槽跨轮复用迁移——FnWrapperKey 四分件键(加 label 消解同名原型 next/return/throw 碰撞)登记表继承止 S2 每轮 wrapper 无界累积,global 槽原位更新堵住旧构造器滞留 UAF 与每轮 +3 槽无界增长
|
2026-09-11 18:06:19 +00:00 |
|
pjh123
|
227dfe008f
|
fix: test262 runner 进程 RSS 无界增长——session 收尾统一释放内建裸堆区/upvalue 别名 + 每测试分配上限 256MiB(任务 116)
- 泄漏修复:KernelSession 收尾(teardown_intrinsic_protos/free_session_upvalues)
释放内建对象 Box::into_raw 裸堆区(release_raw_heap 四区置空幂等)与
session upvalue 原件/晋升克隆别名去重释放;bindings 原生盒负载边、
session_gc 边记录、vm_props 属性区同步收尾
- 失控测试封顶:runner kernel max_alloc_bytes=256MiB(dispatch 采样口径
run_alloc_bytes/run_alloc_bytes_full),超限计 memory-limit 失败而非拖垮
进程 RSS(arena 高水位 GB 级 × 多 worker = 宿主 OOM)
- 归属:RSS 泄漏 pre-existing(HEAD 无 WIP 同现);identifiers escaped
unicode 挂死族另立 B132(pre-existing,supervise 超时自愈)
- 验证:build/clippy/四 crate 测试全绿零新增告警;language 前 5000 测试
单窗峰值 330MB(旧 ~4.5MB/测试 单调增长→88GB OOM 签名消失),
窗口间峰值 0.17-1.6GB 有界、逐测试释放回基线
|
2026-09-11 03:55:59 +00:00 |
|
pjh123
|
a5258f2739
|
fix: intrinsic ctor prototype 属性指向 P 槽唯一实例——消除 Box 释放悬垂与实例 [[Prototype]] identity 分裂
|
2026-09-11 02:02:41 +00:00 |
|
pjh123
|
469ef7543b
|
perf: GC 字节账目补齐 + is_epoch_ptr O(1) + 分配热路径触发
|
2026-08-22 08:10:32 +08:00 |
|
pjh123
|
95155ce450
|
fix: Promise rejection reason 异常值通道配对修复——create_error 辗转路径归正为 create_from_text
|
2026-08-21 23:34:04 +08:00 |
|
pjh123
|
f1c4b33735
|
feat: Iterator.prototype 返回迭代器方法(map/filter/take/drop/flatMap)
|
2026-08-16 16:38:45 +08:00 |
|
pjh123
|
744899aae9
|
fix: for-of/for-in 提前退出时按规范顺序完成 IteratorClose
return/break/continue 逃出 for-of 时此前完全不执行 IteratorClose:
BREAK/CONTINUE/RETURN 指令现在经 ext 字携带词法逃出的迭代器层数
(for-of + for-in 各 16 位),运行时在全部 finally 穿越之后、真正
跳转/返回之前按 LIFO 关闭——与规范 §13.7.5.4(循环体完成值已含
内部 try-finally 处理,IteratorClose 在后)顺序一致。
- emit 词法:LabelCtx 增加 for-of/for-in 深度计数,loop/switch/label
打开时快照,break/continue/return 按当前深度减目标深度计算逃出层数
(switch 内 break 以 switch 打开点为基准,目标循环自身不计入)
- 指令编码:brk/cont/ret 三参构造,lower 跳转路径补发 ext 字
- 运行时:dispatch_break/continue/return 读取逃出计数,无 finally 时
直接关闭后跳转/返回,有 finally 时随 Completion 悬挂由 TRY_FINALLY_END
在穿越完成后消费;生成器 .return()/.throw() 注入经 complete_generator_return
全关快照栈迭代器;return() 抛错经 unwind 替代完成值并关闭剩余迭代器
- 顺带:for-in 逃出残留(无 return() 语义,仅弹栈);for-await-of 的
异步迭代器不做同步关闭(return() promise 须 await,走异步机制)
- 新增 15 项回归测试:return/labeled break/continue/switch/while/finally
顺序/抛错优先/生成器注入/for-in/for-await-of 嵌套
|
2026-08-16 09:31:39 +08:00 |
|
pjh123
|
9e8ee96491
|
fix: 生成器状态盒深拷贝消除 sweep/promote 共享所有权 UAF,full_reset 补释放 session 堆数据
GeneratorState 状态盒此前由 epoch 原对象独占释放,promote 与 sweep 克隆
浅拷贝 native_data 共享同一盒,旧对象 drop 即悬垂。新增 clone 深拷贝
(参照 async_generator),promote/sweep 两处接入,恢复执行读新盒;
full_reset 在 session arena 重置前遍历 session 对象释放堆数据,
配合深拷贝形成单所有权。补 sweep/promote/full_reset 三回归与
生成器捕获闭包跨 GC 回归。
|
2026-08-15 19:02:39 +08:00 |
|
pjh123
|
dd930bc39d
|
fix: generator resume 错误路径归还 native_call_depth 防执行期 GC 永久跳过
|
2026-08-15 14:53:07 +08:00 |
|
pjh123
|
7362137720
|
chore: 清理 oxide_vm clippy 告警
|
2026-08-14 05:26:46 +08:00 |
|
pjh123
|
57a3148d77
|
perf: 数组回调字节码调用改寄存器窗口复用减少搬移
|
2026-08-13 20:11:09 +08:00 |
|
pjh123
|
a968b89658
|
fix: 异常兜底路径经 create_from_text 恢复错误类型(不塌缩普通 Error)
|
2026-08-10 20:19:51 +08:00 |
|
pjh123
|
9d18eb2533
|
refactor: GeneratorState 收敛到 SuspendedFrame(save/restore/GC 遍历/string 边)
|
2026-08-10 13:28:14 +08:00 |
|
pjh123
|
5ced83e8c0
|
feat: async-generator 语义(async function*),yield/await 共存 + next 返回 Promise
- emit 识别 generator+async 组合,模块同时标记 is_generator/is_async
- 新增 AsyncGeneratorState:帧快照 + 请求队列 + 当前请求
- next/return/throw 返回 Promise,请求入队逐条处理
- YIELD 让出经 promise unwrap 后交付(yield rejected promise 关闭生成器)
- AWAIT 挂起保留当前请求,微任务恢复后继续执行
- %AsyncGeneratorPrototype% / %AsyncGeneratorFunction.prototype% 内建
- session GC / promote 支持异步生成器状态盒
- 普通 async 函数嵌套调用隔离外层异步生成器上下文
|
2026-08-10 01:52:03 +08:00 |
|
pjh123
|
538a5670dc
|
feat: Promise 基础子系统 + 微任务队列(resolve/reject/then/catch/finally + run() drain)
|
2026-08-09 21:08:53 +08:00 |
|
pjh123
|
464712f7ba
|
feat: 实现 yield* 委托语法(内层迭代器 next/return/throw 转发)
|
2026-08-09 20:00:16 +08:00 |
|
pjh123
|
783e89e4cb
|
feat: 生成器基础支持(YIELD 帧快照挂起/恢复 + GeneratorPrototype next/return/throw)
- 新增 YIELD/SUSPEND_BODY opcode;function* 识别与 yield emit
- GeneratorState 全量快照 VM 执行上下文(regs/pc/bytecode/spill/save/try/cell 栈段/迭代器)
- 调用时参数初始化(默认值/解构副作用与异常在 g() 时刻生效)
- %GeneratorPrototype%/%GeneratorFunction.prototype% 内建对象与 next/return/throw
- session GC trace 生成器状态 JsValues;闭包捕获分析补 yield/赋值目标扫描
|
2026-08-09 18:02:08 +08:00 |
|