Skip to content

生成 C++ 把完整 SHA-256 编进命名空间/函数名,可读性很差 #7

Description

@xiekunpeng

acsim-emit-cxx 把模块特化指纹和进程特化指纹的 64 位十六进制 SHA-256 嵌进每一个生成符号:

acsim_generated::::s<module_fp>::::p<process_fp>::Process::

加法器 demo 里,一行 dispatch 赋值就超过 400 字符,gdb / 阅读 model.cpp / diff 几乎不可用。特化身份需要保留,但不应该作为日常阅读的主符号。

现状
命名规则在两处硬编码:

降级:lib/Conversion/ACIRToACSim/ACIRToACSim.cpp(dispatch 的 work/xfer/reset/validate 字符串)
发射:lib/CodeGen/EmitCxx.cpp 的 ownerNamespace / processNamespace
acsim_generated:: + Module + "::s" + module.specialization[7:]

  • "::" + process + "::p" + process.specialization[7:] + "::"
    substr(7) 只是去掉 sha256: 前缀,完整 64 个 hex 字符仍留在 C++ 标识符里。

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:acirAgentic Circuit, ACIR, ACSim, and gfsim

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions