2014-06-03 19:10:54 +04:00
|
|
|
name: haxl
|
2015-10-09 18:27:17 +03:00
|
|
|
version: 0.3.0.0
|
2014-06-03 19:10:54 +04:00
|
|
|
synopsis: A Haskell library for efficient, concurrent,
|
|
|
|
and concise data access.
|
|
|
|
homepage: https://github.com/facebook/Haxl
|
|
|
|
bug-reports: https://github.com/facebook/Haxl/issues
|
|
|
|
license: BSD3
|
|
|
|
license-file: LICENSE
|
|
|
|
author: Facebook, Inc.
|
|
|
|
maintainer: The Haxl Team <haxl-team@fb.com>
|
2015-03-11 20:06:07 +03:00
|
|
|
copyright: Copyright (c) 2014-present, Facebook, Inc.
|
2014-06-03 19:10:54 +04:00
|
|
|
category: Concurrency
|
|
|
|
build-type: Simple
|
|
|
|
stability: alpha
|
|
|
|
cabal-version: >= 1.10
|
|
|
|
|
|
|
|
description:
|
|
|
|
Haxl is a library and EDSL for efficient scheduling of concurrent data
|
|
|
|
accesses with a concise applicative API.
|
2015-10-09 18:27:17 +03:00
|
|
|
.
|
|
|
|
To use Haxl, you need to implement one or more /data sources/, which
|
|
|
|
provide the means for accessing remote data or other I/O that you
|
|
|
|
want to perform using Haxl.
|
|
|
|
.
|
|
|
|
Haxl provides two top-level modules:
|
|
|
|
.
|
|
|
|
* /Data-source implementations/ import "Haxl.Core",
|
|
|
|
.
|
|
|
|
* /Client code/ import your data sources and "Haxl.Prelude", or some
|
|
|
|
other client-level API that you provide.
|
2014-06-03 19:10:54 +04:00
|
|
|
|
|
|
|
extra-source-files:
|
|
|
|
readme.md
|
|
|
|
PATENTS
|
|
|
|
tests/LoadCache.txt
|
2015-10-09 18:27:17 +03:00
|
|
|
changelog.md
|
2014-06-03 19:10:54 +04:00
|
|
|
|
|
|
|
library
|
|
|
|
|
|
|
|
build-depends:
|
2015-10-20 16:27:38 +03:00
|
|
|
HUnit >= 1.2 && < 1.4,
|
|
|
|
aeson >= 0.6 && < 0.11,
|
2014-06-03 19:10:54 +04:00
|
|
|
base == 4.*,
|
2015-04-10 09:01:26 +03:00
|
|
|
bytestring >= 0.9 && < 0.11,
|
2014-06-03 19:10:54 +04:00
|
|
|
containers == 0.5.*,
|
2015-07-17 15:57:11 +03:00
|
|
|
deepseq,
|
2015-04-10 09:01:26 +03:00
|
|
|
directory >= 1.1 && < 1.3,
|
2015-10-29 19:18:59 +03:00
|
|
|
exceptions >=0.8 && <0.9,
|
2015-04-10 09:01:26 +03:00
|
|
|
filepath >= 1.3 && < 1.5,
|
2014-06-03 19:10:54 +04:00
|
|
|
hashable == 1.2.*,
|
|
|
|
pretty == 1.1.*,
|
2014-11-22 14:50:44 +03:00
|
|
|
text >= 1.1.0.1 && < 1.3,
|
2015-04-10 09:01:26 +03:00
|
|
|
time >= 1.4 && < 1.6,
|
2014-06-03 19:10:54 +04:00
|
|
|
unordered-containers == 0.2.*,
|
2015-10-20 16:27:38 +03:00
|
|
|
vector >= 0.10 && <0.12
|
2014-06-03 19:10:54 +04:00
|
|
|
|
|
|
|
exposed-modules:
|
|
|
|
Haxl.Core,
|
|
|
|
Haxl.Core.DataCache,
|
|
|
|
Haxl.Core.Exception,
|
|
|
|
Haxl.Core.Monad,
|
|
|
|
Haxl.Core.RequestStore,
|
|
|
|
Haxl.Core.StateStore,
|
|
|
|
Haxl.Core.Show1,
|
|
|
|
Haxl.Core.Types,
|
2015-10-07 10:59:28 +03:00
|
|
|
Haxl.Core.Memo,
|
2014-06-03 19:10:54 +04:00
|
|
|
Haxl.Prelude
|
|
|
|
|
|
|
|
other-modules:
|
|
|
|
Haxl.Core.Util
|
|
|
|
|
|
|
|
default-language: Haskell2010
|
|
|
|
|
|
|
|
ghc-options:
|
|
|
|
-Wall
|
|
|
|
-fno-warn-name-shadowing
|
|
|
|
|
|
|
|
|
|
|
|
test-suite test
|
|
|
|
|
|
|
|
build-depends:
|
|
|
|
HUnit,
|
|
|
|
aeson,
|
|
|
|
base == 4.*,
|
|
|
|
bytestring,
|
|
|
|
containers,
|
|
|
|
hashable,
|
|
|
|
haxl,
|
|
|
|
text,
|
|
|
|
unordered-containers
|
|
|
|
|
|
|
|
ghc-options:
|
|
|
|
-Wall
|
|
|
|
-fno-warn-name-shadowing
|
|
|
|
-fno-warn-missing-signatures
|
|
|
|
|
|
|
|
hs-source-dirs:
|
|
|
|
tests
|
|
|
|
|
|
|
|
main-is:
|
|
|
|
Main.hs
|
|
|
|
|
|
|
|
other-modules:
|
|
|
|
BatchTests
|
|
|
|
CoreTests
|
|
|
|
DataCacheTest
|
|
|
|
ExampleDataSource
|
|
|
|
LoadCache
|
|
|
|
MockTAO
|
|
|
|
TestExampleDataSource
|
|
|
|
TestTypes
|
2015-05-01 22:23:11 +03:00
|
|
|
TestUtils
|
2014-06-03 19:10:54 +04:00
|
|
|
|
|
|
|
type:
|
|
|
|
exitcode-stdio-1.0
|
2014-11-22 14:50:44 +03:00
|
|
|
|
|
|
|
default-language: Haskell2010
|
Add a benchmark for basic Haxl monad patterns
Summary:
I'm using this to test variants of the monad. In particular, the
current monad displays O(n^2) performance with the seql version of
this benchmark. This is a well-studied problem, see for example
"Reflection without remorse: revealing a hidden sequence to speed up
monadic reflection" (van der Ploeg / Kiselyov, Haskell '14)
Test Plan:
Built it and ran it a few times
unit tests still work
Reviewed By: bnitka@fb.com
Subscribers: ldbrandy, kjm, jlengyel, memo, watashi, smarlow, akr, bnitka, jcoens
FB internal diff: D2419419
Signature: t1:2419419:1441640727:9f5f82212c829fcbf2e8c063d4dbd0db495b0ba2
2015-09-07 19:00:27 +03:00
|
|
|
|
|
|
|
executable monadbench
|
|
|
|
default-language:
|
|
|
|
Haskell2010
|
|
|
|
hs-source-dirs:
|
|
|
|
tests
|
|
|
|
build-depends:
|
|
|
|
base,
|
|
|
|
haxl,
|
|
|
|
hashable,
|
|
|
|
time
|
|
|
|
main-is:
|
|
|
|
MonadBench.hs
|
|
|
|
other-modules:
|
|
|
|
ExampleDataSource
|
|
|
|
ghc-options:
|
|
|
|
-O2 -main-is MonadBench -rtsopts
|