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