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"

# 等于号后面为动态库的导出符号

4. 引用