博客 - 图沙尔·阿德赫拉奥

主要观点:介绍将 Haskell 代码编译为 WebAssembly(Wasm)的步骤,包括环境设置、编译简单 Haskell 文件、在浏览器中运行 WebAssembly 以及编译 Cabal 项目等,并提供相关代码和链接。
关键信息

  • 需安装支持wasm32-wasi目标的自定义 GHC 版本,可参考GHC WebAssembly 元仓库进行安装。
  • 简单 Haskell 函数示例及通过 C FFI 处理 JavaScript 和 Haskell 数字类型差异。
  • 创建 HTML 文件在浏览器中运行 WebAssembly 模块,初始化 Haskell 运行时并调用函数。
  • 创建 Cabal 项目处理字符串,编写相关 Haskell 代码并更新 Cabal 文件,进行构建和运行。
    重要细节
  • 安装 GHC 时可选择口味,如使用 GHC 9.8.3 时需设置export FLAVOUR=9.8等。
  • 编译 Haskell 文件到 WebAssembly 时使用wasm32-wasi-ghc Test.hs -optl-Wl,--export=hs_init,--export=addTen
  • 在 HTML 中运行 WebAssembly 需引入相关库并初始化,调用函数时要处理字符串编码和解码。
  • Cabal 项目中要添加ghc-options以导出必要函数,构建后需复制.wasm文件到项目目录。
阅读 14
0 条评论