Commit Graph

913 Commits

Author SHA1 Message Date
pjh123 db0521f950 feat: Temporal.PlainYearMonth add/subtract——时长转换复用、低阶单位拒绝与按日 1 的 (年,月) 范围 2026-09-12 06:51:10 +00:00
pjh123 32cfc066f1 feat: Temporal.PlainYearMonth compare/equals——(年,月,参考日) 三元比较与 ToTemporalYearMonth 共享件 2026-09-12 05:51:03 +00:00
pjh123 4dc475d2fa feat: Temporal.PlainYearMonth.from——年-月串解析/字段 bag/实例复制与 (年,月) 范围 2026-09-12 05:38:24 +00:00
pjh123 2ebb856b1b fix: PlainMonthDay.with 部分字段转换前移至 options 读取之前 2026-09-12 04:56:52 +00:00
pjh123 5362595b17 feat: Temporal.PlainMonthDay equals/with/toPlainDate——三元比较、字段覆盖与 constrain 日期合成 2026-09-12 04:52:28 +00:00
pjh123 2fcae4fbca feat: Temporal.PlainMonthDay.from——ISO 串解析/字段 bag/实例复制与 overflow 语义 2026-09-12 04:23:44 +00:00
pjh123 e4e278dd19 feat: PlainMonthDay/PlainYearMonth toLocaleString(默认形串)与 valueOf(TypeError)绑定 2026-09-12 03:49:18 +00:00
pjh123 e33e7a1eb7 feat: PlainMonthDay/PlainYearMonth 对象地基——构造器/getter/toString/toJSON 注册与 BuiltinWorld 接线 2026-09-12 03:42:48 +00:00
pjh123 390b72e3bd perf: 执行期 GC 收集——扩展 mark 跟随 epoch 臂、活 epoch 对象晋升 session(克隆体置活防同轮原地 sweep 误放)、死 session 对象原地释放出表,for-in 门控(活跃迭代器 + 挂起状态盒)与分配包络水位触发 2026-09-12 00:25:56 +00:00
pjh123 e5538d85d6 style: 泄漏检测用例注释与输出串修正——闭包用例写入机制改为 session 直分(无克隆),kernel_lifetime 输出串去计划档编号 2026-09-11 22:24:38 +00:00
pjh123 f1d2f7cb47 test: 顶层模块共享护栏钉——平表顶层与宿主 Arc 同一实例(含 full_reset 后二次 run),run 后宿主缓冲 IC 扩展字恒零且 Vm.bytecode 为 COW 私有拷贝 2026-09-11 22:24:17 +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 22ae7e2642 chore: PermInterner 模块注释去历史叙述(写语义不写历史) 2026-09-11 21:06:59 +00:00
pjh123 a6f9a018f7 chore: rustfmt vm_support.rs 格式残留 2026-09-11 21:06:59 +00:00
pjh123 a91d490f84 perf: kernel_lifetime 复跑边界 malloc_trim 归页——第二复跑增长相免部分残留页复用(热态斜率下界),doc 注明首测基线取冷跑、超阈漂移先按滞留归因 2026-09-11 20:58:03 +00:00
pjh123 c39f35fc1e style: 死闭包 A/B 差分单测行宽归一 2026-09-11 20:53:42 +00:00
pjh123 df688f115d perf: kernel_lifetime 校准用例改 2 复跑 ×(JS 8192 对象固定段 + 191_704 唯一 14B 键增长)——11 采样点斜率首测仅记录不判定 + 旋钮 Some(262144) 端到端 + 重建后 entry_count→0 严格主锚,独立打印不进 report_series 判据 2026-09-11 20:53:42 +00:00
pjh123 389ce0e6af refactor: PermEntry 布局钉改 repr(C)——字段序(指针, 长度)连续 16B 由 repr(C) 保证(非 pack),尺寸断言即 ABI 钉 2026-09-11 20:53:42 +00:00
pjh123 55727a2e01 perf: should_rebuild_perm 改 advisory 建议上限 Option——键数超阈值(严格大于)返回 Some(阈值取 2 的幂后加倍) 供宿主重建后写入新 kernel 不再立即触顶,预设 None 恒 None,3 单测钉默认/恰阈值/未达三面 2026-09-11 20:53:42 +00:00
pjh123 c6dfa3be79 test: 死闭包双放回归单测补字节账目 A/B 差分断言——两条同构 arrow 仅 upvalue 数不同(3 vs 0),两次收集账目差即 upvalue 列表 Box 字节数,退回死分支不释放(泄漏)旧行为差分为 0 即转红 2026-09-11 20:20:00 +00:00
pjh123 c71f8bd54e perf: 增 kernel_lifetime 校准用例——专用 kernel 20 万唯一键 intern(1/4 物化)增长斜率首测基线(仅记录不判定)+ 寿命旋钮端到端 + 重建后 entry_count 200000→0 严格主锚,exit 仅由重建相确定性断言驱动 2026-09-11 20:20:00 +00:00
pjh123 5b0affe065 perf: PermEntry 瘦身——删存储侧零消费的 8B hash 字段(24B→16B,键寻址仍经 DashMap 哈希键,计算保留存储删除),get_hash 随之删除,布局以尺寸 const 断言钉死 2026-09-11 20:20:00 +00:00
pjh123 b8167d4d84 perf: kernel 寿命配置化——零消费者死旋钮 max_dead_strings 换 advisory 重建阈值 perm_interner_max_entries(预设全 None 零漂移)+ KernelCore::should_rebuild_perm 宿主边界查询,3 单测钉默认面/阈值面/未达阈值面 2026-09-11 20:20:00 +00:00
pjh123 4c3ac707f7 fix: 直 session 分配站(函数对象/prototype 子对象/标签模板数组)补 session 堆账目,配单 run 分配包络高水位 O(1) 采样锚与执行期 churn 峰值校准用例 2026-09-11 19:44:07 +00:00
pjh123 ad0405fe51 fix: full_reset/run 边界换新 Bump 替代原地 reset——旧 epoch/session arena 全量归还系统分配器、容量不跨 reset 保留,配 arena 保留锚校准用例 2026-09-11 19:43:55 +00:00
pjh123 abad859893 docs: leak 用例注释去除内部任务编号标签(RSS 残差模型说明语义内容不变) 2026-09-11 19:43:45 +00:00
pjh123 487c6a9559 fix: sweep 死对象分支释放死闭包 upvalue 列表 Box(死对象不克隆、Box 独占,恰好一次释放后置空防收尾双放),配 mem_closure_dead_leak RSS 斜率校准用例 2026-09-11 18:32:43 +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 4095ad2c1d fix: JS 重入边界 hop 计数每 64 跳强制顶层分配上限采样——堵 native 泵送小重入双上限结构性永不采样盲区 2026-09-11 16:29:38 +00:00
pjh123 f3533167b5 fix: Iterator.from 鸭子回退包装器创建时缓存 next 闭包——getter 恰触发一次,消费期零重读,getter 抛错透传 2026-09-11 16:29:35 +00:00
pjh123 ee32b2c682 fix: 选择性重建收尾重指保留对象 proto 槽并恰好释放一次被替换旧 P 对象属性区——含保活钉住对属性区,本体钉保留作重指遗漏兜底 2026-09-11 13:34:47 +00:00
pjh123 fa4ee6861b refactor: BuiltinWorld P 字段枚举抽统一入口 all_p_fields——session 收尾清单单点维护,新增字段不再漏行 2026-09-11 13:32:23 +00:00
pjh123 ed4774f436 test: 分配上限常量与错误串单测字面值机器耦合断言 2026-09-11 12:56:11 +00:00
pjh123 3c277b6a73 docs: 隐式全局写边界注对齐读写登记集并集判定
调用点现传并集命中寄存器(含读侧登记的全局槽),旧注「仅 implicit_global_writes 命中」失实。
2026-09-11 12:44:48 +00:00
pjh123 e59eec884a test: 补 do-while continue 判别性钉——continue 须直达条件位置
既有钉修复前后同值(r=4)不判别 continue 目标位置:新钉 i 到 3 触发 continue,条件直达时 3<3 为假即退得 3,continue 错指体首会跳过条件多跑一轮得 4。
2026-09-11 12:44:48 +00:00
pjh123 ef3b95f6d3 fix: for-in/for-of 左侧未声明写改读写登记集并集判定——读侧登记的全局槽漏全局对象属性写与 strict 漏抛
左侧标识符先读后写时全局槽由读侧登记,写侧单集判定不命中:sloppy 写穿透漏发(循环后读陈旧值)、strict 漏抛 ReferenceError。与其余 8 写点统一为 is_implicit_global_reg;补 3 枚判别性钉(sloppy for-in / for-of 穿透 + strict for-in 漏抛,回退单集判定必红)。
2026-09-11 12:44:24 +00:00
pjh123 cb0168faa1 test: 新增 VmRSS 斜率采样工具与 VM 创建/选择性重建两条泄漏校准用例(bench leak 按 case 过滤分派) 2026-09-11 11:35:39 +00:00
pjh123 6268275689 docs: 绑定层对象登记表字段注释对齐选择性重建继承模型(并入新 world 后仍由 session 收尾统一释放) 2026-09-11 11:26:48 +00:00
pjh123 8913d9d030 fix: 单测试分配上限 256MiB 顶断合法大表测试——抬至 512MiB(真合法峰值 259.6MiB,留 ~252MiB 余量) 2026-09-11 11:26:36 +00:00
pjh123 0302640056 fix: 调度标志经内联 state-swap 边界泄漏——C 侧无帧 accessor 调用继承属主调度上下文,构造帧弹出后误判提前交付、被调函数构造后字节码被跳过
根因:generator/async/construct 三个调度标志是 VM 全局字段,不经
InlineSyncState 在 state-swap 边界保存/恢复。C 侧路径(builtin 经
ordinary_get 无帧调用 accessor,走 call_bytecode_function_inline 状态
交换、不压边界帧)在生成器/异步属主 dispatch 上下文内运行时继承泄漏
标志;被调函数内 new 字节码构造器() 的构造帧是嵌套 dispatch 帧栈唯一
帧,构造器 RETURN 弹出后帧栈清空,do_return 的 frames.is_empty() &&
调度标志 误判为属主 dispatch,提前交付构造残留,被调函数构造点之后
的字节码整体不执行(getter 的 throw 被吞,属性读拿到 undefined)。
上层 FDI rest 绑定循环因此永不见 done,步数上限后初始化/恢复方把
异常折成通用错误。

修复:三标志纳入 InlineSyncState,新增 flag_zero 算子臂(save 快照
属主值并清零 VM 侧、restore 写回)——嵌套内联调用不继承外层调度
上下文。既有置位点全部在 save 之后、属主 dispatch 之前,语义不变;
do_return 交付条件注释同步更新。

回归钉:inline_dispatch_scoping_tests——C 侧 accessor 构造后 throw
穿透 instanceof Error、C 侧取值 42、字节码帧边界对照、顶层对照
(修复前两枚 C 侧钉失败)。
2026-09-11 11:14:10 +00:00
pjh123 430231236d fix: 未声明标识符读写混合解析——读侧登记的全局槽写不穿透全局对象
未声明名由首次引用侧登记全局槽:读侧(LOAD_GLOBAL 槽)登记后,
后的写点只查写侧集合,补全局对象属性写被跳过——条件读走全局
属性、写落脚本内寄存器,脱节成死循环;更新式/复合式/逻辑赋值的
旧值又取自入口快照槽(读从不刷新槽),先读后写算出陈旧值。

写点隐式全局判定改读写登记集合取并(7 处),RMW 旧值读前经
LOAD_GLOBAL_TYPEOF 从全局对象取当前值(缺失按 undefined,sloppy
未解析引用 GetBaseValue 语义),读侧登记集合随继承绑定传入子
函数 ctx。
2026-09-11 10:14:56 +00:00
pjh123 c0451a484a fix: do-while 的 continue 目标错指体首——改指条件位置使条件可被求值 2026-09-11 09:46:29 +00:00
pjh123 3201ca5ad6 doc: 单测试分配上限注释峰值口径改为实测值(旧 132MB 无据表述作废) 2026-09-11 08:54:03 +00:00
pjh123 54f99a292b fix: 深采样重算与手工堆账目双计——run_alloc_bytes_full base 只取 arena 计数器 2026-09-11 08:54:03 +00:00
pjh123 9493b889b6 fix: 选择性重建后被替换家族的属性区无人释放——重建点按脏标记恰好释放一次 2026-09-11 08:50:59 +00:00
pjh123 e2e68fe0ad fix: full_reset 脏重建后方法 wrapper 原型链悬空——旧 Function/Object 对保活 2026-09-11 08:50:45 +00:00
pjh123 6eb8c5aa88 bench: array_index_set 基线更新为当前可复现稳态值(旧条目系冷窗口瞬态读数) 2026-09-11 06:06:47 +00:00
pjh123 105f5085f0 bench: 基线注记生成端同步 retained 内部副本上界与 peak 采样口径 2026-09-11 06:03:12 +00:00