add a test file
本目录是 Windows 离线交付包,包含 Python 3.8 离线安装材料、可独立运行的 LACP,以及可版本化更新的 LASM 组件。无需安装外部工程。
如电脑未安装 Python 3.8+,进入 offline_install/,按照其中的 README.md 执行离线安装。
offline_install/
README.md
在本目录打开 CMD 或 PowerShell,确认 Python:
py -3 --version
执行环境检查:
LACP.cmd --check
输出 [LACP] environment: PASS 后即可使用。
[LACP] environment: PASS
执行内置验收样例:
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。出入栈规划失败时不会覆盖已有产物。
.la
.asm
.dat
.dis
$0
.cl_global
@call
@icall
当前版本由 toolchain\lasm\DEFAULT_VERSION 决定。更新时:
toolchain\lasm\DEFAULT_VERSION
toolchain\lasm\<新版本号>\
bin\lasm.exe
layout\m7004.json
DEFAULT_VERSION
保留旧版本目录,以便回退:只需把 DEFAULT_VERSION 改回旧版本号。
更多参数、工具发现规则和源码要求见 tools\LACP\README.md。
tools\LACP\README.md
在 CMD 或 PowerShell 中进入交付包根目录:
cd /d M:\LAM_CP_STACK_PY8
检查通过时会看到:
[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
LACP.cmd -op D:\project\kernel.la -O0 LACP.cmd -op D:\project\kernel.la -O2
-O0 使用 LASM 默认优化,-O2 将 -O2 转发给 LASM。默认在源文件目录生成:
-O0
-O2
kernel.asm kernel.dat kernel.dis
也可以指定输出目录:
LACP.cmd -op D:\project\kernel.la -O2 --output-dir D:\project\output
该脚本会分别编译 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
不必先切换到交付包目录,也可以使用绝对路径调用:
M:\LAM_CP_STACK_PY8\LACP.cmd --check M:\LAM_CP_STACK_PY8\LACP.cmd -op D:\project\kernel.la -O2
脚本构建LASM代码+自动出入栈
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
FT-M7004 LASM 编译与自动出入栈离线交付包
本目录是 Windows 离线交付包,包含 Python 3.8 离线安装材料、可独立运行的 LACP,以及可版本化更新的 LASM 组件。无需安装外部工程。
首次使用
如电脑未安装 Python 3.8+,进入
offline_install/,按照其中的README.md执行离线安装。在本目录打开 CMD 或 PowerShell,确认 Python:
执行环境检查:
输出
[LACP] environment: PASS后即可使用。执行内置验收样例:
编译自己的算子
默认在
.la同目录生成.asm、.dat、.dis。LACP 只给与.la文件同名的顶层算子(兼容 LASM$0前缀)添加 C ABI 出入栈,并且只把该入口的 section 改成.cl_global;@call/@icall辅助函数保留 LASM 自身栈帧及原始 section。出入栈规划失败时不会覆盖已有产物。LASM 组件更新
当前版本由
toolchain\lasm\DEFAULT_VERSION决定。更新时:toolchain\lasm\<新版本号>\;bin\lasm.exe与layout\m7004.json;DEFAULT_VERSION的一行内容改为新版本号;LACP.cmd --check和验收样例。保留旧版本目录,以便回退:只需把
DEFAULT_VERSION改回旧版本号。更多参数、工具发现规则和源码要求见
tools\LACP\README.md。完整使用示例
在 CMD 或 PowerShell 中进入交付包根目录:
1. 环境检查
检查通过时会看到:
2. 编译
.la文件-O0使用 LASM 默认优化,-O2将-O2转发给 LASM。默认在源文件目录生成:也可以指定输出目录:
3. 运行内置验收样例
该脚本会分别编译 O0 和 O2,并检查 ASM 是否包含自动出入栈元数据。成功时输出:
4. 在任意目录直接调用
不必先切换到交付包目录,也可以使用绝对路径调用: