Maguyva 的 C 支持:面向系统与嵌入式代码的调用图
在 C 里,调用图就是架构。智能体应当先读懂它,再动手修改。
扩展名
.c, .h
Fortran 代码库往往历史悠久、规模庞大,而且出自领域专家而非软件团队之手。名为 SOLVE、Solve 和 solve 的例程其实是同一个。模块被数百个文件共享,内置过程库又足够庞大,以至于一份朴素的调用列表里大多是 SQRT、SUM 和 WRITE。
只会 grep 的智能体会淹没在这些噪声里。Maguyva 先把结构交给它:有哪些程序单元、它们使用哪些模块、哪些用户例程在相互调用。
Maguyva 覆盖固定格式和自由格式源码(.f、.for、.ftn、.f90、.f95、.f03、.f08)。函数和子程序会被提取为可调用符号,派生类型可以在结构搜索中作为类型定义选取。
符号匹配不区分大小写,与 Fortran 自身的规则一致。导入关系来自 use 和 include,关键字会被去掉,图谱中保存的是模块名。调用、读取、赋值、类型引用,以及来自扩展派生类型的继承,都会进入图谱。
关系过滤器会剔除约 165 个内置过程(I/O 语句以及数学、数组、字符串、类型转换和位操作例程),因此留下的边都指向你自己的代码。
compute_flux,它们各自使用哪些模块?”(先用 find_symbol,再用 dependency_search 的 incoming 方向)get_task_context)constants 模块的程序单元。”(用 text_pattern_search 搜索 use constants,再用 find_symbol)structural_search 中使用 functions 预设;methods 预设不会选中任何 Fortran 节点。WRITE 或 OPEN 时,请使用 text_pattern_search。通过快速入门连接仓库,然后在兼容性页面查看完整的支持矩阵。如果 Fortran 与 C 胶水代码并存,也请阅读 C 指南。
最适合场景
智能体工作流
引擎细节
常用 MCP 入口工具
从子程序、函数或模块名入手;与 Fortran 一样,匹配不区分大小写。
在修改数值逻辑之前,对求解器或共享模块例程使用 incoming 遍历,查看所有调用方。
适用于“追踪求解器循环中边界条件是如何施加的”这类提示词。