packages feed

mpi-hs-store-0.1.0.0: package.yaml

name: mpi-hs-store
version: '0.1.0.0'
github: "eschnett/mpi-hs-store"
license: Apache-2.0
author: "Erik Schnetter <schnetter@gmail.com>"
maintainer: "Erik Schnetter <schnetter@gmail.com>"
category: Distributed Computing
synopsis: MPI bindings for Haskell
description: |
  MPI (the [Message Passinag Interface](https://www.mpi-forum.org)) is
  a widely used standard for distributed-memory programming on HPC
  (High Performance Computing) systems. MPI allows exchanging data
  (_messages_) between programs running in parallel. There are several
  high-quality open source MPI implementations (e.g. MPICH, MVAPICH,
  OpenMPI) as well as a variety of closed-source implementations.
  These libraries can typically make use of high-bandwidth low-latency
  communication hardware such as InfiniBand.
  
  This library @mpi-hs@ provides Haskell bindings for MPI. It is based
  on ideas taken from
  [haskell-mpi](https://github.com/bjpop/haskell-mpi),
  [Boost.MPI](https://www.boost.org/doc/libs/1_64_0/doc/html/mpi.html)
  for C++, and [MPI for
  Python](https://mpi4py.readthedocs.io/en/stable/).
  
  @mpi-hs@ provides two API levels: A low-level API gives rather
  direct access to the actual MPI API, apart from certain "reasonable"
  mappings from C to Haskell (e.g. output arguments that are in C
  stored via a pointer are in Haskell regular return values). A
  high-level API simplifies exchanging arbitrary values that can be
  serialized.

  Note that the automated builds on
  [Hackage](http://hackage.haskell.org) will currently always fail
  since no system MPI library is present there. However, builds on
  [Stackage](https://www.stackage.org) should succeed -- if not, there
  is an error in this package.

extra-source-files:
  - LICENSE
  - README.md
  - package.yaml
  - stack.yaml
  - stack.yaml.lock

ghc-options:
  - -Wall

library:
  dependencies:
    - base >=4 && <5            # tested with 4.11, 4.12, 4.13
    - store
    - bytestring
    - monad-loops
    - mpi-hs >=0.7.0.0
  source-dirs: lib

executables:
  version:
    source-dirs: src
    main: version.hs
    dependencies:
      - base
      - mpi-hs
    ghc-options:
      - -rtsopts
      - -threaded
      - -with-rtsopts=-N
  example1:
    source-dirs: src
    main: example1.hs
    dependencies:
      - base
      - mpi-hs
    ghc-options:
      - -rtsopts
      - -threaded
      - -with-rtsopts=-N
  example2:
    source-dirs: src
    main: example2.hs
    dependencies:
      - base
      - mpi-hs-store
    ghc-options:
      - -rtsopts
      - -threaded
      - -with-rtsopts=-N

tests:
  mpi-test-store:
    source-dirs: tests/store
    main: Main.hs
    dependencies:
      - base
      - mpi-hs-store
      # - tasty
      # - tasty-hunit
      # - tasty-hspec
      # - unix
    ghc-options:
      - -rtsopts
      - -threaded
      - -with-rtsopts=-N