TermiNexus 68fe839da9 fix(mlir): 类型文本缓冲成对扩容(scratch 尺寸 + 各处 cap)
重编 TransPyV 自身时触发类型文本截断护栏:
  [MLIR-FAIL] MLIR 渲染: 类型文本超出输出缓冲被截断(该处缓冲过小,需按类型长度增大)
  (PhaseA ./TransPyV/App/lib/core/CompilerFactory.vp)

根因:内联具名结构体在使用处展开完整字段体,类型文本可达数百字节,而
_append_cstr / MlirTypeText / TypePrint / _MlirTypePrintDepth 的定长
cap(256/512/1024/2048)与对应 scratch 缓冲偏小。

修复(cap 与底层缓冲**成对**放大,保证 cap ≤ 缓冲,绝不越界):
- _MlirTablesInit:_SC_Ty/_SC_Ty2/_SC_Mt/_SC_Buf/_SC_B1/_SC_B2 512→4096、
  _SC_Tmp2/_SC_IdxT 1024→4096、_SC_ArgTs 2048→8192、_SC_Tmp 4096→8192;
- 以"别名 → 缓冲尺寸"追踪脚本放大各调用点 cap(77 处,含被当作 cap 缓冲使用的
  pool.alloc 同步 512/1024→4096),如 _MlirGep 的 idxt/bmt、_MlirCall 的
  argts/rmt/vftys、_MlirNamedStructAppend/TypePrint 的 tmp/rfb/tmp3 等;
- __builder.vp 的 _TY_TEXT_CAP 512→2048(类型文本内嵌缓冲 + cap;arg_cap 由它
  推导,不宜过高以免多参调用单次分配逼近模块池单块上限)。
2026-10-04 19:56:42 +08:00
2026-09-30 00:25:55 +08:00
2026-08-17 11:01:35 +08:00
2026-09-29 17:00:36 +08:00
2026-09-29 17:00:20 +08:00
2026-09-29 16:59:46 +08:00
2026-09-29 16:59:21 +08:00
2026-09-29 16:47:50 +08:00
2026-09-29 16:47:20 +08:00
S
Description
GVSDS(TM) Viper SE Runtime Environment and Library (VRTE)
15 MiB
0 Stars 1 Watchers 0 Forks
Languages
C++ 76.8%
C 22%
CMake 1.2%