Commit Graph

33 Commits

Author SHA1 Message Date
pjh123 64f582d34b chore: rustfmt 全量格式化——CI fmt check 差异清零 2026-09-09 15:14:57 +08:00
pjh123 355230b745 fix: REPL 变量跨轮次丢失 —— let/const 脚本顶层写全局对象 2026-08-21 22:44:48 +08:00
pjh123 cf57285ebb feat: REPL 改进 — 消除全量历史拼接 + 单 VM 持久 2026-08-21 22:31:33 +08:00
pjh123 350b65c091 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 078688070d feat: 实现最小 BigInt 子集(字面量/算术/比较/构造器,Temporal 前置) 2026-08-10 23:02:31 +08:00
pjh123 538a5670dc feat: Promise 基础子系统 + 微任务队列(resolve/reject/then/catch/finally + run() drain) 2026-08-09 21:08:53 +08:00
pjh123 31e28a03a6 docs: 补充注释与格式化 2026-08-06 23:10:27 +08:00
pjh123 d3385bc838 feat: 管线接入 liveness/精确DCE/RegAlloc + --no-regalloc flag(D-17/D-18) 2026-08-06 17:56:55 +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
pjh123 e4a46c31bf feat: 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
pjh123 d08ed7c3dd feat: CLI/test262 全管线接入结构化日志 2026-06-27 09:39:08 +08:00
pjh123 ddffa8504e refactor: 字符串值改用 JsString 指针表示,键与字面量改用 PermInterner 2026-06-24 20:15:15 +08:00
pjh123 cdd709ef03 feat: 添加基准测试基础设施 2026-06-24 10:46:59 +08:00
pjh123 be87e4e21b refactor: 拆分 bytecode/cache crate 并模块化 counter 2026-06-23 17:06:39 +08:00
pjh123 246ad72540 refactor: 拆分 Kernel 中可变 Session 与不可变 Core 2026-06-14 12:58:09 +08:00
pjh123 f77499e5cd style: 减少自动格式化换行 2026-06-09 00:53:46 +08:00
pjh123 6cb781a3bd fix: 修复数组长度与槽位索引截断问题 2026-06-08 22:55:52 +08:00
pjh123 4a9ad7b1fa style: 自动格式化 2026-06-07 23:56:17 +08:00
pjh123 29eb9170c0 feat: CLI 支持 JSON 对象输出 2026-06-07 23:47:59 +08:00
pjh123 f725d81b36 refactor: 哈希表存储属性以支持无上限属性个数 2026-06-07 15:25:47 +08:00
pjh123 c95825d66c fix: 修复 Object 的输出格式 2026-06-07 02:04:57 +08:00
pjh123 9ca35d75e0 feat: 支持 Object 成员方法 2026-06-07 01:59:30 +08:00
pjh123 5bb50aeda9 feat: CLI REPL 支持符号表与多行输入 2026-06-06 10:32:09 +08:00
pjh123 95bca9c58b fix: 修复 CLI 产生多 kernel 问题 2026-06-06 00:26:04 +08:00
pjh123 1886840675 feat: 将 kernel 接入 CLI 流程 2026-06-05 23:57:09 +08:00
pjh123 7b862023a7 refactor: 将基础类型定义放在单独 crate 以解决循环依赖 2026-06-05 22:50:06 +08:00
pjh123 fa429f4507 feat: CLI 输出字符串两侧添加双引号以与数字区分 2026-06-05 19:54:30 +08:00
pjh123 97ec7029af feat: CLI 输出代码执行结果 2026-06-05 19:42:55 +08:00
pjh123 9e6cb0f02b feat: CLI 可执行 JS 语句输出值 2026-06-05 03:31:48 +08:00
pjh123 667e730ffe feat: CLI 支持 REPL 编译到字节码 2026-06-05 03:02:52 +08:00
pjh123 2f1d666ed6 feat: 添加编译器集成测试与 CLI 编译命令 2026-06-05 02:59:09 +08:00
pjh123 cea52a6d8d feat: 实现 CLI 程序并支持 AST 解析 2026-06-05 01:41:00 +08:00
pjh123 0741e99e1b chore: 搭建基础仓库架构 2026-06-05 01:06:53 +08:00