Loko 可以编译 R6RS 顶层程序:
loko --compile hello.sps
上述命令将编译 R6RS 顶层程序 hello.sps 并创建二进制文件 hello,该二进制文件将在 Linux 和裸金属 上运行。
编译 R7RS 程序:
loko -std=r7rs --compile hello.sps
库从 LOKO_LIBRARY_PATH 环境变量中查找
(该变量由包管理器 Akku 自动设置)。
默认禁用 eval 以加速构建,但可以
使用 -feval 启用:
loko -feval --compile hello.sps
支持的目标平台可以使用 -ftarget=TARGET 更改。默认目标
是 pc+linux。其他目标有 linux(仅 Linux),
netbsd(仅 NetBSD)和 pc(仅裸
金属)。
还提供了一个额外奇特的目标。它被称为 polyglot,
创建的二进制文件可以在 Linux、NetBSD 和裸金属上运行。这
比看起来更没用,将来可能会被移除。
你也可以省略常规的 Scheme 库。如果你使用
-ffreestanding,那么只在你的程序所使用的
库之上添加基于汇编的运行时。这主要在
你开发编译器时有用。源代码发行版中有一个
使用此功能的示例,samples/hello/just-hello.sps。
你可以调优源代码级优化器(cp0)的参数。
参数 -fcp0-size-limit=N 设置大小限制,
-fcp0-effort-limit=N 设置努力限制。
命令行非常不灵活,所以目前请尽量 遵循固定的参数顺序。
Loko 将其运行时集成到生成的二进制文件中,并且
Loko 的源代码需要可用才能成功编译。其
位置在编译 Loko 时由 PREFIX 决定,但可以
使用 LOKO_SOURCE 环境变量覆盖。