cabal-version: 2.4 name: futhark version: 0.25.22 synopsis: An optimising compiler for a functional, array-oriented language. description: 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 . 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. . <> category: Futhark homepage: https://futhark-lang.org bug-reports: https://github.com/diku-dk/futhark/issues maintainer: Troels Henriksen athas@sigkill.dk license: ISC license-file: LICENSE build-type: Simple extra-source-files: -- Cabal's recompilation tracking doesn't work when we use wildcards -- here, so for now we spell out every single file. rts/c/atomics.h rts/c/context.h rts/c/context_prototypes.h rts/c/backends/c.h rts/c/backends/cuda.h rts/c/backends/hip.h rts/c/backends/multicore.h rts/c/backends/opencl.h rts/c/lock.h rts/c/copy.h rts/c/timing.h rts/c/errors.h rts/c/free_list.h rts/c/event_list.h rts/c/gpu.h rts/c/gpu_prototypes.h rts/c/tuning.h rts/c/values.h rts/c/half.h rts/c/cache.h rts/c/ispc_util.h rts/c/scalar.h rts/c/scalar_f16.h rts/c/scheduler.h rts/c/uniform.h rts/c/util.h rts/c/server.h rts/cuda/prelude.cu rts/futhark-doc/style.css rts/javascript/server.js rts/javascript/values.js rts/javascript/wrapperclasses.js rts/opencl/copy.cl rts/opencl/prelude.cl rts/opencl/transpose.cl rts/python/tuning.py rts/python/panic.py rts/python/memory.py rts/python/server.py rts/python/values.py rts/python/opencl.py rts/python/scalar.py prelude/functional.fut prelude/math.fut prelude/soacs.fut prelude/zip.fut prelude/ad.fut prelude/array.fut prelude/prelude.fut -- Just enough of the docs to build the manpages. docs/**/*.rst docs/Makefile docs/conf.py docs/requirements.txt extra-doc-files: assets/*.png CHANGELOG.md README.md source-repository head type: git location: https://github.com/diku-dk/futhark common common ghc-options: -Wall -Wcompat -Wno-incomplete-uni-patterns -Wno-x-partial -Wno-unrecognised-warning-flags -Wredundant-constraints -Wincomplete-record-updates -Wmissing-export-lists -Wunused-packages default-language: GHC2021 default-extensions: OverloadedStrings library import: common hs-source-dirs: src exposed-modules: Futhark Futhark.Actions Futhark.AD.Derivatives Futhark.AD.Fwd Futhark.AD.Rev Futhark.AD.Rev.Loop Futhark.AD.Rev.Hist Futhark.AD.Rev.Map Futhark.AD.Rev.Monad Futhark.AD.Rev.Reduce Futhark.AD.Rev.Scan Futhark.AD.Rev.Scatter Futhark.AD.Rev.SOAC Futhark.Analysis.AccessPattern Futhark.Analysis.AlgSimplify Futhark.Analysis.Alias Futhark.Analysis.CallGraph Futhark.Analysis.DataDependencies Futhark.Analysis.HORep.MapNest Futhark.Analysis.HORep.SOAC Futhark.Analysis.Interference Futhark.Analysis.LastUse Futhark.Analysis.MemAlias Futhark.Analysis.Metrics Futhark.Analysis.Metrics.Type Futhark.Analysis.PrimExp Futhark.Analysis.PrimExp.Convert Futhark.Analysis.PrimExp.Parse Futhark.Analysis.PrimExp.Simplify Futhark.Analysis.PrimExp.Table Futhark.Analysis.SymbolTable Futhark.Analysis.UsageTable Futhark.Bench Futhark.Builder Futhark.Builder.Class Futhark.CLI.Autotune Futhark.CLI.Bench Futhark.CLI.C Futhark.CLI.CUDA Futhark.CLI.Check Futhark.CLI.Benchcmp Futhark.CLI.Datacmp Futhark.CLI.Dataset Futhark.CLI.Defs Futhark.CLI.Dev Futhark.CLI.Doc Futhark.CLI.Eval Futhark.CLI.HIP Futhark.CLI.Literate Futhark.CLI.LSP Futhark.CLI.Main Futhark.CLI.Misc Futhark.CLI.Multicore Futhark.CLI.MulticoreISPC Futhark.CLI.MulticoreWASM Futhark.CLI.OpenCL Futhark.CLI.Pkg Futhark.CLI.Profile Futhark.CLI.PyOpenCL Futhark.CLI.Python Futhark.CLI.Query Futhark.CLI.REPL Futhark.CLI.Run Futhark.CLI.Script Futhark.CLI.Test Futhark.CLI.WASM Futhark.CodeGen.Backends.CCUDA Futhark.CodeGen.Backends.COpenCL Futhark.CodeGen.Backends.HIP Futhark.CodeGen.Backends.GenericC Futhark.CodeGen.Backends.GenericC.CLI Futhark.CodeGen.Backends.GenericC.Code Futhark.CodeGen.Backends.GenericC.EntryPoints Futhark.CodeGen.Backends.GenericC.Fun Futhark.CodeGen.Backends.GenericC.Monad Futhark.CodeGen.Backends.GenericC.Options Futhark.CodeGen.Backends.GenericC.Pretty Futhark.CodeGen.Backends.GenericC.Server Futhark.CodeGen.Backends.GenericC.Types Futhark.CodeGen.Backends.GenericPython Futhark.CodeGen.Backends.GenericPython.AST Futhark.CodeGen.Backends.GenericPython.Options Futhark.CodeGen.Backends.GenericWASM Futhark.CodeGen.Backends.GPU Futhark.CodeGen.Backends.MulticoreC Futhark.CodeGen.Backends.MulticoreC.Boilerplate Futhark.CodeGen.Backends.MulticoreISPC Futhark.CodeGen.Backends.MulticoreWASM Futhark.CodeGen.Backends.PyOpenCL Futhark.CodeGen.Backends.PyOpenCL.Boilerplate Futhark.CodeGen.Backends.SequentialC Futhark.CodeGen.Backends.SequentialC.Boilerplate Futhark.CodeGen.Backends.SequentialPython Futhark.CodeGen.Backends.SequentialWASM Futhark.CodeGen.Backends.SimpleRep Futhark.CodeGen.RTS.C Futhark.CodeGen.RTS.CUDA Futhark.CodeGen.RTS.OpenCL Futhark.CodeGen.RTS.Python Futhark.CodeGen.RTS.JavaScript Futhark.CodeGen.ImpCode Futhark.CodeGen.ImpCode.GPU Futhark.CodeGen.ImpCode.Multicore Futhark.CodeGen.ImpCode.OpenCL Futhark.CodeGen.ImpCode.Sequential Futhark.CodeGen.ImpGen Futhark.CodeGen.ImpGen.CUDA Futhark.CodeGen.ImpGen.GPU Futhark.CodeGen.ImpGen.GPU.Base Futhark.CodeGen.ImpGen.GPU.Block Futhark.CodeGen.ImpGen.GPU.SegHist Futhark.CodeGen.ImpGen.GPU.SegMap Futhark.CodeGen.ImpGen.GPU.SegRed Futhark.CodeGen.ImpGen.GPU.SegScan Futhark.CodeGen.ImpGen.GPU.SegScan.SinglePass Futhark.CodeGen.ImpGen.GPU.SegScan.TwoPass Futhark.CodeGen.ImpGen.GPU.ToOpenCL Futhark.CodeGen.ImpGen.HIP Futhark.CodeGen.ImpGen.Multicore Futhark.CodeGen.ImpGen.Multicore.Base Futhark.CodeGen.ImpGen.Multicore.SegHist Futhark.CodeGen.ImpGen.Multicore.SegMap Futhark.CodeGen.ImpGen.Multicore.SegRed Futhark.CodeGen.ImpGen.Multicore.SegScan Futhark.CodeGen.ImpGen.OpenCL Futhark.CodeGen.ImpGen.Sequential Futhark.CodeGen.OpenCL.Heuristics Futhark.Compiler Futhark.Compiler.CLI Futhark.Compiler.Config Futhark.Compiler.Program Futhark.Construct Futhark.Doc.Generator Futhark.Error Futhark.FreshNames Futhark.Format Futhark.IR Futhark.IR.Aliases Futhark.IR.GPU Futhark.IR.GPU.Op Futhark.IR.GPU.Simplify Futhark.IR.GPU.Sizes Futhark.IR.GPUMem Futhark.IR.MC Futhark.IR.MC.Op Futhark.IR.MCMem Futhark.IR.Mem Futhark.IR.Mem.Interval Futhark.IR.Mem.LMAD Futhark.IR.Mem.Simplify Futhark.IR.Parse Futhark.IR.Pretty Futhark.IR.Prop Futhark.IR.Prop.Aliases Futhark.IR.Prop.Constants Futhark.IR.Prop.Names Futhark.IR.Prop.Pat Futhark.IR.Prop.Rearrange Futhark.IR.Prop.Reshape Futhark.IR.Prop.Scope Futhark.IR.Prop.TypeOf Futhark.IR.Prop.Types Futhark.IR.Rep Futhark.IR.Rephrase Futhark.IR.RetType Futhark.IR.SOACS Futhark.IR.SOACS.SOAC Futhark.IR.SOACS.Simplify Futhark.IR.SegOp Futhark.IR.Seq Futhark.IR.SeqMem Futhark.IR.Syntax Futhark.IR.Syntax.Core Futhark.IR.Traversals Futhark.IR.TypeCheck Futhark.Internalise Futhark.Internalise.AccurateSizes Futhark.Internalise.ApplyTypeAbbrs Futhark.Internalise.Bindings Futhark.Internalise.Defunctionalise Futhark.Internalise.Defunctorise Futhark.Internalise.Entry Futhark.Internalise.Exps Futhark.Internalise.FullNormalise Futhark.Internalise.Lambdas Futhark.Internalise.LiftLambdas Futhark.Internalise.Monad Futhark.Internalise.Monomorphise Futhark.Internalise.ReplaceRecords Futhark.Internalise.TypesValues Futhark.LSP.Compile Futhark.LSP.Diagnostic Futhark.LSP.Handlers Futhark.LSP.Tool Futhark.LSP.State Futhark.LSP.PositionMapping Futhark.MonadFreshNames Futhark.Optimise.BlkRegTiling Futhark.Optimise.CSE Futhark.Optimise.DoubleBuffer Futhark.Optimise.EntryPointMem Futhark.Optimise.Fusion Futhark.Optimise.Fusion.Composing Futhark.Optimise.Fusion.GraphRep Futhark.Optimise.Fusion.TryFusion Futhark.Optimise.GenRedOpt Futhark.Optimise.HistAccs Futhark.Optimise.InliningDeadFun Futhark.Optimise.MemoryBlockMerging Futhark.Optimise.MemoryBlockMerging.GreedyColoring Futhark.Optimise.ArrayShortCircuiting Futhark.Optimise.ArrayShortCircuiting.ArrayCoalescing Futhark.Optimise.ArrayShortCircuiting.DataStructs Futhark.Optimise.ArrayShortCircuiting.MemRefAggreg Futhark.Optimise.ArrayShortCircuiting.TopdownAnalysis Futhark.Optimise.MergeGPUBodies Futhark.Optimise.ArrayLayout Futhark.Optimise.ArrayLayout.Transform Futhark.Optimise.ArrayLayout.Layout Futhark.Optimise.ReduceDeviceSyncs Futhark.Optimise.ReduceDeviceSyncs.MigrationTable Futhark.Optimise.ReduceDeviceSyncs.MigrationTable.Graph Futhark.Optimise.Simplify Futhark.Optimise.Simplify.Engine Futhark.Optimise.Simplify.Rep Futhark.Optimise.Simplify.Rule Futhark.Optimise.Simplify.Rules Futhark.Optimise.Simplify.Rules.BasicOp Futhark.Optimise.Simplify.Rules.ClosedForm Futhark.Optimise.Simplify.Rules.Index Futhark.Optimise.Simplify.Rules.Loop Futhark.Optimise.Simplify.Rules.Match Futhark.Optimise.Simplify.Rules.Simple Futhark.Optimise.Sink Futhark.Optimise.TileLoops Futhark.Optimise.TileLoops.Shared Futhark.Optimise.Unstream Futhark.Pass Futhark.Pass.AD Futhark.Pass.ExpandAllocations Futhark.Pass.ExplicitAllocations Futhark.Pass.ExplicitAllocations.GPU Futhark.Pass.ExplicitAllocations.MC Futhark.Pass.ExplicitAllocations.SegOp Futhark.Pass.ExplicitAllocations.Seq Futhark.Pass.ExtractKernels Futhark.Pass.ExtractKernels.BlockedKernel Futhark.Pass.ExtractKernels.DistributeNests Futhark.Pass.ExtractKernels.Distribution Futhark.Pass.ExtractKernels.ISRWIM Futhark.Pass.ExtractKernels.Interchange Futhark.Pass.ExtractKernels.Intrablock Futhark.Pass.ExtractKernels.StreamKernel Futhark.Pass.ExtractKernels.ToGPU Futhark.Pass.ExtractMulticore Futhark.Pass.FirstOrderTransform Futhark.Pass.LiftAllocations Futhark.Pass.LowerAllocations Futhark.Pass.Simplify Futhark.Passes Futhark.Pipeline Futhark.Pkg.Info Futhark.Pkg.Solve Futhark.Pkg.Types Futhark.Profile Futhark.Script Futhark.Test Futhark.Test.Spec Futhark.Test.Values Futhark.Tools Futhark.Transform.CopyPropagate Futhark.Transform.FirstOrderTransform Futhark.Transform.Rename Futhark.Transform.Substitute Futhark.Util Futhark.Util.CMath Futhark.Util.IntegralExp Futhark.Util.Loc Futhark.Util.Log Futhark.Util.Options Futhark.Util.Pretty Futhark.Util.ProgressBar Futhark.Util.Table Futhark.Version Language.Futhark Language.Futhark.Core Language.Futhark.Interpreter Language.Futhark.Interpreter.Values Language.Futhark.FreeVars Language.Futhark.Parser Language.Futhark.Parser.Monad Language.Futhark.Parser.Lexer.Tokens Language.Futhark.Parser.Lexer.Wrapper Language.Futhark.Prelude Language.Futhark.Pretty Language.Futhark.Primitive Language.Futhark.Primitive.Parse Language.Futhark.Prop Language.Futhark.Query Language.Futhark.Semantic Language.Futhark.Syntax Language.Futhark.Traversals Language.Futhark.Tuple Language.Futhark.TypeChecker Language.Futhark.TypeChecker.Consumption Language.Futhark.TypeChecker.Names Language.Futhark.TypeChecker.Match Language.Futhark.TypeChecker.Modules Language.Futhark.TypeChecker.Monad Language.Futhark.TypeChecker.Terms Language.Futhark.TypeChecker.Terms.Loop Language.Futhark.TypeChecker.Terms.Monad Language.Futhark.TypeChecker.Terms.Pat Language.Futhark.TypeChecker.Types Language.Futhark.TypeChecker.Unify Language.Futhark.Warnings other-modules: Language.Futhark.Parser.Parser Language.Futhark.Parser.Lexer Paths_futhark autogen-modules: Paths_futhark build-tool-depends: alex:alex , happy:happy build-depends: 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 , bytestring >=0.11.2 , bytestring-to-vector >=0.3.0.1 , bmp >=1.2.6.3 , 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-data >= 1.1.0.0 , futhark-server >= 1.2.2.1 , futhark-manifest >= 1.5.0.0 , 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 , cmark-gfm >=0.2.1 , megaparsec >=9.0.0 , mtl >=2.2.1 , neat-interpolation >=0.3 , parallel >=3.2.1.0 , random >= 1.2.0 , process-extras >=0.7.2 , regex-tdfa >=1.2 , srcloc >=0.4 , 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 , statistics , mwc-random , prettyprinter >= 1.7 , prettyprinter-ansi-terminal >= 1.1 executable futhark import: common main-is: src/main.hs ghc-options: -threaded -rtsopts "-with-rtsopts=-maxN16 -qg1 -A16M" build-depends: base, futhark test-suite unit import: common type: exitcode-stdio-1.0 main-is: futhark_tests.hs hs-source-dirs: unittests other-modules: Futhark.AD.DerivativesTests Futhark.Analysis.AlgSimplifyTests Futhark.Analysis.PrimExp.TableTests Futhark.BenchTests Futhark.IR.GPUTests Futhark.IR.MCTests Futhark.IR.Mem.IntervalTests Futhark.IR.Mem.IxFun.Alg Futhark.IR.Mem.IxFunTests Futhark.IR.Mem.IxFunWrapper Futhark.IR.Prop.RearrangeTests Futhark.IR.Prop.ReshapeTests Futhark.IR.PropTests Futhark.IR.Syntax.CoreTests Futhark.IR.SyntaxTests Futhark.Internalise.TypesValuesTests Futhark.Optimise.MemoryBlockMerging.GreedyColoringTests Futhark.Optimise.ArrayLayout.AnalyseTests Futhark.Optimise.ArrayLayout.LayoutTests Futhark.Optimise.ArrayLayoutTests Futhark.Pkg.SolveTests Futhark.ProfileTests Language.Futhark.CoreTests Language.Futhark.PrimitiveTests Language.Futhark.SemanticTests Language.Futhark.SyntaxTests Language.Futhark.TypeChecker.TypesTests Language.Futhark.TypeCheckerTests Paths_futhark build-depends: QuickCheck >=2.8 , mtl >=2.2.1 , base , containers , free , futhark , megaparsec , tasty , tasty-hunit , tasty-quickcheck , text