Commit Graph
10 Commits
Author SHA1 Message Date
TermiNexus b208eae8f3 feat(dbgstack,parser,asm): 新增按键栈转储运行时;前置数组声明符/union 语法;asm 迁移新语法
新增 includes/dbgstack.vp: 挂起主线程取 x64 CONTEXT + RBP 链逐步取证 + 栈扫描兜底(4KiB 分块 ReadProcessMemory);按 <exe>.stackmap 下界查表输出 <文件>.vp:行 (函数);控制台 ASCII 输出并双写 UTF-8 <exe>.stackdump.txt;ASan 与 DbgHelp 冲突显式降级不静默;lock cmpxchg 原子重入(不用 InterlockedCompareExchange: x64 上是编译器内部函数、无导出符号)。

新增/补 w32 头: win32dbghelp.vp(新)、SetConsoleCtrlHandler、x64 CONTEXT、ReadProcessMemory。

parser.vp/tokens.vp: [N]T/[]T/const [N]T 脱糖为 t.CArray;新增 union NAME: 语句(Keyword.Union 追加表尾);list[rawptr[AST]] elem_size 2/4 改 8;新增 _record_parse_err_ctx 把 token 类型与前后 token 并入错误消息,去掉 [AST] SyntaxError 遗留单行 printf。

asm.vp: 整文件迁移到 __asm__/asminp/asmout/裸 ASM_DESCR。
2026-09-25 13:11:15 +08:00
TermiNexus 0f556463e7 修正了部分代码的表达方式,最后可用版本,mlirlite 已基本完善 2026-09-23 17:42:03 +08:00
TermiNexus 61acfc2759 修复了一些问题 2026-09-17 14:52:53 +08:00
TermiNexus 785e825518 清理了 t.CVoid 2026-09-16 16:07:35 +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 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 d6d06b2f1a fix(asm): inb/inw/inl 显式 mov 到输出寄存器——加 CLOBBER_RAX 后 LLVM 不再把 value 绑 RAX,原写法读到 asm 前残留导致 waitReady err=8(status 0x50 被读成含 DF);按 mm.vp 模式 asm 内 mov {AsmOut}, eax 2026-08-27 01:16:53 +08:00
TermiNexus 4bcc66c571 fix(asm): inb/inw/inl 内联汇编补 CLOBBER_RAX——in al/ax/eax 修改 EAX 但未声明 clobber,调用方 EAX(循环计数/返回值/指针高32位)被静默破坏,导致 IDE 读取数据间歇性损坏(win 前2字节清零)、跨模块返回值丢失(fat32.read 返回64收到<64、spawn_elf 返回 pid 收到0、mm.malloc 返回值丢失) 2026-08-27 01:14:13 +08:00
TermiNexus 14ff9d109f 从 TransPyC 主项目中分离 VRTE 2026-08-17 11:01:35 +08:00