68fe839da9fe8e46cb6fd82327f712b5ecd218c9
重编 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 由它 推导,不宜过高以免多参调用单次分配逼近模块池单块上限)。
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%