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日

#146WebAssembly

Download history

每月572次 下载
3 个 crate 中使用 (2 个直接使用)

MIT 许可证

375KB
8K SLoC

flowstdlib

flowstdlib 是为 flow 程序提供函数和流的标准化库。

模块

flowstdlib 包含以下模块

编译器使用

为了让编译器能够找到库中的 flowfunction 定义,包含此库的目录必须位于默认位置($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 文件。

由运行时原生的使用

flowrflowstdlib 提供了 -n/--native 选项以原生方式使用。当使用时,它包含的函数将运行在本地(机器码),而不是函数的 WASM 实现。

由运行时使用的 WASM

如果没有使用 -n/--native 选项,并且运行时(例如 flowr)在运行时(使用默认位置,FLOW_LIB_PATH-L)找到了库清单(manifest.json),则读取清单并找到并加载函数的 WASM 实现。

当执行需要这些库函数之一的作业时,将运行 WASM 实现。

功能

没有可启用功能。

依赖

~13–22MB
~391K SLoC