futhark-0.25.6: docs/man/futhark-c.rst
.. role:: ref(emphasis)
.. _futhark-c(1):
=========
futhark-c
=========
SYNOPSIS
========
futhark c [options...] <program.fut>
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)`