SuperAPI AI 工具集

stata-c-plugins

通用与其它

查看项目

更新于 10-16 03:42

技能介绍

用途:帮助开发者用 stplugin.h SDK 为 Stata 编写高性能 C/C++ 插件,覆盖从 SDK 设置到跨平台分发的完整生命周期,基于统计插补、随机森林、字符串匹配、因果推断等生产插件的实际经验。

主要能力:提供插件开发全流程指导,包括任务规划、架构决策(包装 C++ 后端、从零写 C 或纯 Stata)、参考文件索引、分阶段实施与多智能体审查循环;涵盖 SDK 接口(SF_vdata、SF_vstore、SF_nobs、SF_nvar、SF_is_missing、SF_display、SF_error 等)、内存安全、stata_call() 入口点、返回码、.ado 包装模式、preserve/merge 模式、插件排序契约、跨平台加载与编译、性能优化与调试策略。

使用方式:从 https://www.stata.com/plugins/ 下载 stplugin.h 与 stplugin.c;插件实现 stata_call(),C++ 需用 extern "C" 包装入口;通过 .ado 文件提供 Stata 原生接口,用户不直接调用 plugin call。跨平台编译:macOS 用 gcc -arch arm64 -DSYSTEM=APPLEMAC -bundle -pthread,Linux 用 gcc -DSYSTEM=OPUNIX -shared -pthread,Windows 用 x86_64-w64-mingw32-gcc -DSYSTEM=STWIN32 -shared -lwinpthread;Linux 从 macOS 构建需 Docker(如 colima),建议在 Ubuntu 18.04 上构建以兼容 glibc。插件命名 pluginname_os.plugin,加载采用 gtools 风格 OS 检测与裸文件名。

适用场景:为 Stata 开发统计计算插件,尤其是需要复用现有 C/C++ 后端(如 R 包 src/ 中的 C++)或需要多线程性能的场景。

限制:该技能假设开发平台为 macOS(Apple Silicon 或 Intel),构建命令、交叉编译与 Docker 说明均面向 Mac;插件目标平台为 macOS ARM64、macOS x86_64、Linux x86_64、Windows x86_64。插件崩溃会终止整个 Stata 会话且无保存提示。C 插件无法访问 Stata 内部 RNG(runiform()),需自备 XorShift 等 RNG。工作线程中不得调用 Stata SDK 函数。索引为 1-based,SF_nvar() 返回数据集全部变量数而非传入插件调用的变量数。其他细节暂未提供。