67 个版本 (破坏性更新)
0.142.0 | 2023年9月28日 |
---|---|
0.140.0 | 2023年9月28日 |
0.101.0 | 2023年7月24日 |
0.95.0 | 2023年3月12日 |
0.3.1 | 2018年2月20日 |
#146 在 WebAssembly
每月572次 下载
在 3 个 crate 中使用 (2 个直接使用)
375KB
8K SLoC
flowstdlib
库
flowstdlib
是为 flow
程序提供函数和流的标准化库。
模块
flowstdlib
包含以下模块
编译器使用
为了让编译器能够找到库中的 flow
和 function
定义,包含此库的目录必须位于默认位置($HOME/.flow/lib
),是 FLOW_LIB_PATH
的一部分,或通过 -L
命令行选项指定给 flowc
。
注意:流在编译时编译为函数图,在运行时不存在。
从源代码构建此库
如 flowstdlib
之类的库使用 flowc
构建,指定库根目录作为源 URL。
这构建了一个包含所有必需文件的目录树(在 target/{lib_name}
),这些文件构成了一个可移植库,包括:-
- 文档文件(.md Markdown 文件、流的 .dot 图、以 .dot.svg SVG 文件渲染的图)
- 流和函数的 TOML 定义文件
- 编译为 .wasm WASM 文件的函数实现
- 一个
manifest.json
清单,列出了库的函数以及实现(.wasm 文件)的位置。此清单由运行时使用,以便加载它。
流库的双重性质
流库,例如 flowstdlib
,具有双重特性。它们可以编译并直接链接到二进制文件,如 flowr
,或者当使用 flowc
编译时,所有函数实现都会编译为 .wasm
WASM 文件。
由运行时原生的使用
flowr
为 flowstdlib
提供了 -n/--native
选项以原生方式使用。当使用时,它包含的函数将运行在本地(机器码),而不是函数的 WASM 实现。
由运行时使用的 WASM
如果没有使用 -n/--native
选项,并且运行时(例如 flowr
)在运行时(使用默认位置,FLOW_LIB_PATH
或 -L
)找到了库清单(manifest.json
),则读取清单并找到并加载函数的 WASM 实现。
当执行需要这些库函数之一的作业时,将运行 WASM 实现。
功能
没有可启用功能。
依赖
~13–22MB
~391K SLoC