.. role:: ref(emphasis) .. _futhark-c(1): ========= futhark-c ========= SYNOPSIS ======== futhark c [options...] DESCRIPTION =========== ``futhark c`` translates a Futhark program to sequential C code, and either compiles that C code with a C compiler (see below) to an executable binary program, or produces a ``.h`` and ``.c`` file that can be linked with other code.. The standard Futhark optimisation pipeline is used, and The resulting program will read the arguments to the entry point (``main`` by default) from standard input and print its return value on standard output. The arguments are read and printed in Futhark syntax. OPTIONS ======= -h Print help text to standard output and exit. --entry-point NAME Treat this top-level function as an entry point. --library Generate a library instead of an executable. Appends ``.c``/``.h`` to the name indicated by the ``-o`` option to determine output file names. -o outfile Where to write the result. If the source program is named ``foo.fut``, this defaults to ``foo``. --safe Ignore ``unsafe`` in program and perform safety checks unconditionally. --server Generate a server-mode executable that reads commands from stdin. -v verbose Enable debugging output. If compilation fails due to a compiler error, the result of the last successful compiler step will be printed to standard error. -V Print version information on standard output and exit. -W Do not print any warnings. --Werror Treat warnings as errors. ENVIRONMENT VARIABLES ===================== ``CC`` The C compiler used to compile the program. Defaults to ``cc`` if unset. ``CFLAGS`` Space-separated list of options passed to the C compiler. Defaults to ``-O3 -std=c99`` if unset. EXECUTABLE OPTIONS ================== The following options are accepted by executables generated by ``futhark c``. -h, --help Print help text to standard output and exit. -b, --binary-output Print the program result in the binary output format. The default is human-readable text, which is very slow. Not accepted by server-mode executables. --cache-file=FILE Store any reusable initialisation data in this file, possibly speeding up subsequent launches. -D, --debugging Perform possibly expensive internal correctness checks and verbose logging. Implies ``-L``. -e, --entry-point=FUN The entry point to run. Defaults to ``main``. Not accepted by server-mode executables. -L, --log Print various low-overhead logging information to stderr while running. -n, --no-print-result Do not print the program result. Not accepted by server-mode executables. -P, --profile Gather profiling data during execution. Mostly interesting in ``--server`` mode. Implied by ``-D``. --param=ASSIGNMENT Set a tuning parameter to the given value. ``ASSIGNMENT`` must be of the form ``NAME=INT`` Use ``--print-params`` to see which names are available. --print-params Print all tuning parameters that can be set with ``--param`` or ``--tuning``. -r, --runs=NUM Perform NUM runs of the program. With ``-t``, the runtime for each individual run will be printed. Additionally, a single leading warmup run will be performed (not counted). Only the final run will have its result written to stdout. Not accepted by server-mode executables. -t, --write-runtime-to=FILE Print the time taken to execute the program to the indicated file, an integral number of microseconds. Not accepted by server-mode executables. --tuning=FILE Read size=value assignments from the given file. SEE ALSO ======== :ref:`futhark-opencl(1)`, :ref:`futhark-cuda(1)`, :ref:`futhark-test(1)`