11 个版本

0.2.9 2024 年 8 月 2 日
0.2.8 2024 年 8 月 2 日
0.2.7 2024 年 7 月 30 日
0.2.0 2024 年 6 月 27 日
0.0.0 2022 年 12 月 10 日

35WebAssembly

Download history 131/week @ 2024-06-22 18/week @ 2024-06-29 3/week @ 2024-07-06 140/week @ 2024-07-20 721/week @ 2024-07-27 69/week @ 2024-08-03

每月 930 次下载

Apache-2.0 WITH LLVM-exception

15MB
296K SLoC

TypeScript 243K SLoC // 0.3% comments JavaScript 48K SLoC // 0.1% comments Rust 4.5K SLoC // 0.0% comments WebAssembly 40 SLoC

weval:WebAssembly 部分评估器

weval 部分评估 WebAssembly 快照,将解释器转换为编译器(更多请参阅 Futamura 投影)。

weval 二进制文件可通过此仓库的发行版或通过一个 npm 包 获取。

weval 的用法如下

$ weval weval -w -i program.wasm -o wevaled.wasm

它在 program.wasm 上运行 Wizer 以获取快照,然后在生成的堆图像中处理任何 weval 请求(函数特殊化请求),将特殊化函数附加到其中,并在 wevaled.wasm 中填充函数指针。

更多信息请参阅 include/weval.h 中的 API。

发布清单

  • Cargo.tomlcargo check 中提升版本以确保 Cargo.lock 也得到更新。

  • npm/weval/index.js 中提升 TAG 常量。

  • npm/weval/package.json 中提升 npm 包版本。

  • npm/weval/ 中运行 npm i 以确保 package-lock.json 文件得到更新。

  • 将所有这些作为“版本提升”PR 提交。

  • 将其推送到 main 并确保 CI 成功完成。

  • 标记为 v0.x.y 并推送该标签。

  • 从根目录运行 cargo publish

  • npm/weval/ 运行 npm publish

依赖关系

~51MB
~1M SLoC