packages feed

futhark-0.12.1: docs/man/futhark-csharp.rst

.. role:: ref(emphasis)

.. _futhark-csharp(1):

==============
futhark-csharp
==============

SYNOPSIS
========

futhark csharp [options...] infile

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

``futhark csharp`` translates a Futhark program to sequential C# code,
and either compiles that C# code with the Roslyn C# Compiler ``csc``
to an executable binary program, or produces a ``.dll`` file that can
be linked with other code..  The standard Futhark optimisation
pipeline is used, and ``csc`` is invoked with ``-lib:$MONO_PATH``,
``-r:Mono.Options.dll``, and ``/unsafe``.

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.

--library
  Generate a library instead of an executable.  Appends ``.dll``
  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.

-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.

REQUIREMENTS
============
``futhark csharp`` uses the Mono implementation of the .NET framework.
To compile and execute the compiled binaries/libraries, you must have the ``MONO_PATH`` environment variable defined. ``MONO_PATH`` must be set to a directory containing the ``Mono.Options`` dll.

Mono.Options is available on https://www.nuget.org/packages/Mono.Options/5.3.0.1

SEE ALSO
========

:ref:`futhark-csopencl(1)`