cabal-version: 2.4 name: futhark version: 0.21.13 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/lock.h rts/c/timing.h rts/c/errors.h rts/c/free_list.h rts/c/tuning.h rts/c/values.h rts/c/half.h rts/c/opencl.h rts/c/cuda.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/futhark-doc/style.css rts/javascript/server.js rts/javascript/values.js rts/javascript/wrapperclasses.js 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 source-repository head type: git location: https://github.com/diku-dk/futhark common common ghc-options: -Wall -Wcompat -Wno-incomplete-uni-patterns -Wredundant-constraints -Wincomplete-record-updates -Wmissing-export-lists -Wunused-packages default-language: Haskell2010 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.Map Futhark.AD.Rev.Monad Futhark.AD.Rev.Reduce Futhark.AD.Rev.Scan Futhark.AD.Rev.Scatter Futhark.AD.Rev.SOAC 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.Generalize Futhark.Analysis.PrimExp.Parse Futhark.Analysis.PrimExp.Simplify Futhark.Analysis.Rephrase 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.Datacmp Futhark.CLI.Dataset Futhark.CLI.Defs Futhark.CLI.Dev Futhark.CLI.Doc 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.PyOpenCL Futhark.CLI.Python Futhark.CLI.Query Futhark.CLI.REPL Futhark.CLI.Run Futhark.CLI.Test Futhark.CLI.WASM Futhark.CodeGen.Backends.CCUDA Futhark.CodeGen.Backends.CCUDA.Boilerplate Futhark.CodeGen.Backends.COpenCL Futhark.CodeGen.Backends.COpenCL.Boilerplate Futhark.CodeGen.Backends.GenericC Futhark.CodeGen.Backends.GenericC.CLI Futhark.CodeGen.Backends.GenericC.Options Futhark.CodeGen.Backends.GenericC.Server Futhark.CodeGen.Backends.GenericPython Futhark.CodeGen.Backends.GenericPython.AST Futhark.CodeGen.Backends.GenericPython.Options Futhark.CodeGen.Backends.GenericWASM Futhark.CodeGen.Backends.MulticoreC 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.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.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.GPU.Transpose 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.ImpGen.Transpose Futhark.CodeGen.OpenCL.Heuristics Futhark.CodeGen.SetDefaultSpace Futhark.Compiler Futhark.Compiler.CLI Futhark.Compiler.Config Futhark.Compiler.Program Futhark.Construct Futhark.Doc.Generator Futhark.Error Futhark.FreshNames 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.IxFun 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.Patterns 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.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.Bindings Futhark.Internalise.Defunctionalise Futhark.Internalise.Defunctorise Futhark.Internalise.Entry Futhark.Internalise.Exps Futhark.Internalise.Lambdas Futhark.Internalise.LiftLambdas Futhark.Internalise.Monad Futhark.Internalise.Monomorphise 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.Fusion Futhark.Optimise.Fusion.Composing Futhark.Optimise.Fusion.GraphRep Futhark.Optimise.Fusion.TryFusion Futhark.Optimise.GenRedOpt Futhark.Optimise.HistAccs Futhark.Optimise.InPlaceLowering Futhark.Optimise.InPlaceLowering.LowerIntoStm Futhark.Optimise.InPlaceLowering.SubstituteIndices Futhark.Optimise.InliningDeadFun Futhark.Optimise.MemoryBlockMerging Futhark.Optimise.MemoryBlockMerging.GreedyColoring Futhark.Optimise.MergeGPUBodies 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.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.Intragroup Futhark.Pass.ExtractKernels.StreamKernel Futhark.Pass.ExtractKernels.ToGPU Futhark.Pass.ExtractMulticore Futhark.Pass.FirstOrderTransform Futhark.Pass.KernelBabysitting Futhark.Pass.Simplify Futhark.Passes Futhark.Pipeline Futhark.Pkg.Info Futhark.Pkg.Solve Futhark.Pkg.Types 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.Console 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.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.Match Language.Futhark.TypeChecker.Modules Language.Futhark.TypeChecker.Monad Language.Futhark.TypeChecker.Terms Language.Futhark.TypeChecker.Terms.DoLoop 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.13 && <5 , base16-bytestring , binary >=0.8.3 , blaze-html >=0.9.0.1 , bytestring >=0.10.8 , 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 >=4.12.4 , futhark-data >= 1.1.0.0 , futhark-server >= 1.2.1.0 , futhark-manifest >= 1.1.0.0 , githash >=0.1.6.1 , half >= 0.3 , haskeline , language-c-quote >= 0.12 , lens , lsp == 1.5.* , 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 >=1.4.3.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 >=5.0.0 , zip-archive >=0.3.1.1 , zlib >=0.6.1.2 , statistics , mwc-random executable futhark import: common main-is: src/main.hs ghc-options: -threaded -rtsopts "-with-rtsopts=-N -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.BenchTests Futhark.Pkg.SolveTests Futhark.IR.Prop.RearrangeTests Futhark.IR.Prop.ReshapeTests Futhark.IR.PropTests Futhark.IR.Syntax.CoreTests Futhark.IR.SyntaxTests Futhark.IR.Mem.IxFun.Alg Futhark.IR.Mem.IxFunTests Futhark.IR.Mem.IxFunWrapper Language.Futhark.CoreTests Language.Futhark.PrimitiveTests Language.Futhark.SyntaxTests Language.Futhark.TypeCheckerTests Language.Futhark.TypeChecker.TypesTests Futhark.Optimise.MemoryBlockMerging.GreedyColoringTests Paths_futhark build-depends: QuickCheck >=2.8 , base , containers , futhark , megaparsec , tasty , tasty-hunit , tasty-quickcheck , text