数值边界:完整 64-bit u64 与 AOT u64(1.7.0-dev / v4.38)
English summary. u64 on the VM supports the full 64-bit range, containers/casts, integer bitwise operators, and (v4.38) large u64 literals in decimal or hex up to 2^64-1; values above u64 max are a loud compile-time error (
exceeds u64 max, [TC15], rc=2/no qbc). i64 keeps its existing bounds; binary large literals and negative u64 unary-minus are not enabled; AOT u64 has a 3072-constant pool limit. AOT u64 remains staged (unsupported paths fail loudly), not an unconditional full-u64 claim.
Q+ 1.7.0-dev 的整数边界(spec v4.38;u64 大字面量 A.18 / bitwise v4.36):
VM:完整 u64 + 大字面量(v4.38 收口)
- 完整 64 位无符号范围
[0, 18446744073709551615]:打印、无符号比较、mod-2^64 回绕; 上下文传播(赋值/参数/返回/struct 字段/数组元素);显式 casts;std.u64wrapping/saturating/ checked API、u64_to_str、checkedparse_u64。 - 容器/复合类型(A4):
u64/嵌套数组、含 u64 字段/数组字段的 struct、参数/返回、Box<u64>、fn() -> u64槽位。 - 浮点 cast(A4 修正):
f64(u64)数值转换;u64(f64)/i64(f64)向零截断,越界/NaN/inf loud。 - 整数 bitwise(v4.36):
& | ^ ~ << >>(<<wrap、>>逻辑右移、计数 clamp [0,63]、 无符号打印);u64×非字面量 signed 仍 TC9 loud;float/bool/nil 未放开。 - 大整数字面量(v4.38,A.18):u64 标注上下文中的十进制/hex 字面量范围
[0, 2^64-1];超 u64 max → 编译期 loudinteger literal out of range (exceeds u64 max 18446744073709551615)[TC15],rc=2、不产 qbc(fixtures n06 十进制 / n07 hex 溢出); qbc 以 type11 raw u64 承载。i64/i32/负字面量规则不变(n08:i64 大字面量仍 TC15 rc=4, 不随 u64 放开)。 - TC15 更新:u64 上下文已放开(v4.38);其他上下文 hex > i64max 仍 TC15 loud。
- 残余(不得宣称无条件 full-u64):二进制(0b…)大字面量未纳入;负 u64 仍按 unary-minus(未放开
-1: u64语义);AOT u64 常量池上限 3072(超限 loud); AOT 仍为分阶段支持(casts/容器等未支持路径 loud)。
AOT u64 状态(Stage1+2+3 + boxed i64/type-10/POC3)
AOT Linux x86-64 已覆盖 u64 常量/打印/算术/比较/casts/float/容器、boxed i64(tag7 池 4096)、 type-10 指数常量、AOT 多模块 POC3;未支持路径构建期 rc=5/no ELF 或运行期 trap(loud)。
不得宣称
- 不得称无条件 full-u64 / 任意进制大字面量 / 负 u64 已放开;
- 不得称 i64 越界放开(n08 仍 TC15);不得称 AOT 常量池无上限(3072 残余);
- 不得称 AOT 全部 u64 路径支持(未支持路径 loud);
- 1.7.0-dev 为发布候选(NOT PUBLISHED)。
v1.8.0 补充(TC15 剩余边界)
- u64 上下文支持二进制
0b…字面量 [0,2^64-1];超界 loud(修复 65 位静默 wrap)。 - 负 u64 不放开 → 编译期 loud;合法写法
0 - x(u64 上下文);u64 常量池 3072,超出 loud。 - 其它上下文 hex >i64max 仍 TC15 loud。