Commit Graph

96 Commits

Author SHA1 Message Date
pjh123 4f5cd25838 test: test262 runner 配置解析补分支单测 2026-09-16 15:05:40 +00:00
pjh123 1dca854ddd refactor: test262 runner 子进程监督与分块独立成模块 2026-09-16 14:52:01 +00:00
pjh123 8dcdb16219 refactor: test262 runner 统计与心跳协议独立成模块 2026-09-16 14:23:18 +00:00
pjh123 f9e5486f27 refactor: test262 runner 单测试执行管线独立成模块 2026-09-16 14:00:41 +00:00
pjh123 29fb2632da refactor: test262 runner 判定与分类独立成模块并迁回测试 2026-09-16 13:38:10 +00:00
pjh123 da02e3344b refactor: test262 runner harness 内嵌与前缀拼接独立成模块 2026-09-16 12:54:33 +00:00
pjh123 2472fa6d64 refactor: test262 runner 测试发现与跳过门独立成模块 2026-09-16 12:24:30 +00:00
pjh123 2c146aee6c refactor: test262 runner 元数据与运行配置独立成模块 2026-09-16 12:03:25 +00:00
pjh123 7feb88f14d fix: 重启保留旁路失败行按已消费偏移增量合并 2026-09-14 10:56:03 +00:00
pjh123 68d2974eb5 kernel/builtins/test262: 本批新码 clippy 三则 + fmt 归净——obfuscated_if_else(source_escape_to_key 值域判定改 if/else)、needless_range_loop(decode_uri_units 保留字符原样段改 extend_from_slice)、needless_borrows_for_generic_args(844f2f4 rename 调用两处冗余借用);fmt 漂移(compiler.rs/vm.rs 构造体折行)一并归净。七 crate clippy 零告警、fmt --check 净、七 crate 2879/1(唯一失败 compile_class_declaration 既有)、release 子集 8/8 + 2/2 终验 2026-09-14 08:18:38 +00:00
pjh123 844f2f455b oxide_test262: 监督模式旁路失败行跨子进程重启保留 + 窗口结束归档——超时/崩溃杀子进程重启时原会删掉旁路 .fails 文件,此前子进程的全部失败记录丢失,收尾 fail_records 只剩末段(全量单窗口跑实测 9374 失败仅存 6276 条),逐文件回归差分被静默破坏;现重启只重开心跳文件、旁路失败行追加保留(写序心跳先行、旁路后追加,跨重启同一测试至多重录一条,消费侧按下标去重);窗口结束旁路文件改名归档 .fails.done 而非删除,终态落盘供逐文件差分(统计已入父进程内存,归档件纯分析用途)。单测 33/0,小集合复跑记录数与失败计数逐一吻合 2026-09-14 04:03:09 +00:00
pjh123 c7a9b273fa types/vm/runner: JsString 布局补 size_of/offset_of 编译期锚(实测 32B、utf16_len@24,tag 并入载荷首字无独立索引字),eval fn-decl 抛后描述符改显式值读钉住,non-definable-global-var 复测全绿撤 skip 条目 2026-09-13 12:26:24 +00:00
pjh123 c2df6869b8 chore: test262 skip 表注释对齐 2026-09-13 09:06:14 +00:00
pjh123 1fdb7aca2d fix: eval 代码顶层函数声明撞不可写全局内置——sloppy 编译期首指令 TypeError、strict 函数声明不落全局 2026-09-13 09:05:54 +00:00
pjh123 3169e8f2f9 perf: run 签名改 &Arc<CompiledModule>,顶层模块跨 run 共享——collect_flat_modules 顶层改 Arc::clone 消除逐 run 常量池深拷贝,全调用点 Arc 包装迁移 2026-09-11 22:19:13 +00:00
pjh123 542236a15a fix: clear_transient 补清 overflow 态(id 空间完整复位)+ kernel 增加 active_vms 计数,sweep/重建/kernel-drop 三处 debug_assert 守卫'清空时点无存活 VM' 2026-09-11 21:42:55 +00:00
pjh123 a8c668002b perf: test262 runner 重建与 sweep 双钟互斥——重建迭代不再对 doomed 核白做 50k 清理,sweep 文档对齐两边界契约 2026-09-11 21:19:08 +00:00
pjh123 ed4774f436 test: 分配上限常量与错误串单测字面值机器耦合断言 2026-09-11 12:56:11 +00:00
pjh123 8913d9d030 fix: 单测试分配上限 256MiB 顶断合法大表测试——抬至 512MiB(真合法峰值 259.6MiB,留 ~252MiB 余量) 2026-09-11 11:26:36 +00:00
pjh123 3201ca5ad6 doc: 单测试分配上限注释峰值口径改为实测值(旧 132MB 无据表述作废) 2026-09-11 08:54:03 +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 31d3f59d2b fix: runner not-defined subkey 剥 vm error: 生产前缀恢复标识符提取,无前缀兜底改形态门防 negative mismatch 漂入 not-defined 桶 2026-09-10 06:42:10 +08:00
pjh123 35e6232ad6 feat: test262 runner 失败报告支持 subkey 提取与目录分组聚合——categorize_fail 双返回 (category, subkey)、not-callable 调用点/not-defined 标识符提取、IC_GET_PROP 独立成桶、目录末 3 级 top 30 + subkey top 20 输出(普通/supervise 统一,碎片桶去消息尾巴) 2026-09-10 05:02:13 +08:00
pjh123 db401ac6a0 chore: test262 补既有失败 skip 白名单(tagged-template 两项) 2026-08-22 11:22:09 +08:00
pjh123 5bedce985a feat: test262 supervise 心跳 COMPLETED 语义与 FAIL 旁路透传 2026-08-17 00:21:42 +08:00
pjh123 c7b238e518 feat: eval 全局注册与最小执行(间接 eval) 2026-08-16 22:25:33 +08:00
pjh123 0f971378f8 feat: test262 runner 失败逐路径捕获与 FAIL 清单输出 2026-08-16 20:19:02 +08:00
pjh123 fe8892079e chore: 全仓 rustfmt 格式化归拢 2026-08-16 12:50:36 +08:00
pjh123 4a1e0a3e9e fix: IC 快速路径 symbol 原始值走 Symbol.prototype 链 2026-08-16 10:31:34 +08:00
pjh123 8d78c5151b test: supervise 模式回传失败类别,汇总可按根因拆分
子进程心跳扩展失败分类计数(类别\t计数逐行写出),supervise_window
聚合为 RunStats 而非裸三计数,父进程汇总打印 FAIL categories(与
in-process 共用 print_fail_categories)。此前子进程 stdout 被丢弃、
heartbeat 只带 pass/fail/skip,categorize_fail 在 supervise 下完全
不可用,10k+ fail 无法按 VM/parse/compile 根因拆分;现在类别基线
可数据化。超时/崩溃归入 timeout/crash 类别。
2026-08-16 02:50:29 +08:00
pjh123 4e2644016b test: $262 宿主对象最小绑定 + is not defined 判定白名单化
引擎侧:绑定 $262 宿主对象(evalScript/global/gc 可用,detachArrayBuffer/
createRealm/agent 抛 not supported 而非 ReferenceError),并加入编译期
已知全局表;引用 $262.* 的测试从全量 skip 转为真实执行。

runner 侧:is not defined 不再一票吞 skip——解析错误消息中的标识符名,
仅在缺失全局白名单($262/structuredClone/queueMicrotask)内才按能力
缺失跳过;其余 is not defined 按真实失败计入,修复后应转 PASS 的
测试恢复可见。
2026-08-16 02:47:02 +08:00
pjh123 f02fae4a1c test: skip 判定收窄——receiver 校验等已实现语义错误转真实失败
judge_vm_error 抽出纯函数 classify_vm_error 并补充表驱动单测;
将 call stack size exceeded / not callable / ToPrimitive 缺口 / receiver
校验(called on non-Set 等)12 条错误子串移出 skip 列表:这些是引擎
行为与测试期望不符的真实失败,此前被误计为 skip,fail 数被系统性低估。
保留的 skip 仅限真正的能力未实现形态(not yet implemented / not
supported / NEW_EXPRESSION 等)。
2026-08-16 02:46:17 +08:00
pjh123 02b6fc44e0 chore: 清理 oxide_test262 clippy 告警 2026-08-14 05:26:56 +08:00
pjh123 df23fdff39 feat: compiler/test262 runner 接线 + 模块顶层 this 绑定
- Compiler::compile_module:Emitter::emit_program_module → 统一 IR 管线(DCE/regalloc/lower/flatten)
- CompiledModule.is_es_module:VM run 时模块顶层 this=undefined(脚本仍为全局对象)
- 全局注册 __moduleLinkGet
- test262 runner:Test262ModuleLoader(相对路径解析 + import attributes 判定 json/text/bytes),is_module 走 compile_module
2026-08-12 17:37:33 +08:00
pjh123 5d3b5d055a feat: parser 支持 ES module(parse_module)+ test262 放行 module 用例
- oxide_parser 新增 parse_module(SourceType::mjs),parse 重构为 parse_with_source_type
- oxide_test262 不再跳过 flags:[module]/features:module,module 用例走 parse_module
- 首轮实测:language/import 12 pass/35 fail(原全跳过,10/10 负向 parse 全过),
  language/module-code 248 pass/274 fail(parse-err 103/0,early-* 26/0)
- 顺带修复 oxide_test262 两个 clippy lint(single-match、unnecessary unwrap)
2026-08-12 15:15:27 +08:00
pjh123 a84738cd60 test: 最小 BigInt 落地后从排除列表移除 BigInt 2026-08-12 01:40:18 +08:00
pjh123 fab06a233d feat: Temporal ISO 日期解析器(basic/extended/扩展年)与 harness 解锁 2026-08-11 00:20:45 +08:00
pjh123 9e26a13655 feat: Temporal 解锁 + PlainDate 补齐日期派生字段与 add/subtract/equals/compare 2026-08-10 21:23:00 +08:00
pjh123 e03ec0f635 fix: 脚本顶层 var/function 声明落 globalThis(DEFINE_GLOBAL_PROP 非可配置数据属性) 2026-08-10 03:52:17 +08:00
pjh123 5a9a46483d feat: Promise 静态方法(all/race/allSettled/any + AggregateError)+ async test262 解锁
- Promise.all/race/allSettled/any:共享聚合核心,逐元素 C.resolve + Invoke(then),
  共享记录对象承载剩余计数/结果数组/能力闭包,元素处理器按模式结算
- AggregateError 内建(构造器 + prototype,Promise.any 拒绝路径依赖)
- 修复 capability_executor:能力已持有非 undefined 值时二次调用抛 TypeError
- test262 runner:移除 async flag 无条件 skip;解锁 asyncHelpers/promiseHelper/
  doneprintHandle harness;注入 print 捕获 + ,run() 后按 marker 判定
- 排除 await-dictionary(Promise.allKeyed/allSettledKeyed 2025 proposal)特性
- iterator 遍历辅助改 pub 供 oxide_vm 复用
2026-08-09 23:25:36 +08:00
pjh123 fd47cd56d0 feat: async/await 语法支持(AWAIT 帧快照挂起/恢复 + 微任务驱动 + AsyncFunction intrinsics) 2026-08-09 22:02:15 +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
pjh123 2bebd822d0 feat: TypedArray 第一批解锁(%TypedArray% 构造器、原型访问器、of/from、bind 绑参、harness) 2026-08-09 12:26:31 +08:00
pjh123 697f81dfad chore: 收窄运行时 skip(删除断言失败消息误当 skip)+ 正则依赖 lock 2026-08-07 20:19:44 +08:00
pjh123 710c8c8a2c fix: 闭包 upvalue cell 占位稳定化修复错读调用方表 2026-08-07 14:38:47 +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 31e28a03a6 docs: 补充注释与格式化 2026-08-06 23:10:27 +08:00
pjh123 50b843a72a fix: 调用参数打包连续寄存器 + 捕获参数建 cell + TEMPLATE_STR ext 重映射(修复 JSON/closures/template 回归) 2026-08-06 19:33:05 +08:00
pjh123 3246d768d9 fix: 修复 main.rs:20 悬空 doc comment 恢复 workspace 构建 2026-08-06 00:39:33 +08:00