.. role:: ref(emphasis)

.. _futhark-wasm(1):

============
futhark-wasm
============

SYNOPSIS
========

futhark wasm [options...] <program.fut>

DESCRIPTION
===========

``futhark wasm`` translates a Futhark program to sequential
WebAssembly code by first generating C as ``futhark c``, and then
using Emscripten (``emcc``).  This produces a ``.js`` file that allows
the compiled code to be invoked from JavaScript.  Executables
implement the Futhark server protocol and can be run with Node.js.

OPTIONS
=======

Accepts the same options as :ref:`futhark-c(1)`.

ENVIRONMENT VARIABLES
=====================

``CFLAGS``

  Space-separated list of options passed to ``emcc``.  Defaults
  to ``-O3 -std=c99`` if unset.

``EMCFLAGS``

  Space-separated list of options passed to ``emcc``.

EXECUTABLE OPTIONS
==================

The following options are accepted by executables generated by
``futhark wasm``.

-h, --help

  Print help text to standard output and exit.

-D, --debugging

  Perform possibly expensive internal correctness checks and verbose
  logging.  Implies ``-L``.

-L, --log

  Print various low-overhead logging information to stderr while
  running.


SEE ALSO
========

:ref:`futhark-c(1)`, :ref:`futhark-wasm-multicore(1)`
