packages feed

accelerate-llvm-native-1.2.0.0: accelerate-llvm-native.cabal

name:                   accelerate-llvm-native
version:                1.2.0.0
cabal-version:          >= 1.10
tested-with:            GHC >= 7.10
build-type:             Simple

synopsis:               Accelerate backend for multicore CPUs
description:
    This library implements a backend for the /Accelerate/ language which
    generates LLVM-IR targeting multicore CPUs. For further information, refer
    to the main <http://hackage.haskell.org/package/accelerate accelerate>
    package.
    .
    [/Dependencies/]
    .
    Haskell dependencies are available from Hackage. The following external
    libraries are alse required:
    .
      * <http://llvm.org LLVM>
    .
      * <http://sourceware.org/libffi/ libFFI>
    .
    [/Installing LLVM/]
    .
    /Homebrew/
    .
    Example using Homebrew on macOS:
    .
    > brew install llvm-hs/homebrew-llvm/llvm-6.0
    .
    /Debian & Ubuntu/
    .
    For Debian/Ubuntu based Linux distributions, the LLVM.org website provides
    binary distribution packages. Check <http://apt.llvm.org apt.llvm.org> for
    instructions for adding the correct package database for your OS version,
    and then:
    .
    > apt-get install llvm-6.0-dev
    .
    /Building from source/
    .
    If your OS does not have an appropriate LLVM distribution available, you can
    also build from source. Detailed build instructions are available on
    <http://releases.llvm.org/6.0.0/docs/CMake.html LLVM.org>. Make sure to
    include the cmake build options
    @-DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_LINK_LLVM_DYLIB=ON@ so that the @libLLVM@
    shared library will be built.
    .
    [/Installing accelerate-llvm/]
    .
    To use @accelerate-llvm@ it is important that the @llvm-hs@ package is
    installed against the @libLLVM@ shared library, rather than statically
    linked, so that we can use LLVM from GHCi and Template Haskell. This is the
    default configuration, but you can also enforce this explicitly by adding
    the following to your @stack.yaml@ file:
    .
    > flags:
    >   llvm-hs:
    >     shared-llvm: true
    .
    Or by specifying the @shared-llvm@ flag to cabal:
    .
    > cabal install llvm-hs -fshared-llvm
    .

license:                BSD3
license-file:           LICENSE
author:                 Trevor L. McDonell
maintainer:             Trevor L. McDonell <tmcdonell@cse.unsw.edu.au>
bug-reports:            https://github.com/AccelerateHS/accelerate/issues
category:               Compilers/Interpreters, Concurrency, Data, Parallelism

extra-source-files:
    CHANGELOG.md
    README.md


-- Build configuration
-- -------------------

Library
  exposed-modules:
    Data.Array.Accelerate.LLVM.Native
    Data.Array.Accelerate.LLVM.Native.Plugin
    Data.Array.Accelerate.LLVM.Native.Foreign
    Data.Array.Accelerate.LLVM.Native.Distribution.Simple

  other-modules:
    Data.Array.Accelerate.LLVM.Native.Array.Data
    Data.Array.Accelerate.LLVM.Native.Debug
    Data.Array.Accelerate.LLVM.Native.State
    Data.Array.Accelerate.LLVM.Native.Target

    Data.Array.Accelerate.LLVM.Native.CodeGen
    Data.Array.Accelerate.LLVM.Native.CodeGen.Base
    Data.Array.Accelerate.LLVM.Native.CodeGen.Fold
    Data.Array.Accelerate.LLVM.Native.CodeGen.FoldSeg
    Data.Array.Accelerate.LLVM.Native.CodeGen.Generate
    Data.Array.Accelerate.LLVM.Native.CodeGen.Loop
    Data.Array.Accelerate.LLVM.Native.CodeGen.Map
    Data.Array.Accelerate.LLVM.Native.CodeGen.Permute
    Data.Array.Accelerate.LLVM.Native.CodeGen.Scan

    Data.Array.Accelerate.LLVM.Native.Compile
    Data.Array.Accelerate.LLVM.Native.Compile.Cache
    Data.Array.Accelerate.LLVM.Native.Compile.Optimise

    Data.Array.Accelerate.LLVM.Native.Link
    Data.Array.Accelerate.LLVM.Native.Link.Cache
    Data.Array.Accelerate.LLVM.Native.Link.Object

    Data.Array.Accelerate.LLVM.Native.Embed

    Data.Array.Accelerate.LLVM.Native.Execute
    Data.Array.Accelerate.LLVM.Native.Execute.Async
    Data.Array.Accelerate.LLVM.Native.Execute.Environment
    Data.Array.Accelerate.LLVM.Native.Execute.LBS
    Data.Array.Accelerate.LLVM.Native.Execute.Marshal

    Data.Array.Accelerate.LLVM.Native.Plugin.Annotation
    Data.Array.Accelerate.LLVM.Native.Plugin.BuildInfo

    Data.Array.Accelerate.LLVM.Native.Distribution.Simple.Build
    Data.Array.Accelerate.LLVM.Native.Distribution.Simple.GHC
    Data.Array.Accelerate.LLVM.Native.Distribution.Simple.GHC.Internal

    Paths_accelerate_llvm_native

  build-depends:
          base                          >= 4.7 && < 4.12
        , accelerate                    == 1.2.*
        , accelerate-llvm               == 1.2.*
        , bytestring                    >= 0.10.4
        , Cabal                         >= 2.0
        , cereal                        >= 0.4
        , containers                    >= 0.5 && < 0.6
        , directory                     >= 1.0
        , dlist                         >= 0.6
        , filepath                      >= 1.0
        , ghc
        , hashable                      >= 1.0
        , libffi                        >= 0.1
        , llvm-hs                       >= 4.1 && < 6.1
        , llvm-hs-pure                  >= 4.1 && < 6.1
        , mtl                           >= 2.2.1
        , template-haskell
        , time                          >= 1.4
        , unique

  hs-source-dirs:
        src

  default-language:
        Haskell2010

  ghc-options:
        -O2
        -Wall
        -fwarn-tabs

  ghc-prof-options:
        -caf-all
        -auto-all

  if impl(ghc >= 8.0)
    ghc-options:
        -Wmissed-specialisations

  if os(darwin)
    other-modules:
      Data.Array.Accelerate.LLVM.Native.Link.MachO

    build-depends:
          bytestring                    >= 0.10
        , cereal                        >= 0.4
        , ghc-prim
        , unix                          >= 2.7
        , vector                        >= 0.11

    build-tools:
          c2hs                          >= 0.25

  if os(linux)
    other-modules:
      Data.Array.Accelerate.LLVM.Native.Link.ELF

    build-depends:
          bytestring                    >= 0.10
        , cereal                        >= 0.4
        , ghc-prim
        , unix                          >= 2.7
        , vector                        >= 0.11

    build-tools:
          c2hs                          >= 0.25

  if os(windows)
    other-modules:
      Data.Array.Accelerate.LLVM.Native.Link.COFF

    build-depends:
          bytestring                    >= 0.10


test-suite nofib-llvm-native
  type:                 exitcode-stdio-1.0
  hs-source-dirs:       test/nofib
  main-is:              Main.hs

  build-depends:
          base                          >= 4.7
        , accelerate
        , accelerate-llvm-native

  default-language:
        Haskell2010

  ghc-options:
        -Wall
        -O2
        -threaded
        -rtsopts
        -with-rtsopts=-A128M
        -with-rtsopts=-n4M


source-repository head
  type:                 git
  location:             https://github.com/AccelerateHS/accelerate-llvm.git

source-repository this
  type:                 git
  tag:                  1.2.0.0
  location:             https://github.com/AccelerateHS/accelerate-llvm.git

-- vim: nospell