halide-haskell-0.0.1.0: halide-haskell.cabal
cabal-version: 3.0
name: halide-haskell
version: 0.0.1.0
synopsis: Haskell bindings to Halide
description:
Halide is a programming language designed to make it easier to write
high-performance image and array processing code on modern machines. Rather
than being a standalone programming language, Halide is embedded in C++. This
means you write C++ code that builds an in-memory representation of a Halide
pipeline using Halide's C++ API. You can then compile this representation to
an object file, or JIT-compile it and run it in the same process.
This package provides Haskell bindings that allow to write Halide embedded in
Haskell without C++.
The best way to learn Halide is to have a look at the
[tutorials](https://github.com/twesterhout/halide-haskell/tree/master/tutorials).
Reference documentation is provided by the haddocks of the 'Language.Halide'
module.
homepage: https://github.com/twesterhout/halide-haskell
bug-reports: https://github.com/twesterhout/halide-haskell/issues
license: BSD-3-Clause
license-file: LICENSE
author: Tom Westerhout
maintainer:
Tom Westerhout <14264576+twesterhout@users.noreply.github.com>
category: Language
copyright: 2022-2023 Tom Westerhout
build-type: Simple
extra-doc-files:
CHANGELOG.md
README.md
tested-with: GHC ==9.2.4 || ==9.2.5 || ==9.4.4
source-repository head
type: git
location: https://github.com/twesterhout/halide-haskell.git
common common-options
build-depends: base >=4.16.0.0 && <5
ghc-options:
-W -Wall -Wcompat -Widentities -Wincomplete-uni-patterns
-Wincomplete-record-updates -Wredundant-constraints
-fhide-source-paths -Wmissing-export-lists -Wpartial-fields
-Wmissing-deriving-strategies
default-language: GHC2021
default-extensions:
DataKinds
DerivingStrategies
FunctionalDependencies
LambdaCase
OverloadedRecordDot
OverloadedStrings
TypeFamilies
ViewPatterns
library
import: common-options
hs-source-dirs: src
exposed-modules: Language.Halide
other-modules:
Language.Halide.Buffer
Language.Halide.Context
Language.Halide.Dimension
Language.Halide.Expr
Language.Halide.Func
Language.Halide.Kernel
Language.Halide.LoopLevel
Language.Halide.Prelude
Language.Halide.RedundantConstraints
Language.Halide.Schedule
Language.Halide.Target
Language.Halide.Trace
Language.Halide.Type
Language.Halide.Utils
build-depends:
, bytestring >=0.11.1.0 && <0.12
, constraints >=0.13.4 && <0.14
, filepath >=1.4.2.1 && <2.0
, inline-c >=0.9.1.6 && <0.10
, inline-c-cpp >=0.5.0.0 && <0.6
, primitive >=0.7.3.0 && <0.8
, template-haskell >=2.18.0.0 && <3.0
, temporary >=1.3 && <2.0
, text >=1.2.5.0 && <3.0
, vector >=0.12.3.0 && <0.13
if os(windows)
cpp-options: -DUSE_DLOPEN=0
build-depends: Win32
else
cpp-options: -DUSE_DLOPEN=1
build-depends: unix >=2.7.2.2 && <3.0
extra-libraries:
Halide
stdc++
executable halide-haskell
import: common-options
hs-source-dirs: example
main-is: Example01.hs
build-depends:
, halide-haskell
, vector
executable getting-started
import: common-options
hs-source-dirs: example
main-is: GettingStarted.hs
build-depends:
, halide-haskell
, vector
test-suite halide-haskell-test
import: common-options
type: exitcode-stdio-1.0
hs-source-dirs: test
main-is: Spec.hs
other-modules:
Language.Halide.BufferSpec
Language.Halide.ExprSpec
Language.Halide.FuncSpec
Language.Halide.KernelSpec
Language.Halide.LoopLevelSpec
Language.Halide.ScheduleSpec
Language.Halide.TargetSpec
Utils
build-depends:
, halide-haskell
, hspec
, HUnit
, inline-c
, inline-c-cpp
, QuickCheck
, text
, vector
ghc-options: -threaded -rtsopts -with-rtsopts=-N
-- build-tools-depends: hspec-discover:hspec-discover