Commit Graph

35 Commits

Author SHA1 Message Date
pjh123 f2535ffc77 perf: 字符串 +/+= 二元拼接改 Cons rope 惰性扁平化消除 O(n²)
JsString 拆 Flat/Cons 变体:Cons 经独立 ConsNode 保存左右子节点 + O(1)
字节长 + 惰性扁平化产物缓存(OnceLock 原子发布,产物挂节点生命周期)。
concat_strings 接线:总长 ≤ 128B 的小链急切扁平(与 rope 前同款,拼接即
消费场景零开销),大链 O(1) 链接——大段重复拼接从 O(n²) 拷贝降为 O(n)
链接,文本在消费点(.length/==/string_ref/方法族)首次扁平化后缓存。

GC 兼容:mark 收口 mark_string_live 传播 Cons 子节点与产物闭包(显式栈
防深链爆栈);sweep/full_reset 共用 drop 辅助连带释放产物;节点字节记账
用 O(1) byte_len。rope 节点登记 session 字符串表,与执行期字符串 GC
(指令边界触发)天然兼容。JsString 结构 32B 与 rope 前同 bin,小串路径
零结构回退;unsafe impl Send/Sync 论证同 StringPtr(perm 恒 Flat)。
2026-08-15 14:32:08 +08:00
pjh123 687c933891 feat: 拆分 stress benchmark 到细粒度单热点测试并修复 bench 采样逻辑 2026-08-13 14:27:20 +08:00
爱特每羊队 7e3d7b43b5 feat: 实现最小 BigInt 子集(字面量/算术/比较/构造器,Temporal 前置) 2026-08-10 23:02:31 +08:00
爱特每羊队 00d547b395 refactor: 清理 dead abstraction(oxide_api 空壳/空钩子/PersistentHeap/空目录) 2026-08-10 11:54:44 +08:00
爱特每羊队 dcbe3d9320 feat: Promise 基础子系统 + 微任务队列(resolve/reject/then/catch/finally + run() drain) 2026-08-09 21:08:53 +08:00
爱特每羊队 328b8a3ddc docs: 补充注释与格式化 2026-08-06 23:10:27 +08:00
爱特每羊队 a763e7ab75 feat(compiler): 管线接入 liveness/精确DCE/RegAlloc + --no-regalloc flag(D-17/D-18) 2026-08-06 17:56:55 +08:00
爱特每羊队 1a235f748b feat(cli): 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
爱特每羊队 f461235f04 docs: 添加 Rustdoc 注释 2026-08-05 21:46:47 +08:00
爱特每羊队 eba3c1efb7 feat(cli): run --repeat N 支持单进程内多次 eval 复用 Kernel
OxideJS 架构优势: 一个 Kernel + VmPool 跑 N 次 eval,
arena 每轮 O(1) reset, 内存稳定不增长

(cherry picked from commit 05d0c25aba419fa31e22b8bc325cc4b08de6c403)
2026-06-30 12:42:57 +08:00
爱特每羊队 a34d54784c feat: CLI/test262 全管线接入结构化日志 2026-06-27 09:39:08 +08:00
爱特每羊队 466a0815ca refactor: 字符串值改用 JsString 指针表示,键与字面量改用 PermInterner 2026-06-24 20:15:15 +08:00
爱特每羊队 f602ae5f00 feat: 添加基准测试基础设施 2026-06-24 10:46:59 +08:00
爱特每羊队 dbc15f6d1f refactor: 拆分 bytecode/cache crate 并模块化 counter 2026-06-23 17:06:39 +08:00
爱特每羊队 d242d08e6d refactor: 拆分 Kernel 中可变 Session 与不可变 Core 2026-06-14 12:58:09 +08:00
爱特每羊队 5d1d25074e style: 减少自动格式化换行 2026-06-09 00:53:46 +08:00
爱特每羊队 e57e140bef fix: 修复数组长度与槽位索引截断问题 2026-06-08 22:55:52 +08:00
爱特每羊队 c018bdc336 style: 自动格式化 2026-06-07 23:56:17 +08:00
爱特每羊队 9041edeb13 feat: CLI 支持 JSON 对象输出 2026-06-07 23:47:59 +08:00
爱特每羊队 f6e635cdbe refactor: 哈希表存储属性以支持无上限属性个数 2026-06-07 15:25:47 +08:00
爱特每羊队 4552bbcc57 fix: 修复 Object 的输出格式 2026-06-07 02:04:57 +08:00
爱特每羊队 382441bec4 feat: 支持 Object 成员方法 2026-06-07 01:59:30 +08:00
爱特每羊队 5c8e41352a test: 拆分 VM 测试并新增多项测试 2026-06-06 15:41:28 +08:00
爱特每羊队 ec165c4540 feat: CLI REPL 支持符号表与多行输入 2026-06-06 10:32:09 +08:00
爱特每羊队 609c838cdb fix: 修复 CLI 产生多 kernel 问题 2026-06-06 00:26:04 +08:00
爱特每羊队 f890371916 feat: 将 kernel 接入 CLI 流程 2026-06-05 23:57:09 +08:00
爱特每羊队 91d4d135fa refactor: 将基础类型定义放在单独 crate 以解决循环依赖 2026-06-05 22:50:06 +08:00
爱特每羊队 8a1d0e8dc6 feat: CLI 输出字符串两侧添加双引号以与数字区分 2026-06-05 19:54:30 +08:00
爱特每羊队 15eb2c74db feat: CLI 输出代码执行结果 2026-06-05 19:42:55 +08:00
爱特每羊队 20726da808 feat: CLI 可执行 JS 语句输出值 2026-06-05 03:31:48 +08:00
爱特每羊队 02d9fbdcfb test: 同步更新修复后语义测试 2026-06-05 03:30:27 +08:00
爱特每羊队 b65a0678f2 feat: CLI 支持 REPL 编译到字节码 2026-06-05 03:02:52 +08:00
爱特每羊队 160e972f77 feat: 添加编译器集成测试与 CLI 编译命令 2026-06-05 02:59:09 +08:00
爱特每羊队 d7807e51bd feat: 实现 CLI 程序并支持 AST 解析 2026-06-05 01:41:00 +08:00
爱特每羊队 36d3352318 chore: 搭建基础仓库架构 2026-06-05 01:06:53 +08:00