已合并
refactor(build): consolidate common build infrastructure #5247
XuebinYang创建于 8月21日
refactor(build): consolidate common build infrastructure #5247
已合并
Pull Request已成功合入, 合并人@CANN-robot
(感谢 XuebinYang 的贡献)8月21日 创建了 pull request,commit fc75030b
atomgit-bot
8月21日 评论:
8月21日 评论:
变更摘要
本 PR 旨在整合构建基础设施:将 pack、register、specialization 等流程中重复使用的进程执行能力与临时目录管理能力抽取到公共模块 tools/build/common,新增 ProcessExecutor(及其 ProcessExecutionRequest/ProcessExecutionResult、ProcessOutputMode、ProcessTermination 类型)取代旧的 ProcessRunner,新增 RAII 类 TemporaryDirectory 取代旧的 BuildWorkspace;同时将 aclrtc specialization 与 asc_compile_exporter 迁移到上述公共能力并删除不再使用的旧实现,并补充中文详细设计与实施文档。
主要改动
- 新增公共进程执行能力
ProcessExecutor:在tools/build/common/process_executor.h/cpp中新增ProcessExecutor::Execute,支持环境变量覆盖与移除、输出继承或合并捕获(ProcessOutputMode::Inherit/CaptureCombined)、执行超时、终止宽限期与输出字节上限,并通过ProcessExecutionResult::HasSuccessfulExit()、GetTerminationName()返回结构化结果;同时删除旧实现process_runner.cpp。 - 新增 RAII 临时目录
TemporaryDirectory:在tools/build/common/temporary_directory.h/cpp中新增TemporaryDirectory,提供CreateUniqueUnder、AdoptExistingForCleanup、RemoveNow、RetainAfterDestruction及移动语义,统一负责临时目录的创建、私有权限(S_IRWXU)与生命周期清理;删除tools/build/asc_compile_exporter/build_workspace.cpp中的旧BuildWorkspace。 aclrtcspecialization 迁移到公共能力:compilation_plan_executor.cpp删除约 549 行内联的子进程 spawn、输出排空与进程组终止逻辑,改用ProcessExecutor::Execute并通过MapProcessResultToCompilationError映射为编译/链接错误码;kernel_specialization_types.h移除CompilationProcessTermination与CompilationProcessResult类型,kernel_compilation_workspace.cpp与resource_registry.cpp改用TemporaryDirectory管理 worktree 与临时根目录(引入retainMaterializedDirectories_保留策略)。asc_compile_exporter迁移到公共能力:manifest_bundle_compiler.cpp改用ProcessExecutor执行 make 构建(30 分钟超时、移除MAKEFLAGS/MFLAGS/MAKEFILES/GNUMAKEFLAGS环境变量、输出继承模式),并用TemporaryDirectory替代BuildWorkspace管理构建与发布工作目录。- 测试同步更新:删除
test_build_workspace.cpp与test_process_runner.cpp,新增test_temporary_directory.cpp与test_process_executor.cpp,并将test_compilation_plan_executor.cpp、test_kernel_specialization_diagnostics.cpp、test_kernel_specialization_session.cpp、test_resource_registry.cpp、test_asc_compile_exporter.cpp等用例迁移到新的ProcessExecutionResult/ProcessTermination/TemporaryDirectory接口。


不准确?
atomgit-bot
8月21日 评论:
8月21日 评论:
8月21日 添加了label:stat/needs-squash
8月21日 添加了label:cann-cla/yes
此处折叠了105条消息 查看更多
8月25日 通过审查
8月25日 通过了评审
YANXI_ZHAO
8月25日 评论:
8月25日 评论:
/lgtm
/approve


8月25日 添加了label:lgtmapproved
8月25日 合入了pull request
修改内容
验证