[1.30.0-dev] - 2026-11-02
Q+ 1.30.0-dev(spec v4.61):M2 宏 step3 单层嵌套重复、AOT traceback 12/12 + deep10、 i64 小常量累积审计(未修/回退);M3/M3b、4MiB、std.fs AOT 四批、POC4 保留;NOT PUBLISHED。
- M2 step3 单层嵌套重复(A.30.13):外层重复组必须直接引用一个变参(顺序展开),组内允许一层内层重复组 (
$( print($a); $( print($b); )* )*),内层按自身引用选择第二变参列表、逐外层元素重复;嵌套深度上限 2。 正例p34_m2_nested(m2nest!(1,2; 3,4))→134234VM/AOT 逐字节一致;p3312|348|9保持;负例 n40/n41/n42(深度>2/包装型嵌套/同层混用)rc=2+稳定消息;tools/macro_m2_test.sh→ MACRO_M2_TEST_PASS 22/0 (原 14/0);M1 39/0 不回归。未完成(loud):包装型嵌套(外层无直接引用歧义)、深度>2、固定参数+多变参、 zip/笛卡尔语义、完整递归 emit;MB 仍不完整。 - AOT traceback Round55(A.30.11,12/12 + deep10):driver 矩阵 12 个逐字节 case(tb_index_oob/tb_divzero_int/ tb_cast_overflow/tb_float_divzero/e01_div_zero/e02_assert/e03_bounds/e04_overflow/e05_oob/e06_assert/e07_indirect/ deep10)→
TRACEBACK_PARITY_PASS(12/12);deep10(10 层嵌套)实测 VM 也只打印 8 帧 →DEEP_PARITY_PASS逐字节(深度残余关闭);async trap(sys_task_*等 VM-only 原语)AOT 运行期固定消息Runtime error: runtime_error: AOT: async primitives unsupported (VM-only)、rc=1、无 traceback(设计只写 stdout+exit),VM 同程序 rc=1 无输出 → 无 VM 对照文本,driver 记为 AOT-only 诊断项TRACE_AOT_ONLY_PASS。 残余:其他 natdisp/共享 stub 错误未逐项覆盖;异常路径未穷举;不宣称全量逐字节 parity。 - i64 小常量累积(§9.5.11,未修/审计):
x=2^57; x+…×8VM=2^60 / AOT=-2^60;y=2^56; y+…×16同类;负侧一致; p19 exact boundary 仍 PASS;根因小常量(<2^58)不入 boxed i64 pool、generic ADD/SUB fast path 未 normalize;尝试 2 种插入sar3 + cg_emit_i64_normalize_inline()修法均未生效/污染自举链 → 回退(诊断mov rax,12345使 AOT 自举崩溃i64 operand invalid);需离线 qbc 重写/非自举构建新 AOT 工具或 normalize 移入稳定 helper(2–4 天)。 不宣称 i64 full/无条件 full u64。 - 1.29 扩展测试修正:f64 指数常量(
1.5e300)AOT 成功 + VM/AOT parity 实测(integration.test.js 已由 “AOT loud-fail”改为“AOT 成功 + parity”;formatter-integration.test.js 含 M2 负向排除 a9c301bb)。 - 保留:AOT async M3/M3b(A.30.7/A.30.8)、AOT text 4MiB(A.30.5,旧 2MiB 历史化)、std.fs AOT 四批 (A.30.3b)、MB 1–6 批、AOT-native POC4(A.13.3)、A.30.9 浮点残差收口(含 f64 指数常量实测)。
- T8 英文摘要:13 篇 A-20 inline
## English Summary保持;FLOAT_PARITY、MB_M04_NESTED_DESIGN、 U64_A5_MATRIX、MB_GAPS、AOT_ASYNC_M2 摘要更新;摘要级非全文。 - OS SDK 1.18(外部原型):14/2/4、tests 29/29、fuzz 339、128/0、5/5;OS-07/08 PARTIAL;非发布/非 API 1.0。
- IDE 0.19 overlay:外部构建(vsix 不随 tar;描述滞后);语言树支持组件仍 0.6.0。
- B2 文档/站点:P0/GITHUB/README/BUILDING/site 对齐 1.30.0-dev/spec v4.61;站点实际页数/checks 见 V410 证据;根迁移证据等临时文件清理;ENGLISH_SUMMARIES/README 索引合并。
- 最终锚点/验证:bqvm
ca0539df…/195,944B;bqvm_smalle24b284b…/195,944B;qbootabd9fb83…/544,551B; cgtest.qbcd0295342…/221,305B;cgtest_aot1e619ad3…/2,418,248B(=bootstrap aot);bootstrap qbootabd9fb83…/stage07a954aa5…;二次 build SAME;test PASS(含 MACRO_M2 22/0、M1 39/0、 TRACEBACK_PARITY_PASS 12/12 + deep10 + AOT-only 诊断、I64_NORMALIZE_OK、U64_A5_MATRIX_PASS 8/0、 FLOAT_PARITY2、AOT_ASYNC_IO_PASS、fiber/fiber_qp、FS 六驱动、POC4、net1–12/net_aot、float/cast/args/epoll); robustness/bench PASS;qpm 657/55/47/37/29/38/46/69/45/50/41/41;consistency 58/0/0。 - 历史:P3-A3 历史见前序条目;1.29/1.28/… 块保留;历史冻结包不得重打。
[1.29.0-dev] - 2026-11-02
Q+ 1.29.0-dev(spec v4.60):M2 宏第二增量(双变参基础顺序展开)、AOT traceback 扩展至 11/11、 i64 exact-2^60 normalize 修复;M3/M3b、4MiB、std.fs AOT 四批、POC4 保留;NOT PUBLISHED。
- M2 宏第二增量(A.30.12):调用
;分组解析(顶层恰好一个;,两侧按顶层逗号分组、括号深度感知); 双变参绑定表(g_m_ctx_voff/vn、g_m_ctx_v2off/v2n、g_m_ctx_elem2);macro_emit按组选择变参列表; 基础顺序展开可运行:m2seq!(1,2; 3,4)+m2seq!(8;9)→ VM/AOT 一致12|348|9;m2_expand_loud转正例(输出 12);负例 n36(缺;)/n37(同组混用)/n38(类别不符)/n39(+空组)rc=2+稳定消息;tools/macro_m2_test.sh→ MACRO_M2_TEST_PASS 14/0(原 5/0);M1 39/0 不回归。未完成(loud): 嵌套重复$($($a),* ; $($b),*)(step 3)、固定参数+多变参、zip/笛卡尔、M2 递归 emit;MB 仍不完整。 - AOT traceback 扩展(A.30.11,11/11):CALL 调用点写 caller 帧 pc(普通 CALL pc+3、间接 pc+1)→ 嵌套 traceback 外层帧对齐;float 除零 helper 用固定 BSS scratch(0x60F800/0x60F804)回填 pc/line (pc==-2 哨兵),修复 sentinel 模式下 line 被 0 覆盖;driver 扩至 11 case →
TRACEBACK_PARITY_PASS(11/11):index OOB/int div/f2i/float divzero helper/嵌套 CALL 除零/assert/bounds/ oob/overflow/indirect 非法目标多帧,逐字节(CR 归一)parity。残余:async trap 等 natdisp/共享 stub 点无 qbc pc、未构造独立 fixture;多帧深度>8/异常路径未逐项;不宣称全量逐字节 parity。 - i64 exact-2^60 normalize 修复(§9.5.11):type1 i64 常量 boxing 阈值(top-byte >0x03/正数 ≥2^58 入 boxed i64 pool)+
cg_emit_i64_normalize_inline阈值2^60+255→2^60-2(raw ≥2^60-1 即 box,修 off-by-255); 刷新 bootstrap 固定点;新增p19_i64_exact2p60.q(a+1、b-1+1、2^59+2^59、0-2^60、0-(2^60-1))→ VM/AOT 逐字节一致;tools/test_i64_normalize.sh→I64_NORMALIZE_OK(2/2 parity,入 test.sh);audit_i64_exact2p60.sh由 RESIDUAL 改为I64_EXACT2P60_PARITY_PASS。残余:generic fast-path 小常量累积(<2^58 常量累积穿越 2^60,如 2^57×8)仍可能静默错值(未覆盖、已文档化);traceback line 0; 复杂泛型/trait、Windows/ARM64;u64 pool AOT-only 3072;不宣称 i64 full/无条件 full u64。 - 保留:AOT async M3/M3b(A.30.7/A.30.8)、AOT text 4MiB(A.30.5,旧 2MiB 历史化)、std.fs AOT 四批 (A.30.3b)、MB 1–5 批、AOT-native POC4(A.13.3)、A.30.9 浮点残差收口。
- T8 英文摘要:13 篇 A-20 inline
## English Summary保持;FLOAT_PARITY、MB_M04_NESTED_DESIGN、 U64_A5_MATRIX、MB_GAPS、AOT_ASYNC_M2 摘要更新;摘要级非全文。 - OS SDK 1.18(外部原型):14/2/4、tests 29/29、fuzz 339、128/0、5/5;OS-07/08 PARTIAL;非发布/非 API 1.0。
- IDE 0.19 overlay:外部构建(vsix 不随 tar;描述滞后);语言树支持组件仍 0.6.0。
- B2 文档/站点:P0/GITHUB/README/BUILDING/site 对齐 1.29.0-dev/spec v4.60;站点实际页数/checks 见 V400 证据;根迁移证据等临时文件清理;ENGLISH_SUMMARIES/README 索引合并。
- 最终锚点/验证:bqvm
ca0539df…/195,944B;bqvm_smalle24b284b…/195,944B;qboot080295d8…/542,235B; cgtest.qbcd0295342…/221,305B;cgtest_aot1e619ad3…/2,418,248B(=bootstrap aot);bootstrap qboot080295d8…/stage07a954aa5…;二次 build SAME;test PASS(含 MACRO_M2 14/0、M1 39/0、 TRACEBACK_PARITY_PASS 11/11、I64_NORMALIZE_OK、I64_EXACT2P60_PARITY_PASS、U64_A5_MATRIX_PASS 8/0、 FLOAT_PARITY2、AOT_ASYNC_IO_PASS、fiber/fiber_qp、FS 六驱动、POC4、net1–12/net_aot、float/cast/args/epoll); robustness/bench PASS;qpm 657/55/47/37/29/38/46/69/45/50/41/41;consistency 58/0/0。 - 历史:P3-A3 历史见前序条目;1.28/1.27/… 块保留;历史冻结包不得重打。
[1.28.0-dev] - 2026-11-02
Q+ 1.28.0-dev(spec v4.59):M2 宏第一增量(两变参声明解析;展开器仍 loud)、AOT traceback pc/行号 parity(部分)、u64/i64 审计与 bitwise spec 更新;M3/M3b、4MiB、std.fs AOT 四批、POC4 保留; NOT PUBLISHED。
- M2 宏第一增量(A.30.10):qboot
macro_scan接受两变参声明macro f($($a: expr),* ; $($b: expr),*)(分号分隔;每变参独立 sep/kind;深度上限 2,第三组 loudM2 supports at most two variadic groups (depth limit 2));展开器未实现:调用两变参宏 loudM2 multi-variadic declaration parsed; M2 expander not implemented yet (requires M2 recursion; see docs/MB_M04_NESTED_DESIGN.md);fixturesm2_decl_ok/m2_expand_loud/m2_depth3;tools/macro_m2_test.sh→ MACRO_M2_TEST_PASS 5/0;M1 39/0 不回归;MB 仍不完整(M-04 仍不可用、M-02 未实现)。 - AOT traceback pc/行号 parity(A.30.11,部分):AOT shadow traceback 新增 PC 表(固定 BSS 0x60F000, 512×u32,-1 哨兵);
cg_tb_store_pc(pc)记录错误点 qbc pc;cg_emit_runtime_error_exit_pc(m,n,line,pc)(旧接口 wrapper 传 -1);traceback 帧对齐 VMat <fn> (line <L>, pc=<P>)、去 header 前导空行、消息行先于 traceback;函数级错误点按指令长度 wire pc(index OOB/int div pc+1;f2i/f2u pc+2);test.shaot_tb期望同步;tools/test_traceback_parity.sh→TRACEBACK_PARITY_PASS(3/3):index_out_of_bounds line6 pc=28、 int div line4 pc=12、f2i overflow line4 pc=11,逐字节(CR 归一)parity。残余:helper/stub 发射点无 qbc pc (async trap/call_indirect/float 除零 helper 保留无 pc 格式);其他 error kind(assert/consume-nil 等)pc 偏移、 多帧/嵌套未逐项;不宣称全量逐字节 traceback parity。 - u64/i64 审计与 bitwise spec(§9.5.11):未交付 i64 exact-2^60 代码修复——审计
let a:i64=2^60-1; print(a+1)VM=1152921504606846976/AOT=-1152921504606846976;根因 AOT generic OP_ADD/SUB int fast path 未 normalize/box、cg_emit_i64_normalize_inline阈值 +255 off-by-255;两种最小修复 均未达 parity → 按规矩回退,只保留审计/文档(fixtureaudit_i64_exact2p60.q+tools/audit_i64_exact2p60.sh, 输出I64_EXACT2P60_RESIDUAL,不入 test.sh);需 AOT i64 结果归一化/i64 opcode + bootstrap 固定点刷新 (2–4 天,A5 后续)。bitwise spec 更正:u64& | ^ ~ << >>自 task-200(v4.39)VM/AOT 已支持(raw u64、 逻辑右移、计数 clamp [0,63];混合 signed 非字面量 TC9 loud),旧“TC20 不支持”描述已更新(§9.5/A.10.3/A.13)。 不宣称 i64 exact-2^60 已修、不宣称无条件 full u64。 - 保留:AOT async M3/M3b(A.30.7/A.30.8)、AOT text 4MiB(A.30.5,旧 2MiB 历史化)、std.fs AOT 四批 (A.30.3b)、MB 1–4 批、AOT-native POC4(A.13.3)、A.30.9 浮点残差收口。
- T8 英文摘要:13 篇 A-20 inline
## English Summary保持;FLOAT_PARITY、MB_M04_NESTED_DESIGN、 U64_A5_MATRIX、MB_GAPS、AOT_ASYNC_M2 摘要更新;摘要级非全文。 - OS SDK 1.18(外部原型):14/2/4、tests 29/29、fuzz 339、128/0、5/5;OS-07/08 PARTIAL;非发布/非 API 1.0。
- IDE 0.19 overlay:外部构建(vsix 不随 tar;描述滞后);语言树支持组件仍 0.6.0。
- B2 文档/站点:P0/GITHUB/README/BUILDING/site 对齐 1.28.0-dev/spec v4.59;站点实际页数/checks 见 V390 证据;根迁移证据/验证日志等临时文件清理;ENGLISH_SUMMARIES/README 索引合并。
- 最终锚点/验证:bqvm
ca0539df…/195,944B;bqvm_smalle24b284b…/195,944B;qboot7606e714…/536,365B; cgtest.qbc593f6f6d…/219,466B;cgtest_aot50e2f091…/2,221,640B(=bootstrap aot);bootstrap qboot7606e714…/stage07a954aa5…;二次 build SAME;test PASS(含 MACRO_M2 5/0、M1 39/0、 TRACEBACK_PARITY_PASS 3/3、U64_A5_MATRIX_PASS 8/0、FLOAT_PARITY2_PASS、AOT_ASYNC_IO_PASS、 fiber/fiber_qp、FS 六驱动、POC4、net1–12/net_aot、float/cast/args/epoll);robustness/bench PASS; qpm 657/55/47/37/29/38/46/69/45/50/41/41;consistency 58/0/0。 - 历史:P3-A3 历史见前序条目;1.27/1.26/1.25/… 块保留;历史冻结包不得重打。
[1.27.0-dev] - 2026-11-02
Q+ 1.27.0-dev(spec v4.58):MB 第四批(分析结论:M-04/M-02 不实现)、AOT 浮点残差收口 (A.30.9)、u64/A5 边界修复(§9.5.11,F1/F2/F3);AOT async M3/M3b、AOT text 4MiB、std.fs AOT 四批、 AOT-native POC4 保留;NOT PUBLISHED。
- MB 第四批(A.30.6b):M-04 嵌套重复不实现——M1-lite 单变参无法为嵌套层绑定不同变参 → 语义二义; 需 M2 多变参 + 递归展开器(2–4 周);负例
n34_macro_repeat_nested2/n35_macro_repeat_nested_multirc=2 + 稳定消息nested macro repetition is not supported in M1-lite;M-02 卫生性未实现(AST 绑定表 1–2 周);无 qboot/编译器行为改动;macro suite 39/0(原 37/0);设计见docs/MB_M04_NESTED_DESIGN.md;不宣称 MB 完整/生产。 - AOT 浮点残差收口(A.30.9):AOT 运行期错误输出顺序改为 消息(stdout) → traceback(stderr) → exit(1) (与 VM
2>&1一致);AOT 浮点除零 ±0.0 位检查 →Runtime error: division_by_zero(原 inf/nan); f32 基础/NaN/±inf/-0、f64 打印/次正规样本 PASS;fixturesf32_nan_aot.q/f64_divzero_aot.q/f64_cast_overflow_aot.q+tools/test_float_parity2.sh→FLOAT_PARITY2_PASS。 残余:AOT traceback 无pc=(line 已对齐、pc 未对齐);超越函数仅位级抽样;f64 print 6 位(非最短 表示);f32 仅基础子集;Windows/ARM64 未覆盖;整体 AOT 浮点 parity 仍不宣称。 - u64/A5 边界(§9.5.11):修复 3 缺口:F1 untyped 上下文 u64 算术(
b+1,AOT 曾输出 -1152921504606846976 → 发OP_U64_*);F2 数组元素类型推断(a[0]+1);F3 嵌套成员推断 (o.i.v+1);fixturesp17_u64_a5_boundary.q/p18_u64_index_member_ctx.q;tools/test_u64_a5_matrix.sh→U64_A5_MATRIX_PASS(8/0);AOT u64 pool >3072 →AOT_UNSUPPORTED_U64_CONST_POOL(VM 可编译)。 残余:AOT i64 无类型算术 exact-2^60 仍负值(tagged-int 根因未修);AOT traceback line 0;u64 bitwise 旧 spec 段滞后;复杂泛型/trait、Windows/ARM64;AOT-only pool 3072;不宣称 u64 无条件 full。 - 保留:AOT async M3/M3b(A.30.7/A.30.8)、AOT text 4MiB(A.30.5,旧 2MiB 历史化)、std.fs AOT 四批 (A.30.3b)、MB 前三批、AOT-native POC4(A.13.3)。
- T8 英文摘要:13 篇 A-20 inline
## English Summary保持;FLOAT_PARITY、MB_M04_NESTED_DESIGN、 U64_A5_MATRIX、MB_GAPS、AOT_ASYNC_M2 摘要更新;摘要级非全文。 - OS SDK 1.18(外部原型):14/2/4、tests 29/29、fuzz 339、128/0、5/5;OS-07/08 PARTIAL;非发布/非 API 1.0。
- IDE 0.19 overlay:外部构建(vsix 不随 tar;描述滞后);语言树支持组件仍 0.6.0。
- B2 文档/站点:P0/GITHUB/README/BUILDING/site 对齐 1.27.0-dev/spec v4.58;站点实际页数/checks 见 V380 证据;根迁移证据等临时文件清理;ENGLISH_SUMMARIES/README 索引合并。
- 最终锚点/验证:bqvm
ca0539df…/195,944B;bqvm_smalle24b284b…/195,944B;qboot1f0609c8…/534,705B; cgtest.qbc01f94c65…/218,125B;cgtest_aote962c71f…/2,156,104B(=bootstrap aot);bootstrap qboot1f0609c8…/stage07a954aa5…;二次 build SAME;test PASS(含 FLOAT_PARITY2_PASS、 U64_A5_MATRIX_PASS 8/0、MACRO 39/0、AOT_ASYNC_IO_PASS、fiber/fiber_qp、FS 六驱动、POC4、 net1–12/net_aot、float/cast/args/epoll);robustness/bench PASS;qpm 657/55/47/37/29/38/46/69/45/50/41/41; consistency 58/0/0。 - 历史:P3-A3 历史见前序条目;1.26/1.25/1.24/1.23/1.22/1.21 块保留;历史冻结包不得重打。
[1.26.0-dev] - 2026-11-02
Q+ 1.26.0-dev(spec v4.57):AOT async M3+M3b 合并——io_wait/epoll/poll/ready + timeout/async_sleep (AOT-only POC);1.26 树 = v350_rc1(1.25:v340+4MiB+MB3+FS4)+ M3/M3b 内容;NOT PUBLISHED。
- AOT async M3(A.30.7):async helper 3,228B / 0 reloc(复用 M2b fiber 235–237 同 blob);固定 BSS 0x10620000 + 0x300 区;raw epoll_create1(291)/epoll_ctl(233)/epoll_wait(232) + clock_gettime(228, CLOCK_MONOTONIC); native 240
sys_io_wait(fd,events,timeout)(fiber 内 epoll_ctl 注册→保存到 MAIN 公园;timeout deadline 唤醒 -2)、 241sys_async_poll(timeout)(main epoll_wait,超时=min(用户,最近deadline);处理就绪+到期 -2/DEL)、 242sys_async_ready(slot);natdisp 230..243;cg_fn_builtin_id顶层映射 240/241/242。 - AOT async M3b(A.30.8):243
sys_async_sleep(ms)(AOT-only fiber 公园+deadline 唤醒 0;VM 等价sys_task_sleep_until为 VM-only,差异文档化);timeout 由 deadline/poll 统一驱动。 - fixtures(
QPLUS_NET_REAL=1;drivertools/test_aot_async_io.sh已接线 test.sh):AOT_ASYNC_IO_OK 7(reader spawn→io_wait 公园→main 发数据→poll 唤醒→recv)、AOT_ASYNC_ECHO_OK 6(两 fiber 各持 socket 3B×2 echo)、AOT_ASYNC_TIMEOUT_OK -2(io_wait 20ms 无数据)、AOT_ASYNC_SLEEP_OK 2 0 0(两 fiber 40ms/10ms 交替)→AOT_ASYNC_IO_PASS。 - -8 逐项更新:io_wait(含 timeout)/async_poll/async_ready/async_sleep 已 AOT 支持(AOT-only POC); 仍 -8/VM-only:VM async/await 语言层、channel/thread_pool/kernel scheduler、
sys_task_sleep_untilVM 精确 对齐;无抢占/定时器中断/信号安全;不宣称通用 AOT async/生产。 - 合并/回归:与 MB3/FS4 无冲突(helper/natdisp 230..243 独立区间;MB3 宏/FS4 sys178–182 保留); fiber
AOT_FIBER_OK 8、fiber_qpAOT_FIBER_QP_OK 142、FS 六驱动、POC4 PASS、macro 37/0、net1–12 全部 PASS;1.25 的 AOT text 4MiB(base 0x200000)与旧 2MiB 历史化不变。 - T8 英文摘要:13 篇 A-20 inline
## English Summary保持;AOT_ASYNC_M2(M2/M2b/M3/M3b)、AOT_EVENT_LOOP、 MB_GAPS、STD_FS_AOT、AOT_NATIVE_2_PLAN 摘要更新;摘要级非全文。 - OS SDK 1.18(外部原型):14/2/4、tests 29/29、fuzz 339、128/0、5/5;OS-07/08 PARTIAL;非发布/非 API 1.0。
- IDE 0.19 overlay:外部构建(vsix 不随 tar;描述滞后);语言树支持组件仍 0.6.0。
- B2 文档/站点:P0/GITHUB/README/BUILDING/site 对齐 1.26.0-dev/spec v4.57;站点实际页数/checks 见 V370 证据;根迁移证据与临时文件清理;ENGLISH_SUMMARIES/README 索引合并。
- 最终锚点/验证:bqvm
ca0539df…/195,944B;bqvm_smalle24b284b…/195,944B;qboot44c21db9…/534,727B; cgtest.qbca7a21f07…/217,432B;cgtest_aot2380e83a…/2,147,912B(=bootstrap aot);bootstrap qboot44c21db9…/stage07a954aa5…;二次 build SAME;test PASS(含 AOT_ASYNC_IO_PASS 四 fixture、 FIBER_AOT/FIBER_QP、FS 六驱动、POC4、MACRO 37/0、net1–12/net_aot、float/cast/args/epoll); robustness/bench PASS;qpm 657/55/47/37/29/38/46/69/45/50/41/41;consistency 58/0/0。 - 历史:P3-A3 历史见前序条目;1.25/1.24/1.23/1.22/1.21 块保留;历史冻结包不得重打。
[1.25.0-dev] - 2026-11-02
Q+ 1.25.0-dev(spec v4.56):AOT text 4MiB 扩容(base 0x200000)、std.fs AOT 第四批 (path_realpath/dir is_dir/is_file/size/mtime)、MB 第三批(M-07 stringify / M-08 ## 拼接 POC); AOT async M2b/POC4 保留;OS SDK 1.18、IDE 0.19 overlay(不随 tar)、B2 文档/站点定稿。 NOT PUBLISHED;async/io_wait 仍 -8(M3 未实现;容量已解锁)。
- AOT text 4MiB 扩容(重要布局变更):
aot_elf.qELF_VADDR=0x200000,text 容量 2MiB→4MiB (text 0x200000..0x600000;R+W/BSS 仍 0x600000);溢出检查hdr+text > 0x400000→ loudAOT_TEXT_OVERFLOW(含 old base 0x400000/old limit 0x200000/old margin 0x200000; new base 0x200000/ new limit 0x400000)+ELF_BUILD_FAIL(不静默产出坏 ELF);M2b fiber-call stub 公式改为0x200000 + hdr_sz + g_cg_fibercall_off;R+W/BSS/helper BSS/固定区未变(全量 grep 核对见 V360 证据)。 两阶段自举迁移:v340 bootstrap → gen102c8656a…(旧布局中间工具,仅迁移过程)→ gen2ef5a969f…(新布局)→ gen3 收敛;bridge/gen1 不入库/不入 patch;bootstrap/SHA 更新为最终固定点。 旧 2MiB 限制历史化;仍不得宣称任意大 AOT 程序(无界)。M3 容量已解锁。 - std.fs AOT 第四批(A.30.3b):
sys_path_realpath(178)(VM libc;AOT 手写绝对化 getcwd+词法./..+ 末级 symlink readlink+newfstatat 存在性;不存在/超长 loud);sys_dir_is_dir(179)/is_file(180)/size(181)/ mtime(182)(stat follow);std.fs 包装fs_realpath/fs_stat_is_dir/fs_stat_is_file/fs_stat_size/ fs_stat_mtime。fixtures:fs_realpath_aot.q→ VM/AOT 一致AOT_FS_REALPATH_OK 17 1 1 1 0 0/FS_REALPATH_PASS;fs_dirstat_aot.q→AOT_FS_DIRSTAT_OK 1 0 1 5 1 0 0 -1 -1/FS_DIRSTAT_PASS;前四批回归保留。残余:路径规范化仅末级 symlink(无中间 symlink/权限/竞态/ 路径安全);dir stat follow-symlink;无并发/权限模型;Windows/ARM64 loud;不宣称完整 std.fs AOT。 - MB 第三批(A.30.6):M-07 字符串化 POC(
#token;#$x/#ident→ 字符串 token;单 token 参数; 多 token/variadic rc2 loud;p31_macro_stringify=helloVM/AOT parity、n32rc2);M-08##拼接 POC (两个单 token 标识符/固定参数 → interned identifier;非法/多 token/variadic loud;p32_macro_concat=42VM/AOT parity、n33rc2);tools/macro_m1_test.sh37/0(原 31/0);docs/MB_GAPS.mdM-07/M-08 标已修 POC(POC-4)、docs/MACROS.md37/37。未做:M-04 嵌套重复仍 loud;M-07/M-08 完整版 (多 token/数字拼接/通用重 lex);MB 仍不完整,不宣称完整/生产。 - AOT async M2b/POC4 保留:M2b AOT-only POC(native 235–237、1428B/0 reloc、
AOT_FIBER_QP_OK 142/FIBER_QP_AOT_PASS;根因TASK_CURSLOT→CUR-1);POC4 模块导出偏移/manifest/缓存归属 (AOT_NATIVE_POC4_PASS12/0,3 模块输出 24,仍非 2.0);async/io_wait:io_wait 已 AOT 支持(AOT-only POC,native 240-243);其余 async 接口仍 -8。 - T8 英文摘要:13 篇 A-20 inline
## English Summary保持;AOT_ASYNC_M2(4MiB 布局/M2b)、STD_FS_AOT (batch4)、MB_GAPS(M-07/M-08 POC)、MACROS、AOT_EVENT_LOOP(4MiB)摘要更新;摘要级非全文。 - OS SDK 1.18(外部原型):14/2/4、tests 29/29、fuzz 339、128/0、5/5;OS-07/08 PARTIAL;非发布/非 API 1.0。
- IDE 0.19 overlay:外部构建(vsix 不随 tar;描述滞后);语言树支持组件仍 0.6.0。
- B2 文档/站点:P0/GITHUB/README/BUILDING/site 对齐 1.25.0-dev/spec v4.56;站点实际页数/checks 见 V360 证据;根 4M 迁移证据 与临时文件清理;ENGLISH_SUMMARIES/README 索引合并。
- 最终锚点/验证:bqvm
ca0539df…/195,944B;bqvm_smalle24b284b…/195,944B;qboot44c21db9…/534,727B; cgtest.qbc6e72cb78…/213,408B;cgtest_aot932eee1a…/2,123,832B(=bootstrap aot);bootstrap qboot44c21db9…/stage07a954aa5…;二次 build SAME;test PASS(含 FIBER_AOT_PASS、FIBER_QP_AOT_PASS、 FS_META/FS_REALPATH/FS_DIRSTAT/FS_READALL/FS_READDIR/FS_AOT PASS、MACRO_M1_TEST_PASS 37/0、 POC4 PASS、net1–12/net_aot、float/cast/args/epoll);robustness/bench PASS;qpm 657/55/47/37/29/38/46/69/45/50/41/41; consistency 58/0/0。 - 历史:P3-A3 历史见前序条目;1.24/1.23/1.22/1.21 块保留;历史冻结包不得重打。
[1.24.0-dev] - 2026-11-02
Q+ 1.24.0-dev(spec v4.55):AOT async M2b(Q+ 函数 fiber 入口,AOT-only POC)、std.fs AOT 第三批 (chmod/chown/utimes/symlink/hardlink/readlink/mode/mtime)、AOT-native POC4(模块导出偏移修复/manifest/ 缓存归属)、AOT text 2MiB 硬限制 + ELF_BUILD_FAIL loud、合并根因修复(fiber QP slot CUR-1); OS SDK 1.18、IDE 0.19 overlay(不随 tar)、B2 文档/站点定稿。NOT PUBLISHED;async/io_wait 仍 -8。
- AOT async M2b(A.30.4,AOT-only POC):native 235–237(
sys_fiber_spawn(fn,arg)/done/result)+ generated fiber-call stub(fn_idx 分派 + Q+ ABI push/call/ret;按需生成)、init stub(桩地址 0x1065FFF8); helper 1428B/0 reloc;固定 BSS 0x10620000;natdisp 230..237。根因修复:mk_async_qp_done原用 全局TASK_CURSLOT被 task 启动覆盖 → 改CUR-1取 slot。fixtures:fiber_min_aot.q→AOT_M2B_MIN_OK 42;fiber_qp_aot.q(两 Q+ task 各 4 轮 yield)→AOT_FIBER_QP_OK 142/FIBER_QP_AOT_PASS;M2 回归AOT_FIBER_OK 8/FIBER_AOT_PASS。残余:AOT-only(VM 未映射 230–237); 单线程协作/无抢占/定时器;2 task/2×32KB 固定栈;async/io_wait:io_wait 已 AOT 支持(AOT-only POC,见 spec A.30.7/A.30.8);其余 async 接口仍 -8,不宣称通用 AOT async。 - std.fs AOT 第三批(A.30.3):新增 8 sys(VM+AOT 同语义):
sys_file_chmod(170)/chown(171)/utimes(172)/symlink(173)/hardlink(174)/readlink(175)/mode(176)/mtime(177);std.fs 包装fs_chmod/chown/utimes/symlink/hardlink/readlink/mode/mtime;fixturefs_meta_aot.q→ VM/AOT 逐字节一致AOT_FS_META_OK 0 1 0 384 0 420 -1 0 -1 0 1000000000 -1 0 1 0 1 1 0 0(19 值);tools/test_fs_meta.sh→FS_META_PASS(P3F_FS_META);前两批回归保留。残余:chown 真实 uid/gid 未验证(非 root/-1 no-op);timestamps 仅秒级;symlink/hardlink 仅本地 FS;无路径规范化/并发/权限模型; 不宣称完整 std.fs AOT/生产。 - AOT-native POC4(A.13.3,不宣称 2.0):修复 qboot
native_build_module_table每模块导出偏移 (g_mtab_exp_off[sm] = g_mtab_exp_n;修复前模块共享第一批导出、resolved_fns 偏低);3 模块 fixture (共享 Pair + 跨模块调用)VM/AOT 输出 24,遥测AOT_POC3_SYMBOLS modules=3 exports=4 resolved_fns=3;tools/aot_native_poc4.py生成 per-module manifest(导出名+code hash)、auditAOT_NATIVE_POC4_AUDIT modules=3 exports=4 resolved=3 type_exports=1 ambiguous=0 changed=app.top、 baseline 变更归属;tools/test_aot_native_poc4.shparity/unchanged cache hit/修改 app.top→modules=app.top/ cache miss/输出 25/restore cache hit →AOT_NATIVE_POC4_PASS(pass=12 fail=0),接入 test.sh。 残余:无 per-module object/链接、完整符号/fixup/type-layout、真增量、热重载、mixed QBC/native、 泛型布局共享、模块初始化顺序、module:line;纯常量改动可能无法归因;完整 2.0 仍 6–8/9–13 周 HIGH。 - AOT text 2MiB 硬限制(A.30.5,loud):ELF text 固定 0x400000..0x600000;
hdr+text > 0x200000时 entry 落入 R+W/BSS 被覆盖 → SIGSEGV;新增 aot_elf.q overflow loud 检查 →ELF_BUILD_FAIL(不生成坏 ELF);fiber-call stub 按需生成(仅用 spawn 时发射,自举工具省 ~9KB)。该硬限制已入 spec/REMAINING_GAPS。 - 合并根因修复:fiber QP 多 task 交替 slot 覆盖(
CUR-1);POC4 module-table 导出偏移;fiber stub 按需生成避免超过 2MiB text。 - T8 英文摘要:13 篇 A-20 文档 inline
## English Summary保持;AOT_ASYNC_M2(M2/M2b)、STD_FS_AOT (batch3)、MB_GAPS、AOT_NATIVE_2_PLAN(POC4)摘要更新;英文仍摘要级非全文。 - OS SDK 1.18(外部原型):14/2/4、tests 29/29、fuzz 339、128/0、5/5;OS-07/08 PARTIAL;非发布/非 API 1.0。
- IDE 0.19 overlay:外部构建(vsix 不随 tar;描述滞后);语言树支持组件仍 0.6.0。
- B2 文档/站点:P0/GITHUB/README/BUILDING/site 对齐 1.24.0-dev/spec v4.55;站点实际页数/checks 见 V350 证据;删除根 EVIDENCE/临时文件;ENGLISH_SUMMARIES/README 索引合并。
- 最终锚点/验证:bqvm
ebfedf49…/195,816B;bqvm_smallca08f005…/195,816B;qboot9a777f23…/531,388B; cgtest.qbc0c377517…/212,584B;cgtest_aotd11088d8…/2,119,464B(=bootstrap aot);bootstrap qboot9a777f23…/stage07a954aa5…;二次 build SAME;test PASS(含 FIBER_AOT_PASS、FIBER_QP_AOT_PASS、 FS_META_PASS、AOT_NATIVE_POC4_PASS、MACRO_M1 pass=31/0、net1–12/net_aot、float/cast/args/epoll); robustness/bench PASS;qpm 657/55/47/37/29/38/46/69/45/50/41/41;consistency 58/0/0。 - 历史:P3-A3 历史见前序条目;1.23/1.22/1.21 块保留;历史冻结包不得重打。
[1.23.0-dev] - 2026-11-01
Q+ 1.23.0-dev(spec v4.54):std.fs AOT 第二批(read_all/readdir)、MB 第二批(B-09 扩展/B-03 复核/B-10 未落地)、 AOT async M2 fiber(AOT-only POC;M2b 两次 SIGSEGV 未集成)、T8 英文摘要、OS SDK 1.18、 IDE 0.19 overlay(不随 tar,滞后)、B2 文档/站点定稿。NOT PUBLISHED;async/io_wait 仍 -8。
- std.fs AOT 第二批(A.30.2 扩展):
sys_file_read_all(9)AOT(helper open/lseek/read 循环 + heap 字符串,NUL 结尾,上限 1MiB) → fixturefs_readall_aot.q(空/5B/64KB/不存在/清理)VM/AOT 一致AOT_FS_READALL_OK 5 6354 0 0 65536 22479 0 0;tools/test_fs_readall.sh→FS_READALL_PASS(test.sh P3F);sys_dir_open/next/close(47–49)AOT(getdents64, fd<256、32KB 持久缓冲、跳过 . / ..、名称 heap)→fs_readdir_aot.q2 文件/空目录/无效路径 VM/AOT 一致AOT_FS_READDIR_OK 2 1 1 0 1;tools/test_fs_readdir.sh→FS_READDIR_PASS(P3F)。第一批保留 (AOT_FS_POC_OK 0 2 1 5 0 1 0 1 1 0 0/FS_AOT_PASS)。残余:chmod/chown/timestamps/symlink/hardlink 仍不支持; 路径不规范化;AOT fd=raw OS fd;目录 fd<256/堆上限;Windows/ARM64 loud;不宣称 std.fs 完整 AOT/生产。 - MB 第二批(A.30.3):B-09 扩展(module/entry 文件错误带 map 行号:
cannot open module file app.util at map line 2、entry file cannot open ... at map line 3;badpath/badentry fixtures);B-03 复核为 v310 已实现(TC16/TC17 + typevis private/public 复核);B-10 尝试未落地(qboot 自举无字符串拼接、std.string自举不可用,回退并文档化, 2–4 天+依赖);tools/macro_m1_test.shpass=31 fail=0;MB_GAPS 24 项矩阵更新;MB 仍不完整。 - AOT async M2(A.30.1):native 230–234 + 778B/0 reloc helper,
fiber_aot.q→AOT_FIBER_OK 8/FIBER_AOT_PASS; M2b(Q+ 任意函数入口)两次 SIGSEGV 未集成(剩余 Q+ 调用/返回栈 ABI,0.5–1 人日);AOT-only(VM 无 230–234); 单线程协作/2 task/2×32KiB;async/io_wait:io_wait 已 AOT 支持(AOT-only POC,见 spec A.30.7/A.30.8);其余 async 接口仍 -8,不宣称通用 AOT async。 - T8 英文摘要:13 篇 A-20 文档保持/补齐 inline
## English Summary(NET Phase7–12/AOT_EVENT_LOOP/CAST/ QPM_TRANSPARENT/STD_API_ENV/WIN32×3);MB_GAPS/STD_FS_AOT/AOT_ASYNC_M2 摘要更新(batch2/M2b 如实);摘要级非全文。 - OS SDK 1.18(外部原型):conformance 14/2/4、tests 29/29、fuzz 339、128/0、5/5;OS-07/08 PARTIAL;非发布/非 API 1.0。
- IDE 0.19 overlay:外部构建(vsix 不随 tar;描述滞后,语言树以集成版为准);语言树支持组件仍 0.6.0。
- B2 文档/站点:P0/GITHUB/README/BUILDING/site 对齐 1.23.0-dev/spec v4.54;站点实际页数/checks 见 V340 证据; 删除根 EVIDENCE 临时文件;ENGLISH_SUMMARIES/README 索引合并。
- 最终锚点/验证:bqvm
281b3888…/191,504B;bqvm_small1fcd2c49…/191,504B;qbootba3fbba1…/531,322B; cgtest.qbc6ec99cc1…/206,702B;cgtest_aote30230c7…/2,087,432B(=bootstrap aot);bootstrap qbootba3fbba1…/ stage07a954aa5…;二次 build SAME;test PASS(含 FIBER_AOT_PASS、P3F_FS_AOT/P3F_FS_READALL/P3F_FS_READDIR、 MACRO_M1_TEST_PASS pass=31 fail=0、net1–12/net_aot、float/cast/args/epoll parity/destroy);robustness/bench PASS; qpm 657/55/47/37/29/38/46/69/45/50/41/41;consistency 58/0/0。 - 历史:P3-A3 历史见前序条目;1.22/1.21 块保留;历史冻结包不得重打。
[1.22.0-dev] - 2026-11-01
Q+ 1.22.0-dev(spec v4.53):AOT async M2 fiber 基础件(AOT-only POC)、std.fs AOT 第一批、 MB 缺口审计 + M-05/B-09 POC、T8 英文摘要补齐、OS SDK 1.18、IDE 0.19 overlay(不随 tar)、 B2 文档/站点定稿。NOT PUBLISHED;async/io_wait 仍 -8,不宣称 AOT async。
- AOT async M2(A.30.1,AOT-only POC):native 230–234(
sys_fiber_make/swap/yield/exit/current)+ x86-64 栈式 fiber helper(保存 rbx/rbp/r12–r15+rip;固定 BSS 0x10620000、2×32 KiB 栈;helper 778B/0 reloc);cg_emit_async_helper()在 natdisp 前发射,natdisp 路由 230..234;fixturesrc/tests/async/fiber_aot.q+tools/test_fiber_aot.sh→AOT_FIBER_OK 8/FIBER_AOT_PASS(两内置 counter task 交替 yield;main yield/exit -4)。 残余:AOT-only(VM 无 230–234);Q+ 任意函数作为 fiber 入口(M2b)与sys_io_wait/sys_async_*epoll 唤醒(M3) 未实现;单线程协作/无抢占/定时器;2 task/2×32KiB;Linux x86-64;async/io_wait:io_wait 已 AOT 支持(AOT-only POC,native 240-243);其余 async 接口仍 -8。 - std.fs AOT 第一批(A.30.2,POC 子集):AOT raw-syscall helper 支持
sys_file_write(6)/exists(8)/delete(11)/ write_str(14)/dir_make(44)/dir_remove(45)/rename(46)/seek(50)/tell(51)/type(52);既有 3/4/5/7/10 仍内联; fixturesrc/tests/fs/fs_aot.q→ VM/AOT 逐字节一致AOT_FS_POC_OK 0 2 1 5 0 1 0 1 1 0 0,tools/test_fs_aot.sh→FS_AOT_PASS(test.sh P3F_FS_AOT)。残余:read_all(9)、目录遍历 47–49、 chmod/chown/timestamps/symlink/hardlink 仍 -8/loud;路径不规范化;AOT fd=raw OS fd;Windows/ARM64 loud; 不宣称完整 std.fs AOT/生产。 - MB(A.30.3,POC):新增
docs/MB_GAPS.md(24 项矩阵:M-01..M-12/B-01..B-12);已修 M-05 普通+变参混用 (p30_macro_variadic_mixed→1234VM/AOT parity;n31rc=2 loud)与 B-09 基础(module-map 错误带at map line <N>;badline.map第 3 行重复 loud);tools/macro_m1_test.shpass=31 fail=0;MB 仍不完整, 不宣称完整/生产可用。 - T8 英文摘要:13 篇 A-20 文档(NET Phase7–12、AOT_EVENT_LOOP_FEASIBILITY、CAST_SEMANTICS、 QPM_TRANSPARENT_LOG_DESIGN、STD_API_ENV、WIN32_AOT_FEASIBILITY/SPIKE/SPIKE2)补 inline
## English Summary(150–250 词/篇);新增 AOT_ASYNC_M2/MB_GAPS/STD_FS_AOT 摘要;仅摘要级,非全文翻译。 - OS SDK 1.18(外部原型):conformance 14/2/4(OS-10/16/17 PASS、OS-07/08 PARTIAL)、tests 29/29、 fuzz 7 组 339、api_stability 128/0、examples 5/5、qpm e2e 18/18;VM-only/非发布/非 API 1.0; OS-07 文件 async 为可行性 POC(普通文件不可 epoll/cancel 中断阻塞 read,如实)。
- IDE:0.19 overlay 为外部构建(vsix 不随 tar;对语言树/epoll 描述滞后,语言树以集成版为准);语言树支持组件仍 0.6.0。
- B2 文档/站点:P0/GITHUB/README/BUILDING/site 更新到 1.22.0-dev/spec v4.53;站点实际 122 页/236 checks (baseline 121/236 + AOT_ASYNC_M2 文档页);ENGLISH_SUMMARIES/README 索引合并;删除根 EVIDENCE 临时证据。
- 最终锚点/验证:bqvm
281b3888…/191,504B;bqvm_small1fcd2c49…/191,504B;qbootd5b4fd2b…/530,825B; cgtest.qbc49ee3c94…/204,500B;cgtest_aot9daac264…/2,085,232B(=bootstrap aot); bootstrap qbootd5b4fd2b…/stage07a954aa5…/aot9daac264…;二次 build SAME;tools/test.shPASS(含 FIBER_AOT_PASS、P3F_FS_AOT、net1–12/net_aot、float/cast/args/epoll parity/destroy); robustness/bench PASS;qpm 657/657 +55+47+37+29+38+46+69+45+50+41+41;consistency 58/0/0。 - 历史:P3-A3(网络/加载器等)历史见前序条目;v1.21 Phase12/SBOM2/T5/OS SDK1.17 保留于 1.21 块; 历史冻结包不得重打。
[1.21.0-dev] - 2026-10-31
Q+ 1.21.0-dev(spec v4.52):网络 Phase12(epoll 销毁统一/fd 生命周期收口)、qpm SBOM2(签名+传递依赖)、T5 文档(残余缺口总表/版本决策记录)、OS SDK 1.18;AOT async M1 外部 POC 未集成。
- 网络 Phase12(A.21.12,重点):统一
net_epoll_destroy(epfd)(native 228,VM/AOT):关闭 epoll fd + 清理语言 slot/事件状态;成功 0、 重复/非法 -4、宿主错误 -10;AOT fd 状态表新增 kind=3(epoll),VM 经g_net_fd/qnet_close映射;std.net 包装net_epoll_destroy; 旧 VM 143–148 仍 VM-only 兼容;fixtureepoll_destroy_aot.q→AOT_EPOLL_DESTROY_OK 0 -4 -4 -4 0 0 -4 -4 -4 -4(VM/AOT 逐字节一致);tools/test_epoll_destroy.sh→EPOLL_DESTROY_PARITY_PASS,接入 test.sh P3F_EPOLL_DESTROY。 语义统一:invalid epfd 的 ctl/wait 统一 -4;ctl 目标 fd 已关闭保持 -10;socket close 的 epoll 注册项由内核自动移除(平台语义,文档化); AOT fd 表区分 socket(kind1/2)与 epoll(kind3)。async/io_wait:io_wait 已 AOT 支持(AOT-only POC,见 spec A.30.7/A.30.8);其余 async 接口仍 -8,不宣称通用 AOT async;仅 Linux x86-64 loopback/opt-in/非生产。 - qpm SBOM2(签名+传递依赖):
qpm sbom --sign <root-key>(SPDX 2.3 + detached.sig;签名覆盖 canonical JSON(sorted keys/compact/UTF-8/ created 由 SOURCE_DATE_EPOCH 固定);--verify-signature <pubkey>重新 canonical 化验证;坏签名/篡改/缺签/错 key loud;格式重排仍可验);qpm graph --transitive(direct edges +transitive_edges(from/to/path/direct 闭包);环/缺节点 loud;--check --transitive);qpm sbom --transitive(DIRECT/TRANSITIVE DEPENDS_ON comment;packages 仍仅 lock、files 仅 vendor;graph/SBOM 共用闭包); self 657/657、sbom2 41/41、sbom 41、translog 46/69/45/50。 残余:本地静态 POC、不宣称生产 SBOM 合规/许可证分析/漏洞扫描/完整传递依赖;detached 签名为本地 qpm key(非官方 SPDX/Maintainer release 签名)、 无 HSM/身份/分发/撤销/外部 SPDX 验证。 - T5 文档:docs/REMAINING_GAPS.md(A 22/B 14/C 10 分类)、docs/V1_0_OWNER_ONE_PAGER.md(8 项决策+授权模板+RC5→正式候选路径)、 site remaining-gaps/版本决策记录 页、首页按钮、EN summaries/README、site 生成器标签/锚点对齐。
- AOT async M1(外部 POC,未集成):外部验证 x86-64 栈式 fiber(mk_make_ctx/swap_ctx/exit)freestanding blob 1,082B / 0 reloc, 2 task 协作 loopback echo →
ASYNC_POC_OK 3,块嵌入(codegen hex 路径)验证通过;未集成入树、async/io_wait:io_wait 已 AOT 支持(AOT-only POC,native 240-243);其余 async 接口仍 -8、不宣称 AOT async; M2/M3(native 230–234 + epoll io_wait 唤醒 + fixture)估算 2–4 周。见 docs/AOT_EVENT_LOOP_FEASIBILITY.md “M1 外部可行性”段。 - OS SDK 1.18:conformance 14/2/4(OS-10/16/17 PASS、OS-07/08 PARTIAL);tests 29/29;fuzz 7 组 339;api_stability 128/0;examples 5/5; qpm e2e 18/18;OS-07 文件 async 可行性 POC:线程+channel 链路过(t_asyncfile_poc),但普通文件不可 epoll/cancel 不能中断阻塞 read → OS-07 仍 PARTIAL(真实现需运行时 eventfd 线程池 2–4 周或 io_uring 4–6 周,文档化)。
- 外部:IDE 0.19 overlay(c5c62916…/165,396B,不随 tar;对 r32 epoll 统一/Phase11 描述滞后,以语言树为准);RC5 外部不随 tree/pack。
- B2:P0/GITHUB v1.21.0-dev candidate(tar sha pending);RELEASING/GOV/SECURITY/SUPPORT v1.21.0;RELEASE_NOTES 1.21.0-dev;LSP 0.12 optional。
- 锚点:bqvm 281b3888/191,504B、bqvm_small 1fcd2c49/191,504B、qboot 7248ce0d/531,322B、cgtest 22da3f97/195,099B、 cgtest_aot ef23207f/2,026,808B;bootstrap qboot=7248ce0d、stage0=7a954aa5、aot=ef23207f;二次 build 全 SAME。
- 验证:build/二次 build SAME;test/fs/qfmt/async/float/cast/args/robustness/bench/net1–12/epoll parity/epoll destroy/net_aot/ qpm(657/55/47/37/29/38/46/69/45/50/sbom41/sbom2 41) PASS;一致性 58/0/0;site build/selftest PASS。
- 残余:AOT async/io_wait 未实现(-8,M1 仅外部 POC 未集成);AOT 浮点整体 parity 未达;AOT 网络仅 TCP/UDP loopback 子集; qpm SBOM 本地静态 POC;OS SDK 原型外部 NOT PUBLISHED;Windows AOT 不做;ASAN 非 clean;LSP 0.12 optional;发布 tar sha pending。
[1.20.0-dev] - 2026-10-31
Q+ 1.20.0-dev(spec v4.51):VM/AOT epoll API 统一、网络 Phase11(AOT 非阻塞 connect/事件循环 POC2)、qpm 包级 SBOM/依赖图 POC。
- VM/AOT epoll API 统一(A.21.10,重点):统一
sys_net_epoll_create1/ctl/wait(out_fds,out_events,max,timeout);std.net 包装net_epoll_create1/ctl/wait_events; VM 新增 native 225/226/227(语言 fd slot ↔ 宿主 raw fd 经g_net_fd/qnet_alloc/qnet_lookup映射;create1 注册宿主 epoll fd;ctl 双向映射; wait raw fd 逆映射回语言句柄 + events 位掩码 + length);AOT 语言 fd 即 raw fd 直传;句柄 opaque,跨 VM/AOT 数值不保证相同 (同环境内可与对应 socket 句柄相等比较;fixture 集合式比较)。错误码统一:参数形态 -4、宿主错误 -10、timeout>0 无事件 -2、timeout==0 -13、ctl 0。 旧 VM 143–148 保留 VM-only 兼容(net_epoll_wait→legacy 146),AOT 不支持旧 API(迁移文档化);fixtureepoll_parity_aot.q+tools/test_epoll_parity.sh→ EPOLL_PARITY_PASS(create/tmo -2/nb -13/badmax/badcap -4/ctl/add/del/mod/send/wait events=2/match/inmask/recv 6/ctl_after_close -10)。 残余:epoll 句柄销毁未统一(VM net_tcp_close(epfd) 0 / AOT -4,可后续 epoll_destroy)。 - 网络 Phase11(A.21.11):AOT-only 非阻塞 connect 经 epoll:set_nonblock→connect EINPROGRESS(-14)→epoll POLLOUT→SO_ERROR=0; 拒绝路径 -10;fixture
AOT_CONNECT_EPOLL_OK -14 1 0 -14 1 -10;事件循环 POC2AOT_EPOLL_ACCEPT_CONNECT_OK -14 3 8;NET_POC12_PASS。 - qpm 包级 SBOM/依赖图 POC:
qpm sbom --lockfile ... --out qpm.spdx.json [--vendor-dir](SPDX 2.3:packages=lock 依赖 name/version/downloadLocation/SHA256; files=vendor 每文件 SHA256;relationships DESCRIBES/CONTAINS/DEPENDS_ON;确定性 SOURCE_DATE_EPOCH;本地/绝对 downloadLocation → NOASSERTION 避免内部路径;--check缺失/多余 package/file、SHA256/downloadLocation 不符、关系缺失多余 loud);qpm graph --lockfile ... --out graph.json(节点/边/无环; 缺失节点/环 loud;--check缺失/多余/重复节点边 loud;SBOM DEPENDS_ON 与图同源);self 616/616、sbom 41/41;translog 46/69/45/50 保持。 残余:本地静态 POC、不宣称生产 SBOM 合规/传递依赖完整/签名/许可证分析/漏洞扫描;packages 仅 lock、files 仅 vendor;无外部 SPDX 验证/registry trust。 - 外部:IDE 0.19.0 overlay(vsix c5c62916…/165,396B,不随 tar;overlay 写“epoll 已集成/VM-AOT 未统一按 v290、Phase11 未落地不宣称”已滞后于 r32 树 ——语言树如实写“VM/AOT epoll 已统一、Phase11 AOT-only 已实现”,以语言树为准);RC5 外部(v1rc-review5,tar 4be15851…/1,927,955B/2,065 files;SBOM 0ca09c65…/948,553/fileCount 2,065,NOT PUBLISHED)。
- B2:P0/GITHUB v1.20.0-dev candidate(tar sha pending);RELEASING/GOV/SECURITY/SUPPORT v1.20.0;RELEASE_NOTES 1.20.0-dev;LSP 0.12 optional;OS SDK 1.17 保持。
- 锚点:bqvm 00642385/191,464B、bqvm_small 92a19392/191,464B、qboot 7248ce0d/531,322B、cgtest bcff08c8/194,772B、 cgtest_aot 920909ab/2,026,592B;bootstrap qboot=7248ce0d、stage0=7a954aa5、aot=920909ab;二次 build 全 SAME。
- 验证:build/二次 build SAME;test/fs/qfmt/async/float/cast/args/robustness/bench/net1–11/net12/epoll parity/net_aot/ qpm(616/55/47/37/29/38/46/69/45/50/sbom41) PASS;一致性 58/0/0;site build/selftest PASS。
- 残余:AOT async/io_wait 未实现(-8,不宣称 AOT async);epoll 句柄销毁未统一;AOT 浮点整体 parity 未达;AOT 网络仅 TCP/UDP loopback 子集; qpm SBOM 本地静态 POC;OS SDK 原型外部 NOT PUBLISHED;Windows AOT 不做;ASAN 非 clean;LSP 0.12 optional;发布 tar sha pending。
[1.19.0-dev] - 2026-10-31
[1.19.0-dev] - 2026-10-31
Q+ 1.19.0-dev(spec v4.50):AOT epoll 集成、网络 Phase10、qpm translog4、OS SDK 1.17。
- AOT epoll 集成(A.21.8,重点):native 225
sys_net_epoll_create1(291)、226sys_net_epoll_ctl(233,struct epoll_event 12B data.fd)、 227sys_net_epoll_wait(232,out 数组写回;就绪数/-2/-13/-4/-10);freestanding helper 合并后 6,953B / 0 reloc;natdisp 路由 200..227; fixtureepoll_loop_aot.q(listen+2 loopback client→非阻塞 accept→epoll_wait→echo→close,无 async/线程)→AOT_EPOLL_LOOP_OK 2 8/NET_POC10_PASS; rc=139 根因:合并态 helper 发射顺序(必须在 natdisp 前)/hex 与 n 与合并 blob 不一致(静默半损坏);已修复(helper 前发射、重建 helper 同步 hex+n、路由 227、映射 225-227)。 残余:仅 AOT 单线程 epoll POC;async/io_wait:io_wait 已 AOT 支持(AOT-only POC,见 spec A.30.7/A.30.8);其余 async 接口仍 -8,不宣称通用 AOT async 已支持;VM epoll 143–146 与 AOT 未统一、未做 VM-AOT diff;约 6–10 人日。 - 网络 Phase10(A.21.9):AOT fd 生命周期表(raw fd<4096 open/closed/kind;socket/accept 标记;close 清状态+UDP 队列);
udp_queue_len/drop/recvfrom/send/sendto/peer_port/poll/poll_out/so_error对 closed/非法 fd 归一 E_INVALID(-4)(与 VM 一致),double close -4; fixtureAOT_FD_LIFECYCLE_OK 0 0 -4 -4 -4 -4 -4 -4;poll2 感知 UDP 应用层队列 →AOT_NET_POLL2_APP_QUEUE_OK 1 15 16;NET_POC11_PASS; Phase9 旧边界(poll2 不感知应用队列 -13 / fd 生命周期差异 -10)已更新/归一。 - qpm translog4:checkpoint 链(seq/size 单调、same-size root 相等、prefix root、RFC6962 compact proof;rollback/split/坏签名 loud)、 freshness(verify-checkpoint --max-age stale/missing/非正窗口 loud;verify --freshness-max-age 联动)、多 witness 本地集合(witness set add/list、 verify-witness-set majority 默认且最少 2、跨 size --file compact proof、分歧/空集/非法 threshold loud);self 575/575、translog4 50/50、 translog 46、translog2 69、translog3 45;残余:本地文件 POC、无 online witness/gossip/checkpoint exchange、无 freshness/anti-rollback 对抗在线对手、 无 HSM/rotation/identity;local log 可被扣留/回滚;RFC6962 迁移旧 log 需重建;非生产。
- OS SDK 1.17:OS-10 PARTIAL→PASS(
os.sys::args_count/args_at包装 std.env argv;tests 28/28;exec 未实现如实);conformance 14 PASS/2 PARTIAL(OS-07/08)/4 BLOCKED;fuzz 7 组 339 checks(新增 args 26);api_stability 128/0;examples 5/5;qpm e2e 18/18;MVP/VM-only/AOT loud。 - 外部:IDE 0.18.0 overlay(vsix e334fa7e…/162,217B,不随 tar;overlay 写“epoll 外部 POC 未集成(v280)”已滞后,语言树如实写“AOT epoll 单线程 POC 已集成、async 未实现”);RC4 外部不随 tree/pack。
- B2:P0/GITHUB v1.19.0-dev candidate(tar sha pending);RELEASING/GOV/SECURITY/SUPPORT v1.19.0;RELEASE_NOTES 1.19.0-dev;LSP 0.12 optional。
- 锚点:bqvm 3cb6afff/191,432B、bqvm_small 87d6720f/191,432B、qboot 7248ce0d/531,322B、cgtest bcff08c8/194,772B、 cgtest_aot 920909ab/2,026,592B;bootstrap qboot=7248ce0d、stage0=7a954aa5、aot=920909ab;二次 build 全 SAME。
- 验证:build/二次 build SAME;test/fs/qfmt/async/float+transcendental/cast/args/robustness/bench/net1–11/net_aot/ qpm(575/55/47/37/29/38/46/69/45/50) PASS;一致性 58/0/0;site build/selftest PASS。
- 残余:AOT async/io_wait 未实现(-8,epoll 单线程 POC 已集成);AOT 浮点整体 parity 未达;AOT 网络仅 TCP/UDP loopback 子集; qpm translog4 非生产/无 online witness/gossip/freshness;OS SDK 原型外部 NOT PUBLISHED;Windows AOT 不做;ASAN 非 clean;LSP 0.12 optional;发布 tar sha pending。
[1.18.0-dev] - 2026-10-31
Q+ 1.18.0-dev(spec v4.49):argv args、qpm translog3、OS SDK 1.16;AOT epoll 外部 POC 未集成。
- argv args:
std.env.args_count() -> i32、args_at(idx, buf, cap) -> i32(程序参数、不含程序名;UTF-8 原始字节;idx 非法 -4, cap/capacity 不足 -9 不截断不写部分数据);VM native 223/224(bqvm argv),AOT ELF_startrsp 解析(ARGV_PTR=0x608008,natdisp 200..224); fixturesargs_vm.q/args_aot.q+tools/test_args_aot.sh→ARGS_AOT_PASS;docs/STD_API_ENV.md。 残余:仅 Linux x86-64 实测;Windows/Wine -4(不伪造);无 exec/UTF-8 校验;不提供args() -> str。 - qpm translog3:
qpm verify --transparency-sth STH --transparency-log LOG --transparency-pubkey PUB [--transparency-target](STH 签名→root 前缀→lock 每包 inclusion→照常 audit;缺参/坏签名/包不在 log/root 不符/越界/失败 loud;未配置兼容);qpm log witness --sth --out checkpoint [--pubkey](落盘验签标记)与qpm log verify-checkpoint(rollback loud;同 size 不同 root → SPLIT_VIEW; newer size 默认 size-only,--file用 compact proof → CONSISTENT);self 525/525、translog3 45/45、translog 46、translog2 69; 残余:无 online witness/gossip/checkpoint exchange、无 witnesses/auditors 网络、无 freshness/anti-rollback 对抗在线对手、无 HSM/rotation/身份认证; newer size 无--file仅 size 检查;旧 duplicate-odd log 需重建;非生产。 - AOT epoll/事件循环 POC(未集成):外部 POC 验证单线程 epoll 事件循环可行(
AOT_EPOLL_LOOP_OK 2 8/NET_POC10_PASS), 但合并入树后 helper/natdisp 集成NET10_RUN_FAIL(rc=139 段错误)→ 不集成 native 225–227、不加入 test.sh、不宣称 AOT epoll/async 已支持; async/io_wait:io_wait 已 AOT 支持(AOT-only POC,native 240-243);其余 async 接口仍 -8;评估/剩余工作量(约 6–10 人日:API 统一 0.5–1、定时器 2–3、io_wait/async 3–5、异常/生命周期 1–2)见 docs/AOT_EVENT_LOOP_FEASIBILITY.md。 - OS SDK 1.16:conformance 13/3/4;tests 27/27;fuzz 6 组 313 checks(新增 net5 36);api_stability 126/0;examples 5/5;qpm e2e 18/18; MVP/VM-only/AOT loud;Phase8/9 队列/accept -2 在 SDK 路径未证实(如实)。
- 外部:IDE 0.17.0 overlay(vsix 8cb08312…/158,704B,不随 tar;std.env args 已加而 0.17 overlay 滞后,如实标注);RC4 外部不随 tree/pack。
- B2:P0/GITHUB v1.18.0-dev candidate(tar sha pending);RELEASING/GOV/SECURITY/SUPPORT v1.18.0;RELEASE_NOTES 1.18.0-dev;LSP 0.12 optional。
- 锚点:bqvm f241b3cc/191,432B、bqvm_small 16ee23b4/191,432B、qboot 7248ce0d/531,322B、cgtest 55c63b87/192,600B、 cgtest_aot d789044d/2,020,624B;bootstrap qboot=7248ce0d、stage0=7a954aa5、aot=d789044d;二次 build 全 SAME。
- 验证:build/二次 build SAME;test/fs/qfmt/async/float+transcendental/cast/args/robustness/bench/net1–9/net_aot/ qpm(525/55/47/37/29/38/46/69/45) PASS;一致性 58/0/0;site build/selftest PASS。
- 残余:AOT 浮点整体 parity 未达(范围/未穷举);AOT epoll/async 未集成(-8);qpm translog3 非生产/无 online witness/gossip/freshness;OS SDK 原型外部 NOT PUBLISHED;Windows AOT 不做;ASAN 非 clean;LSP 0.12 optional;发布 tar sha pending。
[1.17.0-dev] - 2026-10-31
[1.17.0-dev] - 2026-10-31
Q+ 1.17.0-dev(spec v4.48):AOT 浮点池布局修复/超越函数 334 位级扫描、网络 Phase9、qpm translog2、IDE 0.16/RC4 外部。
- AOT 浮点池布局修复(重点):旧 float pool(0x609000)与 U64POOL/traceback shadow stack 重叠(安全容量 512 slots)→ 长扫描 SIGSEGV; pool 迁至 0x10800000..0x10F00000(917,504 slots),VM 数值语义零改动;
f64_transcendental_aot.q334 hex 位模式 (exp/log2/log10/log(x,2)/sin/cos/tan/sqrt/round/floor/ceil/trunc/pow)→ 334/334 位级一致(FLOAT_TRANSCENDENTAL_PASS); 仍不宣称 AOT 浮点整体 parity(sin/cos/tan |x|≤1e9;1e12 级 VM runtime error;未穷举)。 - 网络 Phase9:AOT UDP 应用层 16×256B 队列(native 221/222 queue_len/drop);
AOT_NET_UDP_APP_QUEUE_OK 20 16 4 15 0 -13, VM/AOT 逐字节一致;poll2 不感知应用队列(-13 文档化)、AOT fd 生命周期差异未归一化;epoll/async/io_wait -8。 - qpm translog2:RFC6962 Merkle MTH(leaf 0x00/internal 0x01);
qpm log consistency/verify-consistency(compact proof O(log n), 实测 1→8:3 hashes 等)+qpm log gossip(同 size 分裂 SPLIT_VIEW loud;不同 size compact proof 前缀 CONSISTENT); self 480/480、translog2 69/69、translog 46;RFC6962 迁移:旧 duplicate-odd log 不兼容需重建(未发布任何 log); 无 online gossip/witness/freshness/anti-rollback/verify --transparency-sth 联动;非生产/无身份认证。 - 外部:IDE 0.16.0 overlay(不随 tar);RC4(v1rc-review4)外部,语言树不引用内部路径。
- B2:P0/GITHUB v1.17.0-dev candidate(tar sha pending);RELEASING/GOV/SECURITY/SUPPORT v1.17.0;RELEASE_NOTES 1.17.0-dev; LSP 0.12 optional;OS SDK 1.15 保持。
- 锚点:bqvm 3c04689a/187,336B、bqvm_small a362904d/187,336B、qboot 7248ce0d/531,322B、cgtest 4d620b1f/192,361B、 cgtest_aot 9518f9c4/2,016,456B;bootstrap qboot=7248ce0d、stage0=7a954aa5、aot=9518f9c4;二次 build 全 SAME。
- 验证:build/二次 build SAME;test/fs/qfmt/async/float parity(含 transcendental 334/334)/cast/robustness/bench/net1–9/net_aot/ qpm(480/55/47/37/29/38/46/69) PASS;一致性 58/0/0;site build/selftest PASS。
- 残余:AOT 浮点整体 parity 未达(范围/未穷举如上);AOT 网络仅 TCP/UDP loopback 子集;qpm translog2 非生产/无 online gossip 等; OS SDK 原型外部 NOT PUBLISHED;Windows AOT 不做;ASAN 非 clean;LSP 0.12 optional;发布 tar sha pending。
[1.16.0-dev] - 2026-10-31
[1.16.0-dev] - 2026-10-31
Q+ 1.16.0-dev(spec v4.47):网络 Phase8、i32(u64) cast 修复、qpm 透明日志 POC、OS SDK 1.15。
- 网络 Phase8:AOT native 220
sys_net_poll2(fd1..fd4, events_mask, timeout)(每 fd 2-bit READ/WRITE 掩码; 返回就绪位掩码/-2/-13/-4);VM builtin 155 + net_poll2;fixtureAOT_NET_POLL2_OK 1 2/AOT_NET_PHASE6_PASS/NET_POC8_PASS;tools/test_net_fuzz.sh(NET_FUZZ_PASS=14 FAIL=0,固定用例,非穷举)。 - i32(u64) cast 修复:qboot
OP_U64_TO_INT+I2I对 boxed i64 cell 未解引用 → 旧 AOT 794625 vs VM 0;修复cg_emit_i2i_helper(tag0>>3、tag6/7 解引用、width 1/2/4/8 符号扩展)→ CAST_PARITY_PASS(u64→i32/i64、i64→i32、 边界/负/往返 VM/AOT 逐字节一致);docs/CAST_SEMANTICS.md;仍不宣称 AOT 浮点整体 parity(超越函数位级抽样/f32/print 残余)。 - qpm 透明日志 POC:qpm log append/sth/inclusion/verify-inclusion/verify-sth(Merkle log、signed STH、audit path;旧→新全量前缀一致性); self 411/411、translog 46/46;无 compact consistency proof/gossip/freshness/anti-rollback/split-view/verify --transparency-sth 联动。
- OS SDK 1.15:conformance 13/3/4;tests 27/27;fuzz 5 组 277 checks;api_stability 125/0;examples 5/5;qpm e2e 18/18; MVP/VM-only/AOT loud;Phase7 UDP 队列深度/accept -2 在 SDK 路径未证实(如实)。
- B2:P0/GITHUB v1.16.0-dev candidate(tar sha pending);RELEASING/GOV/SECURITY/SUPPORT v1.16.0;RELEASE_NOTES 1.16.0-dev;LSP 0.12 optional。
- 锚点:bqvm 3c04689a/187,336B、bqvm_small a362904d/187,336B、qboot 7248ce0d/531,322B、cgtest 279f1796/190,504B、 cgtest_aot 014f995e/2,010,736B;bootstrap qboot=7248ce0d、stage0=7a954aa5、aot=014f995e;二次 build 全 SAME。
- 验证:build/二次 build SAME;test/fs/qfmt/async/float parity/cast parity/robustness/bench/net1–8/net fuzz/net_aot/ qpm(411/55/47/37/29/38)/translog 46 PASS;一致性 58/0/0;site build/selftest PASS。
- 残余:AOT 网络仅 TCP/UDP loopback 子集;epoll/async/io_wait -8;AOT 浮点整体 parity 未达;qpm 透明日志非生产/无 gossip/freshness/anti-rollback; OS SDK 原型外部 NOT PUBLISHED;Windows AOT 不做;ASAN 非 clean;LSP 0.12 optional;发布 tar sha pending。
[1.15.0-dev] - 2026-10-31
Q+ 1.15.0-dev(spec v4.46):网络 Phase7、f64 bitcast/位级 parity、qpm 撤销、CONTRIBUTING/RELEASE_ENGINEERING/REPO_LAYOUT 文档。
- 网络 Phase7:send 跨线程确定性
SEND_CROSS_THREAD_OK;UDP 应用层有界队列 16×256B(sys_net_udp_queue_len/drop,UDP_APP_QUEUE_OK 20 16 4 15 0,AOT -8);accept 超时 E_TIMEOUT(-2) VM/AOT parity(ACCEPT_TIMEOUT2_OK -2/AOT_NET_ACCEPT_TIMEOUT_OK -2);NET_POC7_PASS。 - f64 bitcast/位级 parity:VM native 160/161 + AOT codegen helper + stdlib
f64_bits/f64_from_bits;f64_bits_aot.q(位模式/算术/±0/inf/NaN/超越函数位级抽样)→FLOAT_PARITY_PASS;已知未修差异:i32(u64值)cast AOT/VM 不一致 (VM 0 / AOT 794627,疑 tag6 未解引用)记录于 docs/FLOAT_PARITY.md;不宣称 AOT 浮点整体 parity。 - qpm 撤销:revocations.json root 签名 + detached sig;
qpm trust revoke/qpm revoke package|key;install/audit/verify--revocations/--revocations-pubkey验签并拒绝 revoked 版本/密钥;未配置兼容;revoke selftest 37/37、self 365/365、 prod 55/55、update 47/47;docs/QPM_TRANSPARENT_LOG_DESIGN.md(仅设计);非生产/无 online/无透明日志/无身份认证。 - 文档:CONTRIBUTING/RELEASE_ENGINEERING/REPO_LAYOUT + 2 site 页 + EN summaries/README/索引;gate 数值保持历史引用 FINAL_V240 并标注。
- B2:P0/GITHUB v1.15.0-dev candidate(tar sha pending);RELEASING/GOV/SECURITY/SUPPORT v1.15.0;RELEASE_NOTES 1.15.0-dev; LSP 0.12 optional;OS SDK 1.13 保持。
- 锚点:bqvm 62ad57c7/187,296B、bqvm_small 875a7b03/187,296B、qboot 7248ce0d/531,322B、cgtest 314697e3/188,699B、 cgtest_aot c54acc9d/2,001,960B;bootstrap qboot=7248ce0d、stage0=7a954aa5、aot=c54acc9d。
- 验证:build/二次 build SAME;test/fs/qfmt/async/float parity/robustness/bench/net1–7/net_aot/qpm(365/55/47/37) PASS; 一致性 58/0/0;site build/selftest PASS。
- 残余:AOT 网络仅 TCP/UDP loopback 子集(epoll/async/io_wait -8);AOT 浮点整体 parity 未达(i32(u64) cast 已知差异); qpm 撤销非生产/无透明日志;OS SDK 原型外部 NOT PUBLISHED;Windows AOT 不做;ASAN 非 clean;LSP 0.12 optional;发布 tar sha pending。
[1.14.0-dev] - 2026-10-31
Q+ 1.14.0-dev(spec v4.45):AOT 网络 Phase5(POLLOUT/nonblock connect 完成)、AOT 通用浮点比较修复、qpm outdated/update/vendor、语言指南扩展、OS SDK 1.13。
- AOT 网络 Phase5:native 218 poll_out(POLLOUT 4fd;-2/-13/-4)、219 so_error(SO_ERROR 0/-10);nonblock connect 完成
AOT_NET_CONNECT_NB_OK -14 1 0;AOT_NET_POLLOUT_OK 1 -4;AOT_NET_PHASE5_PASS;epoll/async/io_wait:io_wait 已 AOT 支持(AOT-only POC,native 240-243);其余 async 接口仍 -8。 - AOT 浮点比较修复(重点):AOT f64 CMP_EQ/NE/LT/GT/LE/GE 改数值比较(ucomisd;NaN EQ/LT/GT/LE/GE=false、NE=true;±0 相等; ±inf IEEE;非 float 路径不变;混合 int/float 经转换);
f64_cmp_aot.q/f64_parity_aot.q→ FLOAT_PARITY_PASS; 仍不宣称 AOT 浮点整体 parity(未穷举所有 stdlib 数学函数/极端输入;AOT print 6 位未位级比对;f32/Windows/ARM64 未覆盖; NaN 构造特殊;混合比较仅 int/float)。 - qpm outdated/update/vendor:outdated(current/wanted/latest/yanked,JSON)、update(all-or-nothing 回滚/dry-run/未选包 pin)、 vendor --check(缺失/多余/篡改/per-file loud);self 328/328、update 47/47、production 55/55、sign 29/29、trust 38/38;非生产/离线。
- 语言指南:LANGUAGE_GUIDE 五章(错误模型/类型边界/并发/网络/AOT 差异表,含 AOT 浮点比较已修/其他残差)+ .en + site 页; EN summaries 更新。
- OS SDK 1.13:conformance 13/3/4;tests 27/27;fuzz 4 组 248 checks(net3 29);api_stability 123/0;examples 5/5;qpm e2e 18/18; MVP/VM-only/AOT loud/非发布;net 仅 loopback POC。
- B2:P0/GITHUB v1.14.0-dev candidate(tar sha pending);RELEASING/GOV/SECURITY/SUPPORT v1.14.0;RELEASE_NOTES 1.14.0-dev;LSP 0.12 optional。
- 锚点:bqvm 141e980b/187,088B、bqvm_small 3e6eee3f/187,088B、qboot 7248ce0d/531,322B、cgtest 664d7648/187,002B、 cgtest_aot 235b0d3e/1,989,608B;bootstrap qboot=7248ce0d、stage0=7a954aa5、aot=235b0d3e。
- 验证:build/二次 build SAME;test/fs/qfmt/async/float parity/robustness/bench/net1–6/net_aot/qpm(328/55/47) PASS;一致性 58/0/0;site build/selftest PASS。
- 残余:AOT 网络仅 TCP/UDP loopback 子集;epoll/async/io_wait -8;AOT 浮点整体 parity 未达(比较已修,其他残差);qpm 更新/签名非生产; OS SDK 原型外部 NOT PUBLISHED;Windows AOT 不做;ASAN 非 clean;LSP 0.12 optional;发布 tar sha pending。
[1.13.0-dev] - 2026-10-30
Q+ 1.13.0-dev(spec v4.44):AOT 网络 Phase4(TCP 非阻塞/单次 poll)、浮点 pow parity 修复、qpm 信任链/索引签名、下载页模板/部署、OS SDK 1.12。
- AOT 网络 Phase4:native 217 单次 poll(固定 4 fd POLLIN);TCP 非阻塞 connect -14/-13、accept/recv/send -13;
AOT_NET_TCP_NB_OK -13 -13 -10、AOT_NET_POLL_OK 1 1、AOT_NET_PHASE4_PASS;connect 非阻塞完成/epoll/async/io_wait:io_wait 已 AOT 支持(AOT-only POC,native 240-243);其余 async 接口仍 -8。 - 浮点 pow 修复:AOT 浮点比较非数值比较导致 pow fast-path 失效;stdlib 整数判断修复 → AOT
POW_OK 1024.000000 0.125000(VM 一致);FLOAT_PARITY_PASS。不宣称 AOT 浮点整体 parity(通用比较未修,exp/log/round 等可能不一致,见 docs/FLOAT_PARITY.md)。 - qpm 信任链:root-signed index(publish --sign-key → index.json.sig;verify-index;install --index-pubkey)、TOFU keyring(trust add/list/show/remove)、 密钥轮换设计 doc;self 281/281、trust 38/38;非生产/无身份认证/无撤销。
- 下载页/部署:site/content/download.md 模板(全部 待定值
[待定],无真实 URL/指纹)、deploy/nginx-site.conf.example、 deploy/README_DEPLOY.md;EN summaries/索引更新。 - 延续性(历史回归):P3-A3(u64 cast/API) 能力自 v1.2 起保持,spec v4.44 下 u64 parity/边界回归测试 PASS(无回退);本行保留发布门禁 G6 检查锚点,属于历史能力继承说明而非新特性。
- OS SDK 1.12:conformance 13/3/4;tests 27/27;fuzz 3 组 219 checks(net2 30);api_stability 122/0;examples 5/5;qpm e2e 18/18; MVP/VM-only/AOT loud/非发布;net 仅 loopback POC。
- B2:P0/GITHUB v1.13.0-dev candidate(tar sha pending);RELEASING/GOV/SECURITY/SUPPORT v1.13.0;RELEASE_NOTES 1.13.0-dev;LSP 0.12 optional。
- 锚点:bqvm ec4c33bc/182,904B、bqvm_small 7f457834/182,904B、qboot 7248ce0d/531,322B、cgtest 27f477f4/181,436B、 cgtest_aot 1a845fe1/1,882,496B;bootstrap qboot=7248ce0d、stage0=7a954aa5、aot=1a845fe1。
- 验证:build/二次 build SAME;test/fs/qfmt/async/float parity/robustness/bench/net1–6/net_aot/qpm(281/55/29/38) PASS;一致性 58/0/0;site build/selftest PASS。
- 残余:AOT 网络仅 TCP/UDP loopback 子集(connect 非阻塞完成/epoll/async/io_wait -8;无 DNS/TLS/公网/生产);AOT 浮点整体 parity 未达; qpm 信任链非生产;OS SDK 原型外部 NOT PUBLISHED;Windows AOT 不做;ASAN 非 clean;LSP 0.12 optional 不进 tar;发布 tar sha pending。
[1.12.0-dev] - 2026-10-30
Q+ 1.12.0-dev 集成版(spec v4.43 候选):STD API 差异修复、AOT 网络 Phase3、qpm 签名 POC、Playground/Wine 文档、B2 口径。
- STD 修复(dev157_std):
str_charsUTF-8 code point(VM/AOT parity);array_get_checked越界 -4(AOT rc=5 loud 如实);powVM 整数平方-乘精确(AOT 浮点残差 1023.968088 如实记录);str_to_int 前缀解析文档化;STD_API 差异表 §5/§6。 - AOT 网络 Phase3(aotnet4):native 215 set_timeout(UDP recvfrom 超时 -2
AOT_NET_UDP_TIMEOUT_OK)、 native 216 set_nonblock(UDP nonblock -13AOT_NET_UDP_NB_OK)、TCP accept 超时 -10AOT_NET_ACCEPT_TIMEOUT_OK; TCP _nb/poll/epoll/async 仍 -8(仅评估);仅 Linux x86-64 loopback、opt-in、非生产。 - qpm 签名 POC:Ed25519/RSA detached(OpenSSL CLI)+
qpm verify-signature;sign 29/29、self 243/243、production 55/55; 不宣称生产签名/身份认证。 - 文档/站点:PLAYGROUND.md 真实限额、WINDOWS_WINE_GUIDE.md(mingw+wine PASS=27/0/2)、SBOM 签名段、site 更新; 页数/checks 按最终构建实测。
- B2:P0/GITHUB v1.12.0-dev candidate(tar sha pending);RELEASING/GOV/SECURITY/SUPPORT v1.12.0;RELEASE_NOTES 1.12.0-dev; LSP 0.12 optional;OS SDK 1.10 保持。
- New anchors:bqvm b862b57f/182,872B、bqvm_small 7a960cfe/182,872B、qboot 7248ce0d/531,322B、 cgtest b7028af7/180,542B、cgtest_aot d26117d7/1,881,704B;bootstrap qboot=7248ce0d、stage0=7a954aa5、aot=d26117d7。
- 验证:build 5 锚点一致;test/fs/qfmt/async/robustness/bench/net1–6/net_aot/qpm(243/55/29) PASS;一致性 58/0/0; 二次 build 全 SAME;site build/selftest PASS。
- 残余:AOT 网络仅 TCP/UDP loopback 子集(nonblock/poll/epoll/async -8;无 DNS/TLS/公网/生产);AOT 浮点不一致(pow); AOT array_checked rc=5;网络 POC 非生产;qpm 签名 POC 非生产;OS SDK 1.10 原型外部 NOT PUBLISHED;Windows AOT 不做; ASAN 非 clean;LSP 0.12 optional 不进 tar;发布 tar sha pending。
[1.11.0-dev] - 2026-10-30
[1.10.0-dev] - 2026-10-30
[1.9.0-dev] - 2026-10-30
Q+ 1.9.0-dev 集成版(spec v4.40 候选):网络 Phase4、AOT-net 可行性结论 B、qpm 生产化 POC、OS SDK 1.9.0、ASAN/AOT 覆盖。
- 网络 Phase4(task-242):驻留 epoll(有界 4×8)
EPOLL_ECHO_OK 2;跨线程 closeCROSS_THREAD_CLOSE_OK(close 路径加锁、等待路径无锁/竞态文档化);UDP async timeoutUDP_ASYNC_TIMEOUT_OK -2;残余(有界/非完整驻留、非生产并发保证)。 - AOT-网络可行性(task-243,结论 B):VM parity/helper 2,167B/0 reloc/codegen 原型已验证,但 codegen 改动后自举 AOT 工具 SIGSEGV(TOOL_FIXED=NO),本轮不交付 AOT 网络;AOT 对 sys_net_*/std.net 保持 loud;未来路径见 docs/AOT_NET_FEASIBILITY.md。
- qpm 生产化 POC(task-247):tools/qpm overlay(本地静态 registry/批量并行/per-file sha256/多包 index); self 236/236 + production 55/55 PASS;NOT PUBLISHED/无中心服务/0.5-alpha POC。
- OS SDK 1.9.0(task-246):conformance 12/4/4(OS-16/17→PASS、OS-08 PARTIAL);fuzz 189;API_REFERENCE 0 broken; tests 25/25、api_stability 116/0、examples 5/5、qpm e2e 18/18;net loopback POC;仍 MVP/原型/VM-only。
- ASAN/AOT 覆盖(task-244):AOT ELF 14×5 0 crash、畸形 qbc 26 个 0 崩溃/19 loud、ASAN 抽验 0 error/0 leak; 限制如实(无插桩/泄漏可能漏检);不宣称 AOT 内存安全/ASAN clean。
- B2:P0/GITHUB_READY v1.9.0-dev candidate(tar sha pending);RELEASING/GOV/SECURITY/SUPPORT v1.9.0; RELEASE_NOTES 1.9.0-dev;LSP 0.12 optional。
- New anchors:bqvm b526b807/182,872B、bqvm_small bd0dec4b/182,872B、qboot 7248ce0d/531,322B、 cgtest 1dc2d240/168,059B、cgtest_aot cbd42172/1,811,976B;bootstrap qboot=7248ce0d、stage0=7a954aa5、aot=cbd42172。
- 验证:build 5 锚点一致;test/fs/qfmt/async/robustness/bench/net2/3/4/qpm PASS;一致性 PASS;二次 build 全 SAME;site build/selftest PASS。
- 残余:网络非生产可用(无 DNS/TLS/公网;非完整驻留事件循环/并发保证);AOT 网络未实现(loud,结论 B); AOT 多模块仍 POC;OS SDK 原型外部 NOT PUBLISHED;Windows AOT 不做;ASAN 非 clean;LSP 0.12 optional 不进 tar;发布 tar sha pending。
[1.8.0-dev] - 2026-10-30
Q+ 1.8.0-dev 集成版(spec v4.39 候选):TC15 剩余边界、网络 Phase3、AOT 字符串优化、UB 修复/ASAN 审计、EN 站点、OS SDK 1.8.0。
- TC15 剩余边界(task-231):u64 二进制
0b…字面量 [0,2^64-1](修复 65 位静默 wrap);负 u64 编译期 loud, 合法0 - x;u64 常量池 3072 超出 loud;其它上下文仍 TC15。 - 网络 Phase3(task-230):有界多路复用
sys_net_poll(≤4 fd)POLL_ECHO_OK 2;async UDPASYNC_UDP_OK 4; UDP nonblock/timeoutUDP_TIMEOUT_OK -13 -2;close-wakeupCLOSE_WAKEUP_OK -4 -4 -4;残余(非驻留 epoll/跨线程竞态未验证/无 DNS/TLS/公网)。 - AOT 字符串优化(task-232):str_cat repne scasb/rep movsb;string AOT/VM 1.607×→1.1834×(AOT ↓约 26%), 仅拼接路径;残余不可变字符串 O(n²) append、bench 非权威。
- UBSAN 修复/ASAN 审计(task-236):0 ASAN error、0 leak;2 处 Low UB(F-01/F-02)已修并复验;盲区如实 (AOT/Windows/ARM64 未插桩、ucontext、Linux-only、非 release gate;不宣称 ASAN clean/整体安全)。
- EN 站点(task-234):v180-docs 应用后升级 1.8.0;SPEC_SUMMARY/README;site 更新。
- OS SDK 1.8.0(task-235):TCP+UDP loopback + async POC、CAPS 63;conformance 10/6/4、tests 25/25、 api_stability 116/0、examples 5/5、qpm e2e 18/18;仍 MVP/原型/VM-only、无 DNS/TLS/公网、AOT/Windows/裸机 BLOCKED。
- LSP 0.12 optional;B2:P0/GITHUB_READY v1.8.0-dev candidate(tar sha pending);RELEASING/GOV/SECURITY/SUPPORT v1.8.0; RELEASE_NOTES 1.8.0-dev。
- New anchors:bqvm 0fb52c4e/178,592B、bqvm_small 88f838aa/178,592B、qboot 7248ce0d/531,322B、 cgtest 1dc2d240/168,059B、cgtest_aot cbd42172/1,811,976B;bootstrap qboot=7248ce0d、stage0=7a954aa5、aot=cbd42172。
- 验证:build 5 锚点一致;test PASS;fs/qfmt/async/robustness/bench/net2/net3 PASS;一致性 PASS;二次 build 全 SAME;site build/selftest PASS。
- 残余:网络非生产可用(无 DNS/TLS/公网;非驻留 epoll);AOT 多模块仍 POC;OS SDK 原型外部 NOT PUBLISHED; Windows AOT 不做;ASAN 非 clean 声明;LSP 0.12 optional 不进 tar;发布 tar sha pending。
[1.7.0-dev] - 2026-10-30
Q+ 1.7.0-dev 集成版(spec v4.38 候选):u64 大整数字面量、网络 Phase2、Playground 部署、EN 文档、OS SDK 1.7.0、B2 口径。
- u64 大整数字面量(task-221):u64 上下文十进制/hex [0,2^64-1];超 u64 max loud
exceeds u64 max; i32/i64/负字面量不变;qbc type11 raw u64;残余(二进制大字面量未纳入/负 u64 unary-minus/AOT 常量池 3072)。 - 网络 Phase2(task-220):非阻塞 accept_nb/connect_nb/send_nb/recv_nb(EAGAIN -13/INPROGRESS -14)、 osfd+io_wait;async 2 连接 echo
ASYNC_ECHO_OK 2;UDPUDP_ECHO_OK 4 112 105 110 103; 超时/close-wakeupTIMEOUT_CLOSE_OK -2 0 -4 -4;残余(任务内 io_wait 轮询/close shutdown 近似/UDP 无超时细化)。 - Playground 部署(task-223):deploy/playground 模板 + docs/PLAYGROUND_DEPLOY.md(本地/非公开/非安全边界, Docker 模板未生产验证,不得公网暴露)。
- EN 文档(task-224):SPEC_SUMMARY.en/WHATS_NEW_1.6.0.en/11 篇 English summary/ENGLISH_SUMMARIES/site 英文摘要 18/18。
- OS SDK 1.7.0(task-222):os.net loopback POC(CAPS_DEFAULT=63);conformance 10/6/4、tests 23/23、 api_stability 101/0、examples 4/4、qpm e2e 18/18;仍 MVP/原型/VM-only、无 async/UDP/DNS/TLS/公网、AOT/Windows/裸机 BLOCKED。
- LSP 0.12 optional;B2:P0/GITHUB_READY → v1.7.0-dev candidate(tar sha pending);RELEASING 等版本更新; RELEASE_NOTES 1.7.0-dev;TC15 更新(u64 上下文放开)。
- New anchors:bqvm d94acecf/178,440B、bqvm_small 023473d1/178,440B、qboot 62eaff82/528,957B、 cgtest 3fffcbae/168,749B、cgtest_aot 3cbcc406/1,811,976B;bootstrap qboot=62eaff82、stage0=7a954aa5、aot=3cbcc406。
- 验证:build 5 锚点一致;test PASS;fs/qfmt/async/robustness/bench PASS;一致性 PASS;二次 build 全 SAME;site build/selftest PASS。
- 残余:网络非生产可用(无 DNS/TLS/公网);AOT 多模块仍 POC;OS SDK 原型外部 NOT PUBLISHED;Windows AOT 不做; 编辑器 0.6.0 overlay;LSP 0.12 optional 不进 tar;发布 tar sha pending。
[1.6.0-dev] - 2026-10-30
Q+ 1.6.0-dev 集成版(spec v4.37 候选):网络 sys Phase1 POC、A5 残余收口、benchmark 基线、英文文档/摘要、 B2 文档修复、编辑器对齐。
- 网络 Phase1(task-210):VM-only TCP loopback builtin(socket/bind/listen/accept/connect/send/recv/close/ local_port);fd 表 32/消息 ≤65535/IPv4 字面量无 DNS;opt-in
QPLUS_NET_REAL=1、非 loopback 需QPLUS_NET_ALLOW_NONLOOPBACK=1(否则 E_PERM);loopback 实测NET_POC_OK 4 4 112 105 110 103; AOT 对新 sys loud、Windows/ARM64 E_UNSUPPORTED(-8);无异步/UDP/DNS/TLS/公网(Phase2)。 - A5 残余收口(task-211):
sys_svcAOT 可达性门控;IO cap/timeout env(仅下调/仅 io_wait/非法回退, 间接 fn ptr 保守如实)。 - Benchmark(task-214):
bench/BASELINE_1.5.0.{json,md}+check_regression.sh+BENCHMARK_EVIDENCE.md; 单机/非权威/仅回归;string AOT ~1.63× VM、float 受限。 - 英文文档(task-213):ENGLISH_SUMMARIES/WHATS_NEW_1.5.0.en/README.en/FAQ/LANGUAGE_GUIDE/QUICKSTART/site 英文页。
- B2 文档修复:P0/GITHUB_READY 事实→v1.6.0-dev candidate(tar sha pending);RELEASING/GOVERNANCE/ SECURITY/SUPPORT 版本更新;README/ROADMAP OS SDK 1.6.0-prep、LSP 0.6.0 支持 + 0.9/0.10/0.11 optional; RELEASE_NOTES_v1.0.0 改写为 v1.6.0-dev 现状;TC15 边界(hex >i64max 常量编译期 loud)记录。
- 编辑器对齐:源码 editors/vscode 为 0.5.0 dev 基线;发布 pack 的 editors 0.6.0 由 release engineering overlay 构建(BUILDING/README 明确)。
- New anchors:bqvm 7068ad0e/170,000B、bqvm_small 3616ef91/170,000B、qboot 24732157/527,777B、 cgtest 3fffcbae/168,749B、cgtest_aot 3cbcc406/1,811,976B;bootstrap qboot=24732157、stage0=7a954aa5、cgtest_aot=3cbcc406。
- 验证:build 5 锚点一致;test PASS;fs/qfmt/async/robustness/bench PASS;portability 11/0/3; 一致性脚本 PASS;二次 build 全 SAME;site build/selftest PASS。
- 残余:网络非生产可用(无异步/UDP/DNS/TLS/公网);AOT 多模块仍 POC(2.0 未完成);OS SDK 原型外部、 NOT PUBLISHED;Windows AOT 1.4.x 不做;编辑器 0.6.0 overlay;LSP 0.11 optional 不进 tar。
[1.5.0-dev] - 2026-10-30
Q+ 1.5.0-dev 集成版(spec v4.36 候选):u64 bitwise、AOT 多模块 POC3、qfmt v3、OS SDK 1.6.0-prep、 LSP 0.11 optional、文档/站点刷新。
- u64 bitwise(task-200):VM 新 opcode 0x82–0x87;
& | ^ ~ << >>raw 64-bit 无符号;<<wrap、>>逻辑右移;移位计数 clamp [0,63](负数→0,>63→63);结果无符号打印;u64×非字面量 signed → TC9 loud; float/bool/nil 未放开;旧 qbc 工具链同步 bootstrap。 - AOT 多模块 POC3(task-201):符号/导入导出模型 POC((module,symbol)→global、冲突 loud; telemetry exports=4/resolved=1);泛型 Box<i32>/<f64> parity
18 2.500000;增量缓存 POC ELF 级 HIT=2/MISS=2(per-module object 未实现,属 2.0);模块级诊断 telemetry;完整 2.0 仍 6–8/9–13 周 HIGH。 - qfmt v3(task-203):FORMATTER v3(项目级/配置发现/git 根/CI);qfmt checks 306/0;CI 一致性 49 checks。
- OS SDK 1.6.0-prep(task-202):API 冻结候选(E_* 13 项/句柄/能力);新增 docs/OS_SDK_API_STABILITY.md、 docs/OS_SDK_NET_DESIGN.md;net 仍 BLOCKED(4–6 周分阶段设计);tests 23/23、conformance 10/5/5、示例 3/3、 api_stability 99/99。
- LSP 0.11(task-204):0.6.0 支持 + 0.9/0.10/0.11 optional(不进 tar、不发布 Marketplace)。
- 站点:新增 u64-bitwise 页;更新 aot-native-modules(POC3)/toolchain-status(v4.36 锚点);Playground 示例。
- New anchors:bqvm 42d73aaa/165,384B、bqvm_small 73f6921f/165,384B、qboot 24732157/527,777B、 cgtest 5db59166/165,395B、cgtest_aot 013b3777/1,766,624B;bootstrap qboot=24732157、stage0=7a954aa5、 cgtest_aot=013b3777。
- 验证:build 5 锚点一致;test PASS;fs PASS;qfmt 306/0;async 30/30;robustness PASS;portability 11/0/3; 一致性脚本 PASS;二次 build 全 SAME;site build/selftest PASS。
- 残余:u64 float/bool/nil 未放开、旧工具链同步残留;AOT 多模块仅 POC(per-module object/完整符号模型/ 泛型布局校验/模块级 module:line 未实现,2.0 仍 6–8/9–13 周 HIGH);OS SDK 原型外部、NOT PUBLISHED; Windows AOT 1.4.x 不做;LSP 0.11 optional 不进 tar。
[1.4.9-dev] - 2026-10-30
Q+ 1.4.9-dev 集成版(spec v4.35 候选):i64 位运算 AOT、AOT 多模块 POC 扩展、qfmt v2、OS SDK 1.5.5、 LSP 0.10 optional、文档/站点刷新。
- i64 位运算 AOT(task-190):boxed/tagged i64 位运算全 64-bit(AND/OR/XOR/NOT),SHL wrap、 SHR 算术右移、移位计数 clamp [0,63];tag7/tagged/bool/nil 正确;u64 bitwise 仍 TC20 不支持; float/string 操作数 AOT loud vs VM 转换差异如实。
- AOT 多模块 POC 扩展(task-191):AOT loader 接受 qbc v1/v2/v3/v4(v2 C-lite 纳入); modules_b9 多共享类型(Pair/Color/Vec2)+ 两层依赖 A→B→C;模块 init 语义说明;POC 限制:无独立 fixup 表/模块符号模型/缓存/泛型布局/模块级诊断;完整 2.0 仍 6–8/9–13 周 HIGH。
- qfmt v2(task-193):FORMATTER v2(配置/CLI/CI);docs/CI.md 更新;tests 255/0。
- OS SDK 1.5.5(task-192):net 仍 BLOCKED + 语言侧工作清单(4–6 周预估);tests 23/23、 conformance 10 PASS/5 PARTIAL/5 BLOCKED;t_hard2 硬化;AOT 全量 loud/不提供 adapter。
- LSP 0.10(task-194):0.6.0 支持 + 0.9.0/0.10.0 optional(不进 tar/不发布 Marketplace)。
- 文档/站点(task-195):LOW 修复/全仓当前语境;site 4 新页(hex-float/qfmt/aot-native-modules/win32-aot)
- 7 页更新 + Playground 3 示例;site build 57 页、selftest 127/127 checks PASS。
- New anchors:bqvm 4f3bf0e6/165,384B、bqvm_small b317e7bf/165,384B、qboot 54c98607/527,081B、 cgtest 3c0cad14/161,879B、cgtest_aot 868982f2/1,733,792B;bootstrap qboot=54c98607、stage0=7a954aa5、 cgtest_aot=868982f2。
- 验证:build 5 锚点一致;test PASS;fs PASS;qfmt 255/0;async 30/30;robustness PASS; portability 11/0/3;一致性脚本 PASS;二次 build 全 SAME;site build/selftest PASS。
- 残余:i64 float/string 位运算 AOT loud 差异;AOT 多模块仅 POC(完整 2.0 未完成); OS SDK 原型外部、NOT PUBLISHED;Windows AOT 1.4.x 不做(spike3 4–6/6–9 周 MEDIUM-HIGH historical)。
[1.4.8-dev] - 2026-10-30
Q+ 1.4.8-dev 集成版(spec v4.34 候选):hex float、AOT 多模块 POC、qfmt、OS SDK 1.5.4、Windows AOT spike3。
- 十六进制浮点(task-181):C99 hex float(
0x1.8p3,p 必需;≤53 位精确;>53 RNE;溢出严格 >DBL_MAX 编译期 loud;下溢 IEEE ±0;raw ≤2048;宿主 strtod hex 依赖);13/13 C strtod bits 对照 + p06 VM/AOT parity;残余如实。 - AOT 多模块 POC(task-182):qbc_loader 接受 v1/v3/v4(v2 C-lite loud 保持);原生
--module-mapqbc v4 直读;modules_b8(共享 struct Pair + 跨模块 geom_sum)VM/AOT 逐字节一致7 15; POC 限制:单层跨模块/单一共享类型/无增量缓存/无符号模型/无 module:line;完整 2.0 仍 6–8/9–13 周 HIGH。 - qfmt(task-185):代码格式化器实装,docs/FORMATTER.md;tests PASS=188/0(idempotent/canonical)。
- OS SDK 1.5.4(task-184):os.sync(同 VM CAS mutex/once/condvar + 跨线程 channel-token mutex); tests 22/22、conformance 10 PASS/5 PARTIAL/5 BLOCKED;atomic 非硬件原子/线程间不共享可变内存/ condvar 非阻塞等限制如实。
- Windows AOT spike3(task-183):5/5 fixtures PASS、缺口清单;估算 乐观 4–6 周/悲观 6–9 周 MEDIUM-HIGH; spike2 保留 historical;1.5 立项建议暂缓/有界 POC;1.4.x 仍不做。
- New anchors:bqvm 4f3bf0e6/165,384B、bqvm_small b317e7bf/165,384B、qboot 54c98607/527,081B、 cgtest f24e5c1a/164,459B、cgtest_aot abf3d5f0/1,479,840B;bootstrap qboot=54c98607、stage0=7a954aa5、 cgtest_aot=abf3d5f0。
- 验证:build 5 锚点一致;test PASS(含 fs/P5/P6/POC/qfmt);fs PASS;qfmt 188/0;async 30/30; robustness/bench PASS;portability 11/0/3;一致性脚本 PASS;二次 build 全 SAME。
- 残余:hex float 依赖宿主 strtod/raw≤2048;AOT 多模块仅 POC(2.0 未完成);qfmt 边界/注释保留限制见 FORMATTER.md;OS SDK 原型外部、NOT PUBLISHED;Windows AOT 1.4.x 不做。
[1.4.7-dev] - 2026-10-30
Q+ 1.4.7-dev 集成版(spec v4.33 候选):浮点正确舍入全链、线程/池错误 module:line、P0 CI、OS SDK 1.5.3、 AOT-native 设计摘要(不做)、LSP 0.9 optional。
- 浮点正确舍入(task-171):任意精度十进制→binary64 正确舍入(round-to-nearest-even,次正规/溢出门限);
sys_f64_bits_from_dec→qbc type12 raw bits→VM/AOT 逐位一致;严格 >DBL_MAX 编译期 loud(行为变化, VM/AOT 一致);残余:strtod 来源/≤2048 字节、十六进制浮点不支持(loud)。 - 线程/池 module:line(task-172):线程/池错误前缀接入 qbc v4 hints,输出
[thread N]/[pool id job n] Runtime error: module <pkg.module>:<line>: <class>: <detail>;traceback 每帧 module:line;class 与主路径一致;v1/v2/v3 旧 qbc 保持旧文本(不宣称),AOT 不变。 - P0 CI(task-175):新增 docs/CI.md +
.github/workflows/ci.yml+tools/check_release_consistency.sh(发布一致性/文档锚点检查);CI 门禁与本地脚本一致。 - OS SDK 1.5.3(task-174):std.fs 接入、
os_*API 改名;tests 20/20、conformance 10 PASS/5 PARTIAL/5 BLOCKED(OS-06 PASS);seek/tell 模拟、递归删除等 BLOCKED 如实。 - AOT-native 设计(task-173):docs/AOT_NATIVE_MODULES_2.0_DESIGN.md 摘要(乐观 6–8/悲观 9–13 周 HIGH; 1.4.x 不做;POC merged 单文件 PASS);LSP 0.9 optional dev(不进 tar/不发布 Marketplace)。
- New anchors:bqvm
14cd060c…/165,336B、bqvm_smallddb7df04…/165,336B、qboot.qbc9579e7e1…/525,778B、 cgtest.qbc8df440f6…/162,542B、cgtest_aot8d6b69b2…/1,451,168B;bootstrap qboot=9579e7e1、stage0=7a954aa5、 cgtest_aot=8d6b69b2;SHA256SUMS 同步。 - 验证:build 5 锚点一致;test PASS(含 fs/P5/P6);fs PASS;async 30/30;robustness/bench PASS; portability 11/0/3;一致性脚本 PASS;二次 build 全 SAME。
- 残余:浮点 strtod 来源/≤2048/十六进制 loud;线程/池仅 v4 hints;AOT-native 2.0(设计不做); OS SDK 原型外部、NOT PUBLISHED;LSP 0.9 optional 不进 tar。
[1.4.6-dev] - 2026-10-30
Q+ 1.4.6-dev 集成版(spec v4.32 候选):qbc v4 调试信息、std.fs 实装、文档清理 LOW、OS SDK 1.5.2、 Windows AOT spike2。
- qbc v4 调试信息(向后兼容):原生多模块产物 version=4(v3 布局 + per-function segment hints); v1/v2/v3 旧 qbc 双读;VM 主错误路径统一
Runtime error: module app.util:<line>: <class>: <detail>(div/bounds/assert/wrap 等), traceback 每帧 module:line;线程/池错误前缀仅保留 line/pc(module:line 部分/后续,不宣称);AOT v4 仍 loud 拒绝。 - std.fs 实装:std.fs 文件 API/限制(Windows stub、AOT loud、无递归/符号链接等);docs/STD_FS.md 实装页 替换 planned 占位;spec §12 std.fs 能力/限制。
- 文档清理 LOW:Docs 索引、QPM/LSP/TSAN/OS SDK 页一致性、P0/GITHUB_READY 更新(30 文件修复)。
- OS SDK 1.5.2:qpm install/vendor e2e 18/18 PASS、tests 19/19、conformance 9 PASS/6 PARTIAL/5 BLOCKED(未虚增;net/裸机/平台仍 BLOCKED)。
- Windows AOT spike2:新增 docs/WIN32_AOT_SPIKE2.md;估算更新 乐观 5–8 周/悲观 8–11 周、MEDIUM-HIGH, spike1 保留 historical;1.4.x 仍不做 Windows AOT。
- New anchors:bqvm
51b5f0f2…/161,040B、bqvm_small9eb42f70…/161,040B、qboot.qbc0090d0ab…/524,207B、 cgtest.qbc209be123…/162,176B、cgtest_aot5b9cf1a4…/1,447,072B;bootstrap qboot=0090d0ab、stage0=7a954aa5、 cgtest_aot=5b9cf1a4;SHA256SUMS 同步。 - 验证:build 5 锚点一致;test PASS(含 fs/P5);fs PASS;async 30/30;portability 11/0/3;二次 build 全 SAME。
- 残余:qbc v4 行表语句起点粒度(近逐指令)、线程/池前缀仅 line/pc(module:line 不宣称);std.fs Windows stub/AOT loud; AOT-native 2.0;Windows AOT 不做;OS SDK 原型外部、NOT PUBLISHED。
[1.4.5-dev] - 2026-10-30
Q+ 1.4.5-dev 集成版(spec v4.31 候选):浮点字面量定义域、qbc v3 + VM runtime module:line、 qpm install/vendor 文档、TSAN 实测边界、Windows AOT spike、OS SDK 1.5.1。
- 浮点字面量定义域:合法十进制字面量域/round-to-nearest-even/次正规/DBL_MAX/下溢 ±0/上溢 overflow loud 双端一致(VM/AOT 同文本);残余:保守边界/1 ulp 差异文档化(不静默错值)。
- qbc v3 + runtime module:line:原生多模块产物 qbc version=3(v1 单文件/v2 C-lite 完全不变); source segment table 映射源码行→模块;bqvm runtime error 输出
Runtime error: module app.util:2: division_by_zero: division by zero;AOT 对 v3 仍 loud 拒绝; sidecar<out>.qbc.map保留。 - qpm install/vendor 文档:新增 docs/QPM_INSTALL.md(install/vendor 锁与离线约束); QPM_SIGNING/QPM_REGISTRY_V2 保留;
tools/qpm不进语言树(发布工程 overlay)。 - TSAN 实测边界:新增 docs/TSAN_LIMITATIONS.md(ucontext 漏报实证、非 async 子集可构建、 不作发布门禁、不得宣称 TSAN clean)。
- Windows AOT spike:新增 docs/WIN32_AOT_SPIKE.md;可行性更新为 乐观 7–10 周/悲观 10–14 周、 风险 MEDIUM-HIGH(PE 骨架 1–2 周已实证;runtime/syscall/bootstrap 为关键路径);1.4.x 仍不做。
- OS SDK 1.5.1:18/18 tests;conformance 7 PASS/8 PARTIAL/5 BLOCKED(未虚增); 句柄 generation/seek 模拟/rename copy+delete;mkdir/readdir/net/mutex/qpm install 仍 BLOCKED;VM-only、非发布。
- New anchors:bqvm
c9404285…/156,632B、bqvm_small7e4ae959…/156,632B、 qboot.qbc847255a0…/523,289B、cgtest.qbc209be123…/162,176B、cgtest_aot5b9cf1a4…/1,447,072B; bootstrap qboot=847255a0、stage0=7a954aa5、cgtest_aot=5b9cf1a4;SHA256SUMS 同步。 - 验证:build 5 锚点一致;test PASS;async 30/30;portability 11/0/3;二次 build 全 SAME。
- 残余:浮点保守边界/1 ulp;qbc v3 段粒度模块内行号、线程/pool 错误前缀未接、AOT-native 2.0; TSAN 不作门禁;Windows AOT 不做;OS SDK 原型外部、NOT PUBLISHED。
[1.4.4-dev] - 2026-10-30
Q+ 1.4.4-dev 集成版(spec v4.30 候选):A5 残差清尾、Modules B 完整性子集、Windows async 完整化、 P0 开源治理与 qpm 文档。
- A5 残差清尾:qbc type-10 指数记法浮点常量 AOT 烘焙(与 bqvm loader 同 SSE 操作序; 1e-7/1e300/1.797e308 VM/AOT parity;5e-324/1e400 越界两侧 loader loud 边界如实); i64 boxed pool 512→4096(
0x11000000,R+W segment 扩 0x10A10000,超限 loud); u64 bitwise 语言层明确不支持 → TC20 loud(VM 无 opcode,VM/AOT 一致不静默); 混合 i64/u64 仅显式 cast(TC9 正反 fixtures);boxed i64 位运算 AOT 运行期 loud 残差(文档化)。 - Modules B completeness 子集:qbc 旁 sidecar
<out>.qbc.mapsource map v1(qbc 格式不变, 旧 loader 零回归;Q+SOURCEMAP 1+module <pkg.module>:<start>-<end>+ entry);类型检查深度 8→16; 泛型实例限定路径pkg.mod::Box<T>正常编译;同名非 pub 自动 mangling 评估后仍 loud 并文档化。 - Windows async 完整化:wine 27 PASS / 0 FAIL / 2 SKIP(loopback socketpair 模拟;io14 regular-file SKIP); Windows AOT 可行性评估 9–15 周 HIGH 风险,1.4.x 不做(docs/WIN32_AOT_FEASIBILITY.md)。
- P0 开源治理:GOVERNANCE/SUPPORT/MAINTAINERS/ROADMAP/RELEASING/P0_RELEASE_CHECKLIST/GITHUB_READY/ CoC/SECURITY/CONTRIBUTING/模板/.gitattributes/.editorconfig;占位符(security@TBD/conduct@TBD/OWNER/REPO) 保留并标注发布前替换。
- qpm 文档:新增 docs/QPM_SIGNING.md、docs/QPM_REGISTRY_V2.md(v2 registry/签名方案);
tools/qpm代码不并入语言树(发布工程 overlay)。 - OS SDK:新增 docs/OS_SDK_1.5_MVP.md 摘要(7 PASS/8 PARTIAL/5 BLOCKED、VM-only、非发布); OS SDK PROTO/DESIGN 页保留。
- New anchors:bqvm
17154765…/148,400B、bqvm_small9964e48b…/148,400B、 qboot.qbcce32a331…/522,477B、cgtest.qbc28741189…/159,290B、cgtest_aot19b23eb4…/1,422,368B; bootstrap qboot=ce32a331、stage0=7a954aa5、cgtest_aot=19b23eb4;SHA256SUMS 同步。 - 验证:build 5 锚点一致;test PASS;async 30/30;portability 11/0/3;二次 build 全 SAME。
- 残余:5e-324/1e400 loader 双 loud 边界、boxed i64 位运算 AOT 运行期 loud、i64 pool 超限 loud; Modules B source map 为 sidecar(VM runtime 未接 module:line)、深度 16 上限、限定路径单层、同名 loud、 AOT-native 2.0;Windows AOT 不做;OS SDK 原型外部、NOT PUBLISHED。
[1.4.3-dev] - 2026-10-30(spec v4.29)
A5 最后 blocker 收口:type-1 i64 越界常量 boxed i64(tag7)+ qboot u64 上下文统合, p13_f64_casts 转 VM/AOT 逐字节 parity。
- AOT boxed i64(tag7):type-1 i64 常量越出 tagged 域(|v|>2^60-1)改为 boxed cell (固定 BSS pool
0x60C000/512 cells,entry prologue 字节级烘焙);PRINT 有符号、 I2F(raw→double)、i64 算术/比较 helper(解包 raw、结果按 tagged 域归一化/装箱)、 u64→i64 越界结果同样 boxed、i64↔u64 位重解释、函数参数/返回/数组/struct 槽位全覆盖; NEG(boxed) 支持。p13_f64_casts、p01_u64_literals、p13f_i64_out、aot_i64/n0*等旧 loud fixtures 全部转 parity(p13f 与 VM 同为运行期 float_to_i64 loud)。 - qboot u64 上下文统合:u64 标注上下文(let/assign/参数/数组元素/struct 字段/返回) 对越界 i64 字面量插
OP_U64_FROM_INT(仅越界字面量;VM 语义保持),避免 tag7 流入 u64 路径;新增负例n02_u64_neg_literal_tc(u64 上下文直接负字面量 → TC15 loud)。 - AOT 内存布局:strpool 从
0x500000移至0x20000000(与代码段解耦), 使自举 AOT 工具代码可 >1MB(当前 1,188,760 B);ELF buffer 扩到 4MB; 通过三阶段自举链(旧布局小工具 → 新布局小工具 → 最终工具)达成固定点。 - 验证:
p13VM/AOT stdout+rc 逐字节一致;tools/test.shPASS、robustness PASS、 bench 9/9 PASS;AOT 自举 A/B/C 固定点 YES;二次构建 SAME。 - New anchors(v1.4.3-dev 候选):bqvm
17154765…/148,400B、bqvm_small9964e48b…/148,400B (相对 v142 已变化);qboot.qbc02fd60ae…/519,811B;cgtest.qbcfffb6a67…/152,995B; cgtest_aot047a47b0…/1,188,760B(= bootstrap 固定点)。
[1.4.2-dev] - 2026-10-30(spec v4.28)
- P3-F Modules B Phase2.1 + bugfix:类型可见性全覆盖(TC17 深度检查:函数体
let注解、 enum 模式绑定、全局 let 注解、数组元素、fn 签名、泛型实参、struct 字段);嵌套限定路径pkg.mod::Type::variant→Type.variant;诊断 source map v1(module <pkg.module>:<line>/entry:<line>);--module-map两 bug 修复(entryusestale-skip、p2_scan_symbols函数体行首let误判顶层), native map 与 C-lite 同包 parity;fixtures modules_b3 + test.sh 段。 - P3-B async IO 容量/真并发(VM-only):编译期
BQVM_ASYNC_MAX_TASKS/STACK_KB/READY_CAP/TIMER_CAP/ MAX_WAIT_FDS可配置(默认 16/256KB 保持 1.4.1 行为);测试构建 1100×16KB 验证 1000 真并发 timers (IO-18-TRUE PASS,~65ms/maxrss ~78MB);容量超限 loud(spawn/timer heap/io_wait table); IO-20 nearest-window plan seam 与 >±5.8 天窗口 BLOCKED;driver 扩展 30 checks;bench 1000-timer 分布。 - 残余:A5 full u64 未达成(type-1 i64 >2^60 为 p13 最后构建期 blocker;u64→i64 超 tagged 运行期 loud; u64 bitwise;TC9);IO 生产默认仍 16×256KB,>±5.8 天窗口 BLOCKED;Modules B 非完整(类型深度 8、 限定路径仅单层、source map 仅诊断、同名 loud、AOT-native 2.0);平台有限(Windows/ARM64 VM-only); OS SDK 原型为外部工作,NOT PUBLISHED。
P3-A5 残余收口②:AOT 浮点打印格式 parity(p13 第二 blocker 消除;p13 现仅剩 type-1 i64 常量)。
- AOT 浮点打印格式 parity(VM 逐字节):AOT
print_float重写为 bqvmmk_f64_to_str(x, buf, 64, 6)的等价实现——|x|>=1e15或0<|x|<1e-4走科学计数 (1 位整数 + 6 位小数 +e±指数,指数不补零;+0.5/carry 舍入与上位进位); 其余走定点(int +.+ 6 位零填充小数);-0.0→0.000000;NaN →nan、 +Inf →inf、-Inf →-inf;负浮点字面量(qbc 正 const +NEG(0x15))由 AOT NEG(float) 翻转符号位(保留 -0.0/NaN 语义)。新增 fixturessrc/tests/aot_float/{p01_float_print,p02_float_neg}.q(覆盖 0/-0/1.0/3.9/0.5/ 1e-7/1e-6/1e6/1e7/2^53/2^53+1/1e15/2^64/1e308/5e-324/NaN/±Inf/舍入 carry/负数), 接入tools/test.sh/tools/robustness_test.sh,VM/AOT stdout 逐字节一致。 - p13 现状:
p13_f64_casts仍构建期 loud,但原因只剩 type-1 i64 常量 >2^60 (AOT_UNSUPPORTED_I64_CONST,blocker #1);浮点打印(blocker #2)已消除。 转 parity 的下一步:type-1 i64 boxed cell + qboot u64 上下文统合(后续任务,不在本版)。 - 回归:既有 AOT parity/loud fixtures 零回归;
tools/test.shPASS、robustness PASS (含新增 A5FLOAT p01/p02)、bench/run.sh9/9 PASS;AOT 自举固定点 YES;二次构建 SAME。 - New anchors(v1.4.2-dev 候选):bqvm
cea62cda…/148,400B、bqvm_small3f9403cd…/148,400B、qboot.qbc6042aa38…/519,308B(相对 v141 已变化);cgtest.qbcef077d14…/139,149B; cgtest_aot13c9b0c8…/910,144B(=bootstrap/cgtest_aot固定点);bootstrap/SHA256SUMS同步;clean v141_rc1b 快照 apply→bootstrap refresh→build→ test/robustness/bench 全 PASS(VERIFY_APPLY_A5FLOAT.log)。
[1.4.1-dev] - 2026-10-29 (historical; superseded by 1.4.2-dev)
Q+ 1.4.1-dev 集成版(spec v4.27):P3-A5 残余收窄(AOT bool 打印 parity、sys_svc 运行期 loud trap)、 P3-F Modules B Phase2(限定路径/类型可见性/可读诊断)、P3-B async IO 覆盖补齐(26 checks)、 Windows/ARM64 平台主线。
- P3-A5 残余收窄:AOT 比较结果统一 tag4 bool(false=4/true=12),PRINT 输出
true/false,与 VM 逐字节一致(VM/AOT bool parity 达成);extern sys_svc映射为 native dispatch 运行期 loud trap(VM-only),sys_* 有 Q+ body 的包装函数普通调用 →use std.io模块函数体不再构建期 loud。type-1 i64 >2^60 已评估但不启用(boxed i64 cell 与 qboot u64 上下文语义冲突且破坏 AOT 自举固定点),保持构建期 loud。AOT 大数浮点打印格式(VM%.6evs AOT 定点)记为 p13 第二 blocker。其余 loud/文档化:u64→i64 超 tagged 域、 u64 bitwise(VM 无独立 opcode)、混合 i64/u64 TC9。 - P3-F Modules B Phase2:
pkg.mod::name限定引用(类型/函数/常量)loader 校验并归一化, 未知模块/未知符号/跨模块私有 → rc=2 loud(模块名+限定名+行号);TC17 类型名可见性 (跨模块非 pub struct/enum 类型名 → rc=4 loud);dup 诊断可读(修复数字串); 跨模块同名非 pub 明确 loud(main 例外)。新 fixturessrc/tests/modules_b2/+ test.sh 新段。 残余:限定路径仅模块顶层、类型检查未覆盖全部注解位置、同名自动唯一化/source map/AOT-native 2.0 未做。 - P3-B async IO 覆盖补齐(VM-only):
io_waitIO-08(TCP connect)/IO-09(accept) 映射; IO-10 1000+ EAGAIN 复用;IO-18 1005 timer waits(15-task cap);IO-19 spawn 上限 loud、 waiter/timer 容量不可达 BLOCKED;IO-20 nearest-window decoder(±5.8 天窗口,超出 BLOCKED);tools/test_async_io.sh26 PASS / 0 FAIL;AOT VM-only loud 不变。 - Windows/ARM64 平台主线:Linux x86-64 主线;Windows x86-64(mingw-w64+wine)VM smoke PASS(async/ucontext loud gap、无 AOT);ARM64 Linux(qemu-aarch64)VM parity PASS(无 AOT)。
- New anchors:bqvm
381f4de7…/148,272B;bqvm_small7bb0e1e8…/148,272B;qboot.qbca14de553…/517,043B; cgtest.qbc8fd10a5b…/127,313B;cgtest_aot8bd7ec9e…/856,896B(=bootstrap/cgtest_aot固定点);bootstrap/qboot.qbc=a14de553、bootstrap/stage0.q=7a954aa5、bootstrap/cgtest_aot=8bd7ec9e;SHA256SUMS同步。 - 验证:
tools/build.shrc0(5 锚点一致);tools/test.shPASS;async 26/26;macro/robustness/bench 绿;二次 build QBOOT/CGTEST/AOT 全 SAME。
[1.4.0-dev] - 2026-10-29
Q+ 1.4.0-dev 集成版:P3-A5 Stage2/3(AOT 完整 u64)、P3-F Modules B Phase1(编译器原生模块)、 Windows/ARM64 平台主线并入开发树。
- P3-A5 Stage2/3(AOT 完整 u64):新增 AOT 支持
OP_U64_FROM_INT/TO_INT(0x7D/0x7E)、OP_U64_TO_F64(0x7F)、OP_F64_TO_U64/F64_TO_I64(0x80/0x81)(位重解释/C-cast 截断/无符号数值转换/ checked NaN-inf-越界 loud);u64 容器/struct/数组/字段/参数/返回 ABI 与std.u64wrapping/checked/saturating/u64_to_str/parse_u64 程序 VM/AOT parity;修复 NaN(5)/+Inf(6)/-Inf(7) qbc 常量静默错值(float pool 字节级烘焙);sys_char_codeAOT native builtin(std.string AOT 可用)。 残余(loud 并文档化,不静默):type-1 i64 常量 >2^60 构建期 loud(p01_u64_literals/p13_f64_casts/p13f_i64_out因此仍 loud);u64→i64 超出 AOT tagged 域|v|>2^60-1运行期 loud (u64_to_int out of range);std.ioprint_float/sys_svc模块函数体致use std.io程序仍 loud; AOT bool 打印仍为1/0(VMtrue/false);u64 bitwise 不宣称(VM 无独立 opcode); 混合 i64/u64 非字面量算术/比较保持 TC9 loud。 - P3-F Modules B Phase1:qboot 原生
--module-map/--entry多模块加载(不依赖 driver 合并); TC 级pub可见性(跨模块 private → TC16 loud,模块名+行号);原生use pkg.mod校验/剥离; 未知/重复/循环依赖/std 封口 loud;qbc v2 原生模块表(模块名+导出名);bqvm v1/v2 零回归; AOT v2 仍 loud。C-lite driver 路径保留为 1.3 兼容模式。qboot 源缓冲 655,350B→786,420B。 残余:pkg.mod::name限定路径、struct/enum 类型名可见性、跨模块同名非 pub、源码级 source map、 AOT-native 模块(2.0)。 - Windows/ARM64 平台主线:Windows x86-64(mingw-w64 + wine)VM smoke PASS(PE32+,async/ucontext loud gap,无 AOT);ARM64 Linux(aarch64-gcc + qemu-aarch64)VM parity PASS(30/30 examples 输出+rc 一致,无 AOT);Linux x86-64 主线 5 锚点不变;CI
ci/portability_check.sh(Linux 必需 PASS, win32/ARM64 可选 SKIP)。 - New anchors:bqvm
9898e6b2…/147,840B;bqvm_small02c0912b…/147,840B;qboot.qbc825baa84…/507,409B; cgtest.qbc21f058b4…/125,111B;cgtest_aot6a140ed3…/836,416B(=bootstrap/cgtest_aot固定点)。 - bootstrap:
bootstrap/qboot.qbc=825baa84、bootstrap/stage0.q=ef8d7e02…、bootstrap/cgtest_aot=6a140ed3;SHA256SUMS同步;clean build 5 锚点一致,二次构建字节一致。 - 验证:
tools/build.shrc0;tools/test.shPASS;robustness/async/macro/bench 绿色;文档 markdown 链接 0 broken、卫生 grep 0(无内部路径/证据文件/冲突标记)。
[1.4.0-modulesB-P1] - 2026-10-29 (historical; merged into 1.4.0-dev)
P3-F Modules B Phase1(候选):模块语义从 C-lite driver 下沉到 qboot 编译器。
- qboot 原生 module map:新增
--module-map <file>/--entry,编译器直接加载并拼接多模块源; map 格式package/module <pkg.mod> <path>/entry <path>;单文件与--module-table(C-lite driver 兼容路径)完全不变。 - TC 级 pub 可见性:顶层
pub导出记录 + 跨模块非 pub 引用 →[TC16]loud(模块名+行号);use pkg.mod校验/剥离、未知/重复/循环依赖与 std 封口 loud(rc=2)。 - qbc v2 原生表:模块名 + pub 导出名由编译器直接生成;bqvm loader 零回归;AOT v2 仍 loud。
- 基础设施:qboot 源缓冲 655,350B → 786,420B(12-chunk 循环读取)。
- 测试:
src/tests/modules_b/正/反 fixtures(good 运行输出10 5 15 7、qbc v2、跨模块 private TC16、unknown/cycle/duplicate/std 封口、AOT loud),tools/test.sh新段;全量 test PASS、自举不动点。 - 残余:
pkg.mod::name限定路径、struct/enum 类型名可见性、跨模块同名非 pub、AOT-native 模块(2.0)。
[1.3.0-dev] - 2026-10-29
Q+ 1.3.0-dev 集成版 + A5 Stage2/3:P3-A4 u64 容器/casts、P3-F C-lite 模块/包命名空间、P3-C M1-lite 宏、 P3-B async IO A-lite、P3-A5 AOT u64 Stage1/Stage2/3 已并入开发树(u64 casts/f64/容器 ABI parity;残余 loud 并文档化)。
- P3-A5 AOT u64 Stage2/3(spec v4.26 候选):AOT 后端补齐 u64 casts 与容器/ABI parity:
OP_U64_FROM_INT/TO_INT(0x7D/0x7E)(位重解释/C-cast 截断;u64→i64 超出 AOT tagged 域 |v|>2^60-1 → 运行期 loudu64_to_int out of range,不静默)、OP_U64_TO_F64/F64_TO_U64/F64_TO_I64(0x7F/0x80/0x81)(u64→f64 无符号数值转换;f64→u64/i64 向零截断 + checked NaN/inf/越界 → 与 VM 同文本 loud;i32 class6 检查),NaN/+Inf/-Inf qbc 常量(type 5/6/7)float pool 字节级烘焙(修复此前误入 i64 常量路径的静默错值),sys_char_codenative builtin(std.string char_code 可 AOT),I2I 先 untag 再截断; Stage3 容器/struct/数组/字段/参数/返回/ABI(boxed tag6 直传)与std.u64wrapping/checked/saturating/u64_to_str/parse_u64 程序 VM/AOT stdout+rc 逐字节一致。p05_a2_context/p07_casts/p08_strings/p11_containers/p12_str_parse/p12b/p13b-e/g由 loud 转 parity;新增src/tests/aot_u64/{p04_aot_u64_casts,p05_aot_u64_f64, p06_aot_u64_containers,n01_aot_u64_toint_residual};test.sh + robustness 接入。 残余(loud 并文档化):type-1 i64 常量 >2^60(task-68 表示域,p01_u64_literals/p13/p13f 仍 loud)、 std.ioprint_float/sys_svc模块级发射、AOT bool 打印既有差异、u64 bitwise(VM 无定义)。 - New anchors(A5 Stage2/3):bqvm
9898e6b2…/147,840B、bqvm_small02c0912b…、 qboot.qbc378f5f85…/492,963B(均不变);cgtest.qbc21f058b4…/125,111B; cgtest_aot6a140ed3…/836,416B(=bootstrap/cgtest_aot固定点);bootstrap/SHA256SUMS同步; clean v13_rc1 快照 apply→bootstrap refresh→build→test/robustness/bench 全 PASS、二次 build 字节一致 (VERIFY_APPLY_A5S23.log)。 - P3-A4 u64 容器/结构体/数组 + parse_u64 + 浮点 cast 语义修正(spec v4.25):
u64/嵌套u64、含 u64 字段与 u64 数组字段的 struct、数组/struct 参数与返回、Box<u64>、fn() -> u64槽位;VM tagged-slot ABI 不变,存储边界转换防静默 INT 入 u64。std.u64.parse_u64checked 解析 (非法/空/溢出 ok=0,不 loud;str_to_u64保持 loud)。浮点 cast 修正为数值转换:f64(u64)round-to-nearest(u64max→1.844674e+19),u64(f64)/i64(f64)截断且越界/NaN/inf loud,i32(f64)范围检查 loud。A5 Stage1 前 AOT 对全部 u64 程序 loud;A5 Stage1 起常量/print/算术/比较子集支持,其余仍 loud。 - P3-F C-lite 模块/包命名空间:
pub可见性、目录包 driver(tools/module_map.py)、use <pkg>.<mod>;、qbc v2 包/模块元数据表、std 封口;AOT-native 模块为 2.0(B 路线)。 - P3-C M1-lite 宏:重复
$(...)*/+/?(可选分隔符)、片段分类 ty/pat/path/literal/block、 卫生性 v2;tools/macro_m1_test.sh29/29。 - P3-B async IO A-lite(VM-only):
io_wait/task_sleep_until、epoll+timer+waker、 超时/取消/关闭/无效 fd 返回码、公平唤醒与 fd 计数;tools/test_async_io.sh19/19;AOT 构建期 loud。 - P3-A5 AOT u64 Stage1:AOT 支持 u64 常量(qbc const type-11,全范围)、无符号 print、 add/sub/mul/div/mod(含回绕)与 6 种比较;实现为 tag6 boxed raw-cell(8B cell)+ 固定 BSS 常量池 0x60A000(3072 cells,entry prologue 字节级烘焙);
OP_U64_*(0x78–0x7C)、PRINT、 CMP(0x20–0x25)、通用算术(0x10–0x14) 任一侧 u64 → 无符号 64-bit 语义(max+1→0、0-1→max、max*2→2^64-2),div/mod 0 与 VM 同文本 rc=1;VM/AOT stdout+rc parity(fixturessrc/tests/aot_u64/p01_u64_stage1,p02_u64_bounds,p03_u64_div0),p14_tcAOT parity;AOT 固定点更新bootstrap/cgtest_aot=7ca04136。Stage2/3 已在后续 A5S23 交付中实现(见顶部条目), 原 loud 边界(casts/容器/ABI/std.u64)已转 parity。 - New anchors:bqvm
9898e6b2…/147,840B;bqvm_small02c0912b…;qboot.qbc378f5f85…/492,963B; cgtest.qbcf2f24e89…/110,146B;cgtest_aot7ca04136…/721,728B。 - bootstrap:
bootstrap/qboot.qbc=378f5f85,bootstrap/cgtest_aot固定点=7ca04136,SHA256SUMS同步;clean build 锚点不变。 - Residual:A5 Stage2/3(casts/bitwise/std.u64/容器/ABI)未实现、保持 loud;
p05_a2_contextAOT 仍 loudcode=125(Stage2 依赖);C-lite 为 driver 侧可见性(非 TC 原生模块)、无pkg.mod::name路径; M1-lite 残余见 §9.7.13;async IO 为 VM-only。
[1.1.0-dev] - 2026-10-29 · P3-F C-lite (historical; superseded by 1.3.0-dev)
- P3-F C-lite minimal slice (module/package namespace):
pub fn/struct/enum/letvisibility markers accepted by qboot (single-file = implicit package, no-op; top-level only);tools/module_map.pydriver merges a directory package per a text module map (dependencies first), keepspubtop-level symbols exported, renames non-pub top-level symbols + in-module refs to unique internal names (cross-module private access fails loudly at compile time), validatesuse <pkg>.<mod>;and sealsstd/stdlib/(driver rc2);use std.*unchanged. - qbc module metadata (version 2): module-map builds emit an optional package/module table after the debug line table (module names + exported names); single-file builds stay qbc version 1. bqvm loader accepts v1/v2, validates bounds and skips the table at runtime; malformed/trailing data fails loudly. ELF AOT tool (unchanged qplusc) rejects version 2 loudly (
QBC_PARSE_FAIL -2, rc=2, no ELF) — explicit unsupported, no silent wrong output; AOT-native modules remain a 2.0 (B route) item. - Fixtures/tests:
src/tests/modules_c/good multi-file package (pub/private fn+struct, std mix), private-fn/private-type negatives, unknown-module, sealed-std, AOT-loud, legacy single-file v1; newtools/test.shC-lite section; full regression PASS (QPLUS_LANGUAGE_TESTS_PASS). - New anchors (standalone A3-based slice, pre-integration): bqvm
342dd7f3…/138,464B; bqvm_smalle1b5d668…/138,464B; qboot.qbccbe854c2…/477,392B; cgtest.qbc/aot unchanged (ecfebaaa…/98,972B,7f4ac574…/545,520B). Not released; no v11/release changes. - Residual: driver-side (not compiler TC) visibility; no
pkg.mod::namepaths / package-level use; no topological sort/cycle check/source map; std CWD-resolution unchanged (driver seal only); AOT v2 loud; no qpm code integration (interface doc only).
[1.1.0-dev] - 2026-10-29
- task-68 AOT i64 constant range guard (release blocker): the AOT tagged-int representation (
raw<<3) can only represent i64 constants in [-2^60, 2^60-1]; out-of-range constants were silently mis-compiled (frozen rc: 2^57 sign flip, 2^58→0, i64max→-1, rc=0 with wrong output). The AOT ELF tool now rejects any type-1 constant whose raw top byte falls outside0x00..0x0F(positive) /0xF0..0xFF(negative) at build time:AOT_UNSUPPORTED_I64_CONST, rc=5, no ELF written — no more silent wrong values. In-range constants (2^56±1, 2^57, 2^58, 2^59, 2^60-1, runtime-computed negatives) stay VM-vs-ELF byte-identical. Negative literals are compiled as positive magnitude + NEG, so their magnitude must also be ≤ 2^60-1 (VM still supports the full i64 range). Runtime integer arithmetic that overflows the tagged range remains a residual (A5; documented in the spec). Addedsrc/tests/aot_i64/fixtures (1 parity + 5 loud) wired intotools/test.shandtools/robustness_test.sh. New anchors: cgtest.qbcf2f24e89…(98,972 B), cgtest_aot7ca04136…(721,728 B, equalsbootstrap/cgtest_aotfixed point); bqvm9898e6b2…/ qboot.qbc378f5f85…unchanged. - P2-C11 qbc/AOT input robustness (security audit S3/S4/S6): the VM qbc loader now validates
num_functions/num_constants(hard caps + file-size cross-check) and per-function arity/locals before allocating — malformed qbc fails loudly in <10ms instead of allocating GBs and/or hanging (fuzz seeds case001..004: 32s+hang/15GB → instant rc=1). The AOT ELF tool now validates magic/version/length/counts/EOF with a bounds-checked cursor parser (qbc_parse()returns loud error codes;QBC_PARSE_FAIL <code>, rc=2, no ELF written for truncated/bad inputs, previously rc=0 + garbage ELF), and AOT write errors (/dev/full, short writes) are detected (WRITE_FAIL, rc=1; previously silentEMIT_OK). Added recovery fixtures (src/tests/robustness/qbc/) plustools/robustness_test.shto CI. New anchors: bqvm15e040997e79…, cgtest.qbcf2f24e89886a…, cgtest_aot7ca041363729…; qboot.qbc unchanged378f5f8517bb…. - P2-A error model (A1):
panic()now aborts cleanly via the new VM builtinsys_abort(PANIC: <msg>line +Runtime error: panic: <msg>, rc=1, no timeout hang);Result.unwrap(Err)/Result.expect(Err)terminate with rc=1 instead of silently continuing;use mymodis a loud compile error; non-enummatchwithout a_arm is[TC14]; runtime errors are classified (Runtime error: <class>: <detail>). - P2-A2 AOT parity / loud fail: the ELF AOT tool rejects unsupported
sys_*builtins and unimplemented opcodes loudly (rc=5, explicitAOT_UNSUPPORTED_*diagnostic, no ELF written);assert(cond)is now a language builtin (assert_failed, rc=1) implemented by VM and AOT; VM/AOT runtime errors share one format. - P2-A3 type-boundary closure: function-value slots in global
lets and struct fields can be declared, assigned and called (checkedfn(T)->R, barefnwildcard); erased generics get call-site checks (let s: string = id(7)->[TC1]); traitimplcontracts validate method names/arity/parameter/return types, and a trait used as a value type is[TC11]-diagnosed. - P2-A4 integer matrix:
u8/u16/u32/u64/i8/i16with literal range checking[TC15], mixed/handling rules, checked overflow at type boundaries (Runtime error: overflow: integer overflow, rc=1), checked casts; VMINT_CHECKopcode with matching AOT codegen. - Toolchain: self-hosting now uses a two-step bootstrap (
bootstrap/stage0.q) because the v1.1 compiler source exceeds the v1.0 bootstrap read window; AOT toolchain is rebuilt deterministically against the new bootstrap fixed point. - Tests:
tools/test.shcovers examples, typecheck, features, semantics, type bounds, integer matrix, runtime errors, heap exhaustion, and VM/AOT parity/loud-fail. - - P2-B1 AOT coverage (spec v4.4): the ELF AOT backend now implements the conversion opcodes
I2F/F2I/I2IandCALL_INDIRECT(function values in globallets and struct fields), with VM/AOT byte-identical outputs and exit codes; checked-integer boundary checks now also cover array-element subscript assignment andimpl/UFCS arguments; the FS/payload AOT compiler (cgtest_fs.q, development tree only) rejects unknownsys_*builtins and unimplemented opcodes loudly (rc=5, no payload written). - P2-B2 observability / benchmark / wrapping (spec v4.5):
bqvmruntime failures now print astderrtraceback (Traceback (most recent call last):+at <fn> (pc=<offset>), up to 8 frames,QPLUS_TRACEBACK=0to disable); stdout error format is unchanged and AOT remains byte-identical there. Addedbench/(9 programs +run.sh, VM/AOT/C-reference raw data and environment record; honest note of AOT correctness gaps found by the suite). Added explicitstd.algwrapping_add/sub/mul_u8/_u16/_u32/_i8/_i16/_i32(coexists with checked semantics). AOT now loud-fails (rc=5, no ELF) on exponent-notation float constants (QBC const type 10) instead of hanging. Portability analysis documented (non-Linux blockers, mingw/ARM64 gaps) indocs/PORTABILITY.md. - P2-B3 AOT correctness + VM line numbers (spec v4.6): fixed three AOT codegen bugs found by the P2-B2 benchmarks — integer
DIV/MODusedtest r,0for the zero check (always sets ZF, so every division reported by-zero) andLENread strings as array headers;bench/is now 9/9 VM/AOT-consistent and is covered bytools/test.sh.qbootnow emits a minimal optional debug line table after QBC globals;bqvmtracebacks printat <fn> (line N, pc=M)(legacy QBC compatible; AOT ignores the section and still has no traceback). - P2-C1 closures / generic struct fields / dyn boundary (spec v4.7): nested functions can read enclosing locals/parameters via implicit by-value capture parameters at call sites (snapshot semantics; writes inside the nested fn affect only its copy; self-recursion supported; capturing functions taken as fn values are rejected loudly). Generic struct instantiations (
Box<i32>vsBox<string>) are tracked for field typing/assignment (TC2 onBox<i32>.v = "str"and cross-instantiation assignment; TC1 on ctor arg mismatch; erased codegen).dyn Traitnow reported as a clear[TC11]loud error. AOT parity for all new positive fixtures (plain functions with extra params). - P2-C2 concurrency design + async/await PoC (spec v4.8):
async fnandawaitsyntax (await =await_task(expr)sugar);std.alggains a minimal cooperative single-threaded task queue (spawn(fn()->i32),await_task(id),yield_now()) with deterministic FIFO run-to-completion scheduling, working identically on bqvm and ELF AOT. Full concurrency design (suspending futures/state machines, cancellation/error propagation, memory model, VM/AOT/OS impact, OS threads + spawn/join/channel blueprint) written todocs/CONCURRENCY.md; threads/channels and suspending async are explicitly not implemented. - P2-C3 macros design + FFI
extern "C"PoC (spec v4.9): declarative-macro design (token/AST expansion at parse time, category-checked$parameters, gensym hygiene, invocation-line error locations, no AOT impact) written todocs/MACROS.md; macros are explicitly not implemented. FFI:extern "C" fnsyntax (other ABI strings rejected at compile time) with a controlled VM shim table (puts,strlenimplemented in bqvm; unknown extern names fail loudly at load:unsupported extern function: ...). Unsafe/ABI rules documented (scalars + borrowed read-only strings only; trusted shims; no struct pointers). ELF AOT has no shim table → loud failAOT_UNSUPPORTED_BUILTIN: FFI shim (extern "C"), rc=5, no ELF written. New bqvm + new AOT fixed point; p2a regression 1266/1266; v11 clean build/test PASS. - P2-C4 declarative macros (spec v4.10):
macro name($x: expr, ...) { ... }plusname!(...)calls are expanded at token level between lexing and ASI, before the existing parser/TC/codegen (no runtime objects, VM/AOT identical). Category checks (expr/stmt/ident), call-site line numbers, recursion limit 64, minimal gensym hygiene (body__bindings renamed to unique__g<n>), and loud macro diagnostics (unknown call, arity/category mismatch,$outside body, duplicate/nested declarations, malformed params; rc=2). Arguments are not auto-parenthesized. New p2a/v11 macro fixtures incl. expression/statement/assert/swap-hygiene positives and 7 loud negatives; p2a regression 1266/1266; v11 clean build/test PASS. - P2-B4 AOT traceback + wrapping i64/u64 (spec v4.11): (a) qboot debug line table now records the correct function index and function-relative pc, so VM traceback prints
line <N>, pc=<M>for every frame (VM stdout unchanged); (b) ELF AOT runtime errors now print a static call stack to stderr (Traceback (most recent call last):+at <fn> (line <N>), up to 8 frames) before the unchanged stdout error line and exit(1) — implemented via qboot qbc line table + AOT codegen shadow stack (prologue push/ret pop, call/error line marks). AOT line numbers are currently printed as 0 (unmapped; AOT-side line lookup wire-up pending, ~0.5-1 day), carried in residuals; AOT parity compares stdout+rc only. (c)std.alggainswrapping_add/sub/mul_{i64,u64}wrapping modulo 2^56 (tagged backend portable width; checked_* unchanged); full 64-bit wrapping design/estimate written todocs/WRAPPING64.md(not implemented). New fixtures: AOT traceback (div0/assert/bounds) and wrapping64 (u64/i64) with VM/AOT checksum parity; bench 9/9 checksum parity; p2a regression 1266/1266; v11 clean build/test PASS. - P2-B5 AOT traceback real line numbers (spec v4.12): qbc_loader's parsed line table is now wired into AOT codegen with per-function nearest-preceding-pc lookup; AOT shadow-stack frames store real source lines for function prologues, plain CALL, CALL_INDIRECT and every runtime error site. AOT traceback now prints
at <fn> (line <N>)with true source lines (verified for division/modulo by zero, bounds, assert, overflow and CALL_INDIRECT paths; matches VM line numbers), while stdout error lines and the VM remain unchanged. panic/Result-panic stay AOT loud-fail (sys_abort not AOT-supported). AOT tool fixed point updated to 80b4635f (bootstrap synced); v11 clean build/test PASS; p2a regression 1266/1266; bench 9/9 parity. - P2-C5 async Phase-2 minimal suspend/resume (spec v4.13): bqvm gains stackful green tasks (ucontext): each task has its own C stack plus saved BQVM interpreter state (operand stack/sp + call frames/fp) while functions/globals/heap are shared; new VM builtins
sys_task_spawn(fn),sys_task_yield(),sys_task_wait(id)(executor drives ready tasks to completion and returns the result). PoC fixtures show genuine suspension/resume: two tasks each yield then resume (start await1 B1 B2 A1 A2 ra=1 rb=2), nested await inside a task (O1 C1 C2 O2 R=8), and loudyield outside taskin root. Cooperative Phase-1 task queue instd.algis kept unchanged and stays AOT-parity supported; task primitives are AOT loud-fail (sys_*). Limits: single VM, 16 tasks, stack 4096 values, no IO-ready queue/cancel/threads; library integration + compiler-generated Future state machines are the next steps (design in docs/ASYNC_PHASE2.md). New bqvm anchor; qboot/AOT anchors unchanged; v11 clean build/test PASS; p2a regression 1266/1266; bench 9/9 parity. - P2-C6 async library-ization + AOT call-path trap (spec v4.14): new
std.asyncmodule (thinspawn/yield_now/task_wait/await_taskwrappers over the P2-C5 stackful VM tasks;std.algcooperative queue kept for AOT compatibility; modules not mixed). AOT no longer aborts the whole program for unusedsys_task_*externs: ELF builds, unused wrappers are never executed, and actually executing a task primitive traps at runtime withRuntime error: runtime_error: AOT: async primitives unsupported (VM-only)+ exit(1) (stderr traceback), i.e. loud on the call path only. ASI now treats theasynckeyword as a line-end token souse std.asyncwithout semicolon parses. Verified: p16-18 cooperative PoC unchanged (AOT parity), p28/p29 true-suspend programs VM-correct + AOT build/run-trap, p31 unused import AOT parity; p2a regression 1266/1266; bench 9/9 parity; v11 clean build/test PASS. Compile-time reachability/DCE is not implemented (runtime trap provides equivalent unused-function semantics); listed as ~1-2 day follow-up. - P2-C7 threads + channels minimal PoC (spec v4.15): bqvm gains a pthread backend with
sys_thread_spawn/sys_thread_join(each thread runs an independent BQVM instance — copied read-only function/constant/bytecode/line tables, fresh stack/frames/heap/globals) and bounded channelssys_channel_new/send/recv(mutex+cond blocking queue, scalar i32 messages). Newstd.threadmodule thin wrappers (thread_spawn/thread_join/channel_new/channel_send/channel_recv). Shared state rule: threads never share mutable memory — only explicit channel messages; thread entry isfn() -> i32(no args/closure capture yet, PoC passes channel id by convention). AOT: thread/channel primitives are runtime traps (P2-C6 style; unused wrappers do not block ELF builds, executing a primitive prints the loud unsupported message + exit 1). PoC: p32 2 threads join sum 42; p33 2 producer threads send via bounded channel, main sums 333 and joins 3; invalid channel id is a loud VM error. bqvm built with-pthread; v11 clean build/test PASS; p2a regression 1267/1267; bench 9/9 parity. - P2-C8 concurrency production-1 (spec v4.16):
std.threadgainsthread_spawn_arg(fn(i32)->i32, arg)(startup-structure TLS arg into the thread's independent BQVM) andthread_last_error(tid)(0=ok/1=runtime/2=panic, retained after join). Thread runtime errors/panics are loud on stderr with[thread <tid>]prefix + traceback;thread_joinreturns -1 and the process keeps running.std.asyncgains cooperativetask_cancel,task_state(0..5),task_wait_timeout(timeout returns -2 without killing the task; cancelled returns -3) andtask_sleep(real suspend resolved by executor deadline scanning, no busy-wait). Typed channelchannel_send_i64/recv_i64passes full-width i64 scalars (verified 5,000,000,000). AOT keeps runtime traps for all new primitives (ELF builds; only executed primitives fail loudly);std.panicin threads remains compile-time AOT loud-fail (sys_abort). New fixtures: threads p34/p35/p36/p37, async2 p36/p37/p38; v11 test.sh P2-C8 section. bqvm anchor updated; qboot/cgtest/AOT anchors unchanged (no compiler change needed). p2a regression 1268/1268; bench 9/9 parity; v11 clean build/test PASS. Residuals: thread pool and string channels (designs in docs/CONCURRENCY.md), cross-thread structured errors/cancel propagation, host pthread only, 16 threads/64 channels/cap64. - P2-C9 concurrency phase-2 (spec v4.17): VM gains a C-level thread pool (
sys_thread_pool_new/submit/join/shutdown/job_result; fixed worker pthreads, bounded job queue, one independent child BQVM per job, job errors loud on stderr with[pool <id> job <n>]prefix + traceback; join summary 0/-1/-2, shutdown idempotent, join summary 0/-1/-2, job_result and job quota; worker/child-VM resources reclaimed). String channels:channel_send_str/recv_str(sender byte-copy with 1 MiB limit, receiver allocates a fresh string in its own VM heap, no cross-thread pointers). Channel lifecycle:channel_close(send loud after close, drain allowed,-3/empty-string sentinel,channel_is_closed), deadline variants for i32/i64/str (*_timeout, -2 timeout / -3 closed, close wakes blocked senders/receivers). Cancellation propagation along creator-tree and waiter-chain edges (task_cancelcascades; cancelled await returns -3, no hang). Thread lifecycle:thread_join_timeout(-2 timeout, thread keeps running, later join works), idempotent join, child-VM resource reclamation on final join. New std.thread wrappers (pool_new/submit/join/shutdown/job_result,channel_*extensions,thread_join_timeout). AOT keeps runtime traps for all new primitives (names use sys_thread_/sys_channel_ prefixes; qboot/cgtest/AOT anchors unchanged). New fixtures p38/p39 pool, p40 string channel, p41 close/timeout, p42 join timeout, async2 p39 cancel chain, plus resource-reuse cycles; v11 test.sh P2-C9 section. p2a regression 1268/1268; bench 9/9 parity; v11 clean build/test PASS. Residuals: pool_submit_timeout, channel slot/message reclamation, no job args/closures, no cancel cleanup hooks, host pthread only, documented caps. - P2-C10 concurrency security fixes (spec v4.25): HIGH fixes from security audit task-44. Thread/channel/pool global slot state, join state,
g_boot_fnand console output are serialized by process mutexes; child BQVM snapshots are copied in the spawning thread at a quiescent point before pthread_create (no reads of the live parent VM from workers). Concurrent double-join is deterministic (second join loudjoin already in progress, no hang / no double pthread_join; single-thread repeat join stays idempotent). The stackful async scheduler is main-thread only: worker threads calling async primitives fail loudly instead of cross-thread swapcontext. spawn beyond 16 slots is loud. Blocking channel send/recv are interruptible by runtime shutdown or the global--timeout-msbudget (20ms slices, loud timeout). Process teardown wakes and joins all worker/pool threads before destroying the parent VM (UAF fix, ASAN clean). New security fixtures under src/tests/threads/security + test.sh P2-C10 section. Evidence: TSAN 0 warnings for p32/p33/thread_spawn_race/channel_new_race/double_join_race and async+thread (worker async rejected); ASAN uaf_no_join/uaf_no_join_sleep 0 errors; p2a 1268/1268; bench 9/9; v11 clean build/test PASS. qboot/cgtest/AOT anchors unchanged. Residuals handed to task-55: loader count validation, AOT silent paths, channel timeout API docs, /dev/full, TMR UB, sandbox documentation. - P2-C11 atomic shutdown flag (spec v4.25):
g_conc_shutdownchanged fromstatic volatile intto C11_Atomic int, so the main-thread shutdown store and worker-thread loads (trampoline / bqvm_run / channel waits) are atomic — the last remaining TSAN data race is cleared (uaf_no_join_sleep and the full C10 security matrix now report 0 warnings under TSAN). bqvm anchor updated; qboot/cgtest.qbc/cgtest_aot unchanged; 1268/1268 and bench 9/9 preserved. - P3-A1 full 64-bit u64 (spec v4.25): u64 literals now cover the full range
0..18446744073709551615: >i64max decimals are exactly preserved by a decimal lo/hi split in the lexer, emitted as qbc const type 11 and loaded as a new VMBQVM_VAL_U64tag (no truncation); non-u64 target types are loud TC15 errors. VM adds unsigned print/compare and u64-context add/sub/mul/div/mod wrap opcodes (u64 0-1 → max,max+1 → 0; div0 loud);OP_INT_CHECKaccepts U64 and its checked u64 bound is widened to i64max for the A1 transition. qboot gains TOK_U64LIT/N_U64LIT/CONST_U64 + u64-context codegen; the self-bootstrap chain and AOT fixed point were rebuilt (qboot.qbc 378f5f85…,bqvm 9898e6b2…,cgtest_aot 7ca04136…). AOT on any u64 program/const fails loudly (rc=5, no ELF,AOT_UNSUPPORTED_OPCODE: code=11); non-u64 AOT behavior unchanged. New fixtures under src/tests/u64 + test.sh P3-A1 section; v11 test suite PASS; p2a 1268/1268; bench 9/9. Residual: A2 context propagation/arithmetic unification, A3 casts/checked/wrapping APIs, A4 containers/struct/ABI, A5 AOT full u64; pre-existing i64 >2^32 AOT constant truncation reported to task-55/S4 (not caused by P3-A1). - P3-A2 u64 context propagation (spec v4.25): u64 context now propagates beyond
letinitializers to assignments/compound assignments, function arguments (u64 params), returns (u64 fn return), struct-constructor fields, struct field assignment/compound, array literals (u64[N]) and array element assignment/compound. All such expressions use U64 tags /OP_U64_*unsigned wrapping (max+1→0,0-1→max,max*2→2^64-2), comparisons are unsigned whenever a U64-tagged value participates (small u64 values ≤i64max compare identically signed or unsigned). Mixed i64/u64 arithmetic is defined as unsigned bit-pattern conversion (explicit cast recommended; TC-loud tightening deferred to A3). AOT remains loud for u64 programs (rc=5/no ELF/AOT_UNSUPPORTED_OPCODE: code=11). qboot updated + bootstrap seed refreshed (qboot.qbc 378f5f85…,bqvm 9898e6b2…unchanged,cgtest_aot 7ca04136…unchanged); new fixtures src/tests/u64/p05_a2_context, p06_mixed + test.sh P3-A2 section; v11 tests PASS, p2a 1268/1268, bench 9/9. Residual: A3 casts/string/checked/wrapping + mixed TC loud, A4 containers/ABI, A5 AOT full u64. - P3-A3 u64 casts/strings/checked/wrapping/saturating + mixed TC (spec v4.25): explicit casts now cover the full matrix:
u64(x)produces U64 bits (sign-extend/modulo 2^64),i64(u64)bit reinterprets,i32(u64)truncates low 32 bits,u8/u16/u32/i8/i16(u64)are checked (loud on overflow), float casts documented. New self-containedstd.u64module provides exactu64_to_str/str_to_u64plus true mod-2^64wrapping_*,saturating_*andchecked_*(U64Res{v,ok}) APIs; the legacy std.alg qp_w56 u64 wrappers moved there so std.alg/std.string stay AOT-safe. Mixed i64/u64 arithmetic/comparison with signed non-literals is now TC9 loud (explicit casts required). VM gains OP_U64_FROM_INT/OP_U64_TO_INT; AOT remains loud for u64 programs (rc=5/no ELF/code=11). Anchors: bqvm 9898e6b2…, qboot 378f5f85…, cgtest/AOT unchanged; new tests src/tests/u64/p07-p10 + test.sh P3-A3; v11 tests PASS, p2a 1269/1269, bench 9/9. Residual: A4 containers/checked string parse/float edges, A5 AOT full u64. - P3-A4 u64 containers/ABI + parse_u64 + float casts (spec v4.25):
u64, nestedu64, structs with u64/array-of-u64 fields, nested structs, array/struct params+returns,Box<u64>andfn() -> u64slots are typed end-to-end on the VM (tagged-slot ABI unchanged; store boundaries convert instead of silently storing INT into u64 positions).std.u64gainsparse_u64(s) -> U64ParseRes{v,ok}(digits only; empty/whitespace/sign/invalid/overflow → ok=0; leading zeros allowed) whilestr_to_u64stays loud. Float cast semantics corrected:f64(u64)is now a numeric round-to-nearest conversion (u64max→1.844674e+19, not -1.0),u64(f64)/i64(f64)truncate toward zero and are loud on out-of-range/NaN/inf (new OP_U64_TO_F64/OP_F64_TO_U64/OP_F64_TO_I64 opcodes),i32(f64)range-checked loud; AOT keeps existing parity fixtures by mapping F64_TO_I64 to F2I and adding i32 INT_CHECK class6 (AOT u64 programs remain loud; AOT i64 float overflow check is A5 residual). Fixtures src/tests/u64/p11-p14- test.sh P3-A4; spec §9.5.9 text fixed, §9.5.10 added. Anchors: bqvm 9898e6b2…/147,840B, qboot 378f5f85…/492,963B, cgtest f2f24e89…, cgtest_aot 7ca04136…; bootstrap refreshed. v11 tests PASS, p2a regression 1269/1269, bench 9/9. Residual: A5 AOT full u64.
Anchors (language build, v4.25 / 1.3.0-dev): qboot.qbc 378f5f85… (492,963 B), bqvm 9898e6b2… (147,840 B), cgtest.qbc f2f24e89… (110,146 B), cgtest_aot 7ca04136… (721,728 B). Specification v4.25.
[1.0.0] - 2026-10-29
- First public release of the Q+ language (compiler, VM, stdlib, examples, tests, spec).
- Self-hosting compiler
qboot; deterministicqboot.qbc(sha256 378f5f85…). bqvmbytecode VM + minimal C runtime; Linux x86-64; clean build sha256 af5466df….- 942 standard-library modules, 193 examples, language fixtures (typecheck/features/semantics).
- Language specification v4.2, including documented type-system and runtime boundaries.
- Apache-2.0 license; 另一产品线 kernel remains a separate closed-source product line.