TermiNexus
|
fb365a1707
|
chore: 改名同步 TransPyV -> ViperC(源码/配置内的纯替换)
|
2026-10-12 15:06:47 +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
|
0f37f2fde9
|
revert(narrow): 撤销 define 位掩码的显式强转(编译器已按值推断位宽)
TPC 已修复 CDefine 常量位宽推断(无符号 32 位高半区不再误判 i64),X | DEFINE 现为 i32;fileio access |= GENERIC_*、tarfile px.mask |= PAX_*、ast/parser node.flags |= FLAG_IS_* 无需再显式强转,恢复原写法
|
2026-10-11 11:46:38 +08:00 |
|
TermiNexus
|
7e6ed0db2e
|
fix(narrow): 32 位字段/变量 |= 64 位 CDefine 改用显式窄化转换
CDefine 常量按 64 位处理,X | DEFINE 的结果即 64 位;赋回 32 位字段触发隐式窄化(单个常量赋值有豁免,但 OR 表达式没有)。fileio access |= GENERIC_* 用 ULONG(...);tarfile px.mask |= PAX_*、ast/parser node.flags |= FLAG_IS_* 用 int(...)
|
2026-10-11 11:42:25 +08:00 |
|
TermiNexus
|
19e4ef26a2
|
refactor(fileio): File/FileW.write 长度形参 ULONG 改为 sizet
与 read_all 保持一致:长度来源多为 sizet/strlen,形参用 sizet 可避免 64->32 隐式窄化;内部对 count>0xFFFFFFFF 返回 ERR,仅在 WriteFile 处显式 ULONG(count)
|
2026-10-10 22:15:47 +08:00 |
|
TermiNexus
|
aa88e46b5d
|
将 w32 库改为 win32
|
2026-10-10 21:58:27 +08:00 |
|
TermiNexus
|
1c9447dc82
|
refactor(fileio): read_all 容量形参 ULONG → sizet(File/FileW)
与 f.size()(LONGLONG)同宽,消除'64 位尺寸进 32 位形参'的隐式窄化诱因;内部 min(file_size, cap-1) 全程用 sizet,只在交给 ReadFile(ULONG) 处显式窄化,且 cap-1 > 4GiB-1 直接返回失败(单次读上限 DWORD),不再静默回绕。
|
2026-10-10 21:57:39 +08:00 |
|