futhark: An optimising compiler for a functional, array-oriented language.

[ futhark, library, program ] [ Propose Tags ]

Futhark is a small programming language designed to be compiled to efficient parallel code. It is a statically typed, data-parallel, and purely functional array language in the ML family, and comes with a heavily optimising ahead-of-time compiler that presently generates GPU code via CUDA and OpenCL, although the language itself is hardware-agnostic.

For more information, see the website at https://futhark-lang.org

For introductionary information about hacking on the Futhark compiler, see the hacking guide. Regarding the internal design of the compiler, the following modules make good starting points:

  • Futhark contains a basic architectural overview of the compiler.

  • Futhark.IR.Syntax explains the basic design of the intermediate representation (IR).

  • Futhark.Construct explains how to write code that manipulates and creates AST fragments.


[Skip to Readme]

Modules

[Index] [Quick Jump]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.7.3, 0.7.4, 0.8.1, 0.9.1, 0.10.1, 0.10.2, 0.11.1, 0.11.2, 0.12.1, 0.12.2, 0.12.3, 0.13.1, 0.13.2, 0.14.1, 0.15.1, 0.15.2, 0.15.3, 0.15.4, 0.15.5, 0.15.6, 0.15.7, 0.15.8, 0.16.1, 0.16.2, 0.16.3, 0.16.4, 0.17.1, 0.17.2, 0.17.3, 0.18.1, 0.18.2, 0.18.3, 0.18.4, 0.18.5, 0.18.6, 0.19.1, 0.19.2, 0.19.3, 0.19.4, 0.19.5, 0.19.6, 0.19.7, 0.20.1, 0.20.2, 0.20.3, 0.20.4, 0.20.5, 0.20.6, 0.20.7, 0.20.8, 0.21.1, 0.21.2, 0.21.3, 0.21.4, 0.21.5, 0.21.6, 0.21.7, 0.21.8, 0.21.9, 0.21.10, 0.21.11, 0.21.12, 0.21.13, 0.21.14, 0.21.15, 0.22.1, 0.22.2, 0.22.3, 0.22.4, 0.22.5, 0.22.6, 0.22.7, 0.23.1, 0.24.1, 0.24.2, 0.24.3, 0.25.1, 0.25.2, 0.25.3, 0.25.4, 0.25.5, 0.25.6, 0.25.7, 0.25.8, 0.25.9, 0.25.10, 0.25.11, 0.25.12, 0.25.13, 0.25.14, 0.25.15
Change log CHANGELOG.md
Dependencies aeson (>=2.0.0.0), ansi-terminal (>=0.6.3.1), array (>=0.4), base (>=4.15 && <5), base16-bytestring, binary (>=0.8.3), blaze-html (>=0.9.0.1), bmp (>=1.2.6.3), bytestring (>=0.11.2), bytestring-to-vector (>=0.3.0.1), cmark-gfm (>=0.2.1), co-log-core, containers (>=0.6.2.1), cryptohash-md5, Diff (>=0.4.1), directory (>=1.3.0.0), directory-tree (>=0.12.1), dlist (>=0.6.0.1), fgl, fgl-visualize, file-embed (>=0.0.14.0), filepath (>=1.4.1.1), free (>=5.1.10), futhark, futhark-data (>=1.1.0.0), futhark-manifest (>=1.4.0.0), futhark-server (>=1.2.2.1), githash (>=0.1.6.1), half (>=0.3), haskeline, language-c-quote (>=0.12), lens, lsp (>=2.2.0.0), lsp-types (>=2.0.1.0), mainland-pretty (>=0.7.1), megaparsec (>=9.0.0), mtl (>=2.2.1), mwc-random, neat-interpolation (>=0.3), parallel (>=3.2.1.0), prettyprinter (>=1.7), prettyprinter-ansi-terminal (>=1.1), process-extras (>=0.7.2), random (>=1.2.0), regex-tdfa (>=1.2), srcloc (>=0.4), statistics, template-haskell (>=2.11.1), temporary, terminal-size (>=0.3), text (>=1.2.2.2), time (>=1.6.0.1), transformers (>=0.3), vector (>=0.12), versions (>=6.0.0), zlib (>=0.7.0.0) [details]
License ISC
Author
Maintainer Troels Henriksen athas@sigkill.dk
Category Futhark
Home page https://futhark-lang.org
Bug tracker https://github.com/diku-dk/futhark/issues
Source repo head: git clone https://github.com/diku-dk/futhark
Uploaded by TroelsHenriksen at 2024-03-27T13:09:18Z
Distributions NixOS:0.25.15
Reverse Dependencies 1 direct, 0 indirect [details]
Executables futhark
Downloads 26482 total (301 in the last 30 days)
Rating 2.25 (votes: 2) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2024-03-27 [all 1 reports]

Readme for futhark-0.25.15

[back to package description]

The Futhark Programming Language

Join the chat at https://gitter.im/futhark-lang/LobbyCIDOI

Futhark is a purely functional data-parallel programming language in the ML family. It can be compiled to typically very efficient parallel code, running on either a CPU or GPU. The language is developed at DIKU at the University of Copenhagen, originally as part of the HIPERFIT centre. It is quite stable and suitable for practical programming.

For more information, see:

Packaging status

Hacking

Issues tagged with good first issue do not require deep knowledge of the code base.

For contributing code, see the hacking instructions.