LSR 003 - Lamina C 扩展与插件规范¶
基本信息¶
LSR 编号 003
标题 Lamina C 扩展与插件规范
作者 Ziyang-Bai
状态 草案
类型 标准规范
创建日期 02-04-2026
归属项目 编译器、虚拟机、包管理器
摘要¶
定义 C/C++ 扩展的最小交付、接口映射与内存/所有权约束。
技术规范¶
1. 最小交付物¶
最小交付:
动态库(编译生成的
.dll/.so/.dylib,符号建议按C ABI导出)Lamina 模块声明文件(默认文件名为module.lm) [1]
推荐目录(非强制):
[root]/module.lm[root]/src/[root]/include/(可选)
2. 接口映射语法(必需)¶
在 module.lm 中使用 static 绑定动态库 [1] [2]
编写动态库代码,需要包含Lamina的核心头文件"lmx.h",内部具有lamina的一些api与类型定义;无量纲实参剥离按 LSR-008 [3] 处理。
3 接口示例¶
假设有动态库 libadd.so,内有 LmInt add(LmInt a, LmInt b);函数
static "add"
func so_add(a int, b int) -> int = "add"
# 等于号后面为动态库的导出符号