目录

FT-M7004 LASM 编译与自动出入栈离线交付包

本目录是 Windows 离线交付包,包含 Python 3.8 离线安装材料、可独立运行的 LACP,以及可版本化更新的 LASM 组件。无需安装外部工程。

首次使用

  1. 如电脑未安装 Python 3.8+,进入 offline_install/,按照其中的 README.md 执行离线安装。

  2. 在本目录打开 CMD 或 PowerShell,确认 Python:

    py -3 --version
  3. 执行环境检查:

    LACP.cmd --check

    输出 [LACP] environment: PASS 后即可使用。

  4. 执行内置验收样例:

    tools\LACP\examples\run_smoke_test.cmd

编译自己的算子

LACP.cmd -op path\to\kernel.la -O0
LACP.cmd -op path\to\kernel.la -O2

默认在 .la 同目录生成 .asm.dat.dis。LACP 只给与 .la 文件同名的顶层算子(兼容 LASM $0 前缀)添加 C ABI 出入栈,并且只把该入口的 section 改成 .cl_global@call / @icall 辅助函数保留 LASM 自身栈帧及原始 section。出入栈规划失败时不会覆盖已有产物。

LASM 组件更新

当前版本由 toolchain\lasm\DEFAULT_VERSION 决定。更新时:

  1. 新增目录 toolchain\lasm\<新版本号>\
  2. 放入 bin\lasm.exelayout\m7004.json
  3. DEFAULT_VERSION 的一行内容改为新版本号;
  4. 再次运行 LACP.cmd --check 和验收样例。

保留旧版本目录,以便回退:只需把 DEFAULT_VERSION 改回旧版本号。

更多参数、工具发现规则和源码要求见 tools\LACP\README.md

完整使用示例

在 CMD 或 PowerShell 中进入交付包根目录:

cd /d M:\LAM_CP_STACK_PY8

1. 环境检查

LACP.cmd --check

检查通过时会看到:

[LACP] environment check
[OK] Python: 3.8.10
[OK] LASM: ...\toolchain\lasm0260908\bin\lasm.exe
[OK] layout: ...\toolchain\lasm0260908\layout\m7004.json
[LACP] environment: PASS

2. 编译 .la 文件

LACP.cmd -op D:\project\kernel.la -O0
LACP.cmd -op D:\project\kernel.la -O2

-O0 使用 LASM 默认优化,-O2-O2 转发给 LASM。默认在源文件目录生成:

kernel.asm
kernel.dat
kernel.dis

也可以指定输出目录:

LACP.cmd -op D:\project\kernel.la -O2 --output-dir D:\project\output

3. 运行内置验收样例

tools\LACP\examples\run_smoke_test.cmd

该脚本会分别编译 O0 和 O2,并检查 ASM 是否包含自动出入栈元数据。成功时输出:

[PASS] LACP smoke test passed.
[PASS] O0 ASM: ...\tools\LACP\examples\output\O0\lacp_stack_smoke.asm
[PASS] O2 ASM: ...\tools\LACP\examples\output\O2\lacp_stack_smoke.asm

4. 在任意目录直接调用

不必先切换到交付包目录,也可以使用绝对路径调用:

M:\LAM_CP_STACK_PY8\LACP.cmd --check
M:\LAM_CP_STACK_PY8\LACP.cmd -op D:\project\kernel.la -O2
关于

脚本构建LASM代码+自动出入栈

1.3 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号