【发布时间】:2018-03-16 06:39:02
【问题描述】:
LLVM 基础架构现在支持从 LLVM IR to WebAssembly 编译(至少在实验上如此)。 Swift 使用 LLVM 编译器基础架构,可以轻松编译为 LLVM IR。所以我认为将一些 Swift 代码编译为 LLVM IR,然后编译为 WebAssembly 会很简单。
然而,事实证明并不是那么容易。看起来 LLVM IR 并不完全独立于平台?无论幕后的原因是什么,在将 Swift 编译为 LLVM IR 时,必须指定目标架构并且 WebAssembly 不可用。
那么我有两个问题:
1) 目前(截至 2017 年 10 月)没有办法将 Swift 编译为 WebAssembly,我是否正确?
2) 如何使 WebAssembly 成为 Swift 到 LLVM IR 编译的受支持目标?
【问题讨论】:
-
我相信你需要自己构建 LLVM,因为它默认不支持 webm。
-
是的,没错。我有一个定制的 LLVM 构建,支持 WebAssembly。我已经成功地使用它来将 C 代码编译为 WebAssembly。但现在我想将 Swift 代码编译为 WebAssembly,为此,LLVM 的正确构建似乎是必要的,但还不够。据我所知,对 WebAssembly 的一些支持需要在 Swift 本身中。
标签: swift llvm webassembly