Commit Graph
15 Commits
Author SHA1 Message Date
TermiNexus 6a22633b6b chore(string): strrchr/strstr 补 noescape 逃逸标注;builtins/zlib 微调 2026-10-16 16:40:55 +08:00
TermiNexus cc7cfdb4af fix(mlirlite): alias 表按需扩容;工厂改 new memgr;define 位宽/截断配套
- mlirlite/__function.vp:_MlirAliasAdd 的 512 条硬上限改为 _MlirAliasGrow 池内翻倍扩容,不再把资源限制当编译错误
- mlirlite 类型工厂改 new memgr(pool) 返回值(消除栈逃逸);__module.vp 补 triple/datalayout
- viperlib.get_digit_count 用 uint(base) 显式声明无符号除法语义(新 AugAssign 符号规则)
- string.vp:strcpy/strcat/strncpy/strncat/memset/memset32/memcpy/memmove 加 @life(noescape(...))
2026-10-12 12:38:15 +08:00
TermiNexus e71daeea0e docs(includes): R11 注释英文化——75 个文件的中文注释改写为英文短注释
按规范「注释只讲解作用,不掺杂历史原因,尽量英文」:把 includes 下 75 个 .vp 的中文 # 注释与三引号 docstring 改写为英文,每个注释块压到 2 行以内。

保留要点:作用、约束、危险警告(不得/必须/注意)、ABI 与类型约定(如 BYTEPTR | t.CPtr = i8** 的跨模块坍缩坑)、位宽/长度约定、fail-fast 要求、内存与句柄所有权。

未动:文件头注释(规范豁免,仍是中文)、运行时中文字符串常量(printf / fatal_error / MlirFail 等用户可见消息,属代码字面量)。

验证:独立脚本比对 HEAD 与工作区的代码骨架(剥离 # 注释与三引号 docstring 后的非空行)——75 个文件逐字节一致;行尾 CRLF/LF 未被改动;全文剩余中文仅 547 行头注释、0 条行尾注释。bootstrap 三重重编 SUCCESS;全量 77/77 顺序回归通过。
2026-10-05 16:18:44 +08:00
TermiNexus 27121f56a7 refactor(includes): R12 下标 while 循环改 for range,R13 c.Set 迁移为赋值
R12(wiki/新规范 L27-39):把「i: int = 0 与 while i < N: … i += 1」形式的下标循环改写为「for i in range(N):」。保守判定:仅当条件为裸 NAME < EXPR、循环体无 continue、NAME 在体内无其它赋值、无嵌套重绑定、循环后同层不再引用 NAME 时才改写。共 269 处 / 48 文件。

R13:c.Set 是正在退化的路径——c.Set(*p, v) 期望写作 *p = v,c.Set(a, b) 等于 a = b。本次把 includes 内 45 处 c.Set 全部迁移为赋值,includes 已无 c.Set 调用。

验证:bootstrap 三重重编 SUCCESS(无 vast_c 解析回退);全量 77/77 顺序回归通过;ZlibTest 内部断言 79 passed / 0 failed。
2026-10-05 15:33:52 +08:00
TermiNexus e80284a6d5 refactor: 全量迁移 includes 到新规范语法
按根目录 新规范 迁移 R1/R2/R3/R4/R6/R7/R8/R9:指针 T* 后缀、内建类型短别名、c.Addr/c.Deref 单目化、c.Asm 改 __asm__、t.CDefine 改 define 软关键字、t.CEnum 改 enum。R4 对内建 cast 多参实参保留 c.Deref 原写法(单目化会致 TPC 类型退化)。验证:includes 52/52 编译通过,TransPyV 自举产物顺序回归 77/77 全通过。
2026-10-05 09:04:46 +08:00
TermiNexus 0f556463e7 修正了部分代码的表达方式,最后可用版本,mlirlite 已基本完善 2026-09-23 17:42:03 +08:00
TermiNexus 785e825518 清理了 t.CVoid 2026-09-16 16:07:35 +08:00
TermiNexus 096cb3b913 perf(string/memhub): strstr 改候选位跳转、strcmp 指针短路、块大小改一次左移
string: strstr 用 strchr 跳候选位替代逐字节 strncmp(实测 strncmp 由 7.44 亿降至 1.65 亿,总调用 -15.1%)

string: strcmp/strncmp 入口加指针相等短路

memhub: _block_size_at_order 由循环移位改一次左移;alloc 对 size==0 给可区分诊断(非池耗尽)
2026-09-13 17:50:04 +08:00
TermiNexus ec6c19481a refactor(includes): string.vp 双 double 辅助函数注解统一为内建 double
t.CDouble 与内建 double 等价(map_t_type: CDouble -> f64),_dd_split_hi/_dd_mul/_dd_add/_dd_div/_dd_from_u64/_dd_pow10/_pow2/_atof_scale_stepwise/atof 全量改写为内建名,消除混用。
2026-09-11 22:46:59 +08:00
TermiNexus 9a758a8f6c fix(includes): atof 改为正确舍入,对齐 sprintf 返回类型,补充 asm 约束说明
N4  string.vp:atof 重写为「u64 尾数 + 精确十进制幂 + 双 double(Dekker) 缩放」,
    正规数范围正确舍入(Python 原型 20 万组对拍 bit-exact),次正规回退逐步
    缩放;修十进制浮点字面量偏差(DBL_MAX 原 −6 ULP、e/ln2 各 ±1 ULP)
N13 viperlib.vp:export sprintf 返回 t.CVoid → t.CInt 并 return vsnprintf(...),
    与 CRT 及 includes/stdio.vp 的 extern declare 对齐(消除同符号签名冲突)
N10 asm.vp:为 pushall/popall/cpu_switch_context 补充约束说明(不改 clobber)
2026-09-11 17:40:26 +08:00
TermiNexus 52af24e85d fix(includes): asm 内联汇编输出占位符/clobber、vipermath 位重解释、string.split 容量参数
- asm.vp: inb/inw/inl 模板引用输出占位符 \ 并补 ~{rax}(原取硬编码 eax 且静默破坏 EAX,对齐 mm.vp cmos_read 模式)

- vipermath.vp: isnan/isinf 改 c.Load 位重解释(原 fptosi 位模式丢失导致恒返回 0)

- string.vp: split 增加 cap 容量参数,token 数 <= cap-1,防止越界写
2026-09-11 14:26:47 +08:00
TermiNexus 7d092f25b1 feat(vqt6/requests/vipersimd/vthreading): 气泡聊天与流式 https 阶段改动、vipersimd FMA 批量内核, 清理 vqt6 copy 与 requests.vp 2026-09-09 21:10:14 +08:00
TermiNexus 2992674783 feat(types): rowptr/REnum 迁移工作区快照 + GSList/PrintModule 临时 DBGCHAIN 护栏
把此前未提交的 rowptr 迁移整体入库(42 文件,含 ast/llvmlite/hashlib/json/zlib 等签名 rowptr 化)。临时诊断(用后移除):linkedlist.vp GSList[T].append 链完整性四检、__module.vp PrintModule Function.Params/param 指针野值护栏([DBGCHAIN] 前缀 + fflush + exit)。
2026-09-05 14:51:40 +08:00
TermiNexus f087aa88e2 更新,可自举 2026-08-27 10:16:28 +08:00
TermiNexus 14ff9d109f 从 TransPyC 主项目中分离 VRTE 2026-08-17 11:01:35 +08:00