问题标签 [wasi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - 在 Windows 10 中构建 wasmtime 失败
我尝试在 Windows 10 中构建wasmtime但失败了。
运行命令后cargo build --release
,我收到错误消息:
找不到 sys/ioctl.h和pthread.h文件。
我安装了MinGW、CMake和LLVM。我是否需要安装其他与 Linux 相关的工具来构建它?
clang - 使用 wasi-libc 时 fopen 失败
我尝试在使用fopen
时读取图像wasi-libc
:
使用 Clang 构建代码:
它返回 NULL。我该如何解决这个问题?
llvm - 如何让 wasm-ld 尊重 wasm-import-module 属性
已修复:我设置了要导入的函数的 DLL 存储类,dllimport
这允许 wasm-ld 发出正确的导入命名空间。
我正在使用 LLVMSharp* 库构建编译器,它会发出针对 .bc 的 LLVM .bc 模块文件wasm32-unknown-unknown
。我正在尝试通过使用{ "wasm-import-module"="wasi_unstable" }
属性标记这些函数值来从 WASI 接口将函数导入其中。(这应该等同于 clang 所做的__attribute__((import_module(<module_name>)))
;见这里)。但是,当我将生成的 .bc 文件传递给 wasm-ld(Windows 64 位 9.0.0 安装版本)时,生成的 .wasm 模块仍然从 .wasm 导入这些函数"env"
,这不起作用。
是否有一些选项可以传递给 wasm-ld 以使其wasm-import-module
正确处理,还是我需要走另一条路线?
*具体来说,我使用的是 LLVMSharp 5.0.0,它是最新的稳定版本。LLVMSharp 8.0.0 可能支持构建 .wasm 模块,但没有针对它的发布版 NuGet,并且测试版 NuGet 有一些问题阻止我升级。这就是为什么我要走 wasm-ld 路线。
webassembly - WASI 和 proxy-wasm 是什么关系?
WASI和proxy-wasm似乎有相似的目标——定义一个 ABI 以允许 WASM 模块与主机环境交互(即支持系统调用),而 proxy-wasm 专注于嵌入到代理中的模块。
两者之间的关系(当前的或计划的)是什么?我见过这个,但不确定涵盖了什么。
runtime - WebAssembly 运行时 vs. 解释器 vs. 引擎
WebAssembly(缩写为 Wasm)是一种用于基于堆栈的虚拟机的二进制指令格式。
在 Wasm/WASI 的上下文中,什么是
- WebAssembly运行时?
- WebAssembly解释器?
- WebAssembly引擎?
在上述情况下:
- 主机环境?
我想这些术语的实际含义在 Web 浏览器上下文中使用时可能会有所不同,但我认为重点应该放在 Wasm 代码的本机用法上。
module - 编辑:Wasm/WASI 会通过消息传递实现流程吗?
Wasm/WASI 开发人员是否计划过实现可以通过 Wasm/WASI 运行时中的消息传递(无需通过 JS 运行时)相互通信的流程?
老问题:
WebAssembly 运行时会实现模块之间的消息传递,还是模块将保持无状态?或者那是 WASI 流程最终会有的东西吗?
基本上我要问的是:WebAssembly/WASI 运行时是否会有可以在彼此之间传递消息的进程?我猜那是几年后的事了,但也许它甚至不在议程上?
c++ - OpenCV 可以与 WASI(WebAssembly 系统接口)一起编译/使用吗?
WASI(WebAssembly 系统接口)旨在将 WebAssembly 带到浏览器之外。
我使用 OpenCV 4.3.0 的 eigenfaces 示例构建了一个简单的人脸识别应用程序(参见:https ://docs.opencv.org/2.4/modules/contrib/doc/facerec/facerec_tutorial.html#eigenfaces-in-opencv )和让它工作。
最近我想用 OpenCV 构建一个基于 WebAssembly(WASM) 的人脸识别应用程序。我搜索了 WASM+人脸识别,我得到了很多 git 存储库和示例,opencv_js.wasm
并将其与 JavaScript 绑定一起使用。
我的目的是构建一个独立的 *.wasm 模块而不是 html+js+wasm 项目,因此我遇到了 WASI(WebAssembly 系统接口)。几个运行时,例如wasmtime
并且wasmer
可以运行独立的 *.wasm,它是使用 WASI 工具链(、、等,例如项目)从 C/C++wasicc
编译wasic++
的wasienv
。
你们有什么想法或经验来构建一个独立的人脸识别/检测/...或与 WASI 类似的项目吗?非常感谢您的回复!
clang - 当使用“clang++”编译wasm文件时,WebAssembly.instantiate 失败,但可以使用“clang”
当使用 (C) 编译 C/C++ .wasm 代码时clang
- 它在 Chrome 中加载并且运行良好,但是使用clang++
(C++) 时 - wasm 加载失败并出现错误(在 JS 控制台中):
Uncaught (in promise) LinkError: WebAssembly.instantiate(): Import #1 module="wasi_snapshot_preview1" function="fd_close" error: function import requires a callable
为什么?
WASM 编译参数:
JS wasm 加载代码:
hello_wasm.cpp(编译没有错误):
LLVM v10 我使用来自https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-11/wasi-sdk-11.0-mingw.tar.gz的 wasi sysroot
也在这里讨论这个问题https://github.com/WebAssembly/wasi-sdk/issues/145