2014-06-03 19:10:54 +04:00
|
|
|
name: haxl
|
2020-01-16 19:38:53 +03:00
|
|
|
version: 2.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
|
2017-12-08 15:26:13 +03:00
|
|
|
license: BSD3
|
|
|
|
license-files: LICENSE
|
2014-06-03 19:10:54 +04:00
|
|
|
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
|
2016-02-09 16:52:47 +03:00
|
|
|
tested-with:
|
2018-03-22 22:39:59 +03:00
|
|
|
GHC==8.2.2,
|
2020-08-13 19:15:22 +03:00
|
|
|
GHC==8.4.4,
|
|
|
|
GHC==8.6.5,
|
|
|
|
GHC==8.8.3,
|
|
|
|
GHC==8.10.1
|
2014-06-03 19:10:54 +04:00
|
|
|
|
|
|
|
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
|
|
|
|
tests/LoadCache.txt
|
2015-10-09 18:27:17 +03:00
|
|
|
changelog.md
|
2014-06-03 19:10:54 +04:00
|
|
|
|
|
|
|
library
|
|
|
|
|
|
|
|
build-depends:
|
2020-08-13 19:15:22 +03:00
|
|
|
aeson >= 0.6 && < 1.6,
|
2020-01-10 12:31:35 +03:00
|
|
|
base >= 4.10 && < 5,
|
2017-04-06 20:13:11 +03:00
|
|
|
binary >= 0.7 && < 0.10,
|
2015-04-10 09:01:26 +03:00
|
|
|
bytestring >= 0.9 && < 0.11,
|
2018-09-25 00:06:13 +03:00
|
|
|
containers >= 0.5 && < 0.7,
|
2015-07-17 15:57:11 +03:00
|
|
|
deepseq,
|
2018-03-22 22:39:59 +03:00
|
|
|
exceptions >=0.8 && <0.11,
|
2015-04-10 09:01:26 +03:00
|
|
|
filepath >= 1.3 && < 1.5,
|
2016-05-10 03:11:12 +03:00
|
|
|
ghc-prim,
|
2020-08-13 19:15:22 +03:00
|
|
|
hashable >= 1.2 && < 1.4,
|
2020-01-11 01:36:05 +03:00
|
|
|
hashtables >= 1.2.3.1,
|
2014-06-03 19:10:54 +04:00
|
|
|
pretty == 1.1.*,
|
2017-05-09 14:03:09 +03:00
|
|
|
-- text 1.2.1.0 required for instance Binary Text
|
|
|
|
text >= 1.2.1.0 && < 1.3,
|
2020-08-13 19:15:22 +03:00
|
|
|
time >= 1.4 && < 1.10,
|
2018-09-25 00:06:13 +03:00
|
|
|
stm >= 2.4 && < 2.6,
|
2016-06-04 01:23:22 +03:00
|
|
|
transformers,
|
2014-06-03 19:10:54 +04:00
|
|
|
unordered-containers == 0.2.*,
|
2017-01-08 23:25:41 +03:00
|
|
|
vector >= 0.10 && <0.13
|
2014-06-03 19:10:54 +04:00
|
|
|
|
|
|
|
exposed-modules:
|
|
|
|
Haxl.Core,
|
2019-05-15 00:19:14 +03:00
|
|
|
Haxl.Core.CallGraph,
|
2014-06-03 19:10:54 +04:00
|
|
|
Haxl.Core.DataCache,
|
2017-10-27 13:31:57 +03:00
|
|
|
Haxl.Core.DataSource,
|
2014-06-03 19:10:54 +04:00
|
|
|
Haxl.Core.Exception,
|
2017-10-27 13:31:57 +03:00
|
|
|
Haxl.Core.Flags,
|
2015-07-17 19:36:26 +03:00
|
|
|
Haxl.Core.Memo,
|
2014-06-03 19:10:54 +04:00
|
|
|
Haxl.Core.Monad,
|
2017-10-27 13:31:57 +03:00
|
|
|
Haxl.Core.Fetch,
|
|
|
|
Haxl.Core.Parallel,
|
|
|
|
Haxl.Core.Profile,
|
|
|
|
Haxl.Core.Run,
|
2014-06-03 19:10:54 +04:00
|
|
|
Haxl.Core.RequestStore,
|
2016-12-10 01:18:58 +03:00
|
|
|
Haxl.Core.ShowP,
|
2017-10-27 13:31:57 +03:00
|
|
|
Haxl.Core.StateStore,
|
|
|
|
Haxl.Core.Stats,
|
2014-06-03 19:10:54 +04:00
|
|
|
Haxl.Prelude
|
2017-10-31 14:05:47 +03:00
|
|
|
Haxl.DataSource.ConcurrentIO
|
2014-06-03 19:10:54 +04:00
|
|
|
|
|
|
|
other-modules:
|
|
|
|
Haxl.Core.Util
|
|
|
|
|
|
|
|
default-language: Haskell2010
|
|
|
|
|
|
|
|
ghc-options:
|
2017-10-03 10:14:24 +03:00
|
|
|
-O2 -fprof-auto
|
2014-06-03 19:10:54 +04:00
|
|
|
-Wall
|
2020-01-10 12:31:35 +03:00
|
|
|
-Wno-name-shadowing
|
2014-06-03 19:10:54 +04:00
|
|
|
|
|
|
|
test-suite test
|
|
|
|
|
|
|
|
build-depends:
|
2018-05-21 14:12:46 +03:00
|
|
|
aeson,
|
2017-10-27 13:31:57 +03:00
|
|
|
HUnit >= 1.2 && < 1.7,
|
2018-09-25 01:54:38 +03:00
|
|
|
base >= 4.7 && < 5,
|
2016-05-31 18:43:00 +03:00
|
|
|
binary,
|
2014-06-03 19:10:54 +04:00
|
|
|
bytestring,
|
|
|
|
containers,
|
2016-08-22 18:21:36 +03:00
|
|
|
deepseq,
|
2016-06-05 00:23:09 +03:00
|
|
|
filepath,
|
2014-06-03 19:10:54 +04:00
|
|
|
hashable,
|
2020-01-11 01:36:05 +03:00
|
|
|
hashtables,
|
2014-06-03 19:10:54 +04:00
|
|
|
haxl,
|
2016-06-05 00:23:09 +03:00
|
|
|
test-framework,
|
|
|
|
test-framework-hunit,
|
2014-06-03 19:10:54 +04:00
|
|
|
text,
|
2017-07-24 08:08:18 +03:00
|
|
|
time,
|
2014-06-03 19:10:54 +04:00
|
|
|
unordered-containers
|
|
|
|
|
|
|
|
ghc-options:
|
|
|
|
-Wall
|
|
|
|
-fno-warn-name-shadowing
|
|
|
|
-fno-warn-missing-signatures
|
|
|
|
|
|
|
|
hs-source-dirs:
|
|
|
|
tests
|
|
|
|
|
|
|
|
main-is:
|
2016-06-02 15:31:22 +03:00
|
|
|
TestMain.hs
|
2014-06-03 19:10:54 +04:00
|
|
|
|
|
|
|
other-modules:
|
2020-01-10 12:31:35 +03:00
|
|
|
AdoTests
|
2016-09-30 19:47:42 +03:00
|
|
|
AllTests
|
2017-04-19 22:12:56 +03:00
|
|
|
BadDataSource
|
2014-06-03 19:10:54 +04:00
|
|
|
BatchTests
|
|
|
|
CoreTests
|
|
|
|
DataCacheTest
|
|
|
|
ExampleDataSource
|
2021-12-10 07:39:06 +03:00
|
|
|
ExceptionStackTests
|
2017-10-03 10:14:24 +03:00
|
|
|
FullyAsyncTest
|
2014-06-03 19:10:54 +04:00
|
|
|
LoadCache
|
2016-09-30 19:47:42 +03:00
|
|
|
MemoizationTests
|
2014-06-03 19:10:54 +04:00
|
|
|
MockTAO
|
2020-07-15 14:38:20 +03:00
|
|
|
MonadAsyncTest
|
2020-01-10 12:31:35 +03:00
|
|
|
OutgoneFetchesTests
|
2019-11-29 18:06:16 +03:00
|
|
|
ParallelTests
|
2016-09-30 19:47:42 +03:00
|
|
|
ProfileTests
|
2017-10-03 10:14:24 +03:00
|
|
|
SleepDataSource
|
2020-01-22 15:23:48 +03:00
|
|
|
StatsTests
|
2017-04-19 22:12:56 +03:00
|
|
|
TestBadDataSource
|
2014-06-03 19:10:54 +04:00
|
|
|
TestExampleDataSource
|
|
|
|
TestTypes
|
2015-05-01 22:23:11 +03:00
|
|
|
TestUtils
|
2018-01-10 19:31:02 +03:00
|
|
|
WorkDataSource
|
2019-04-10 20:48:32 +03:00
|
|
|
WriteTests
|
2020-11-16 19:13:31 +03:00
|
|
|
DataSourceDispatchTests
|
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
|
|
|
|
2017-10-31 14:05:43 +03:00
|
|
|
flag bench
|
|
|
|
default: False
|
|
|
|
|
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
|
2017-10-31 14:05:43 +03:00
|
|
|
if !flag(bench)
|
|
|
|
buildable: False
|
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
|
|
|
default-language:
|
|
|
|
Haskell2010
|
|
|
|
hs-source-dirs:
|
|
|
|
tests
|
|
|
|
build-depends:
|
|
|
|
base,
|
|
|
|
haxl,
|
|
|
|
hashable,
|
2020-04-24 18:00:39 +03:00
|
|
|
time,
|
|
|
|
optparse-applicative
|
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
|
|
|
main-is:
|
|
|
|
MonadBench.hs
|
|
|
|
other-modules:
|
|
|
|
ExampleDataSource
|
|
|
|
ghc-options:
|
|
|
|
-O2 -main-is MonadBench -rtsopts
|
2017-10-27 13:31:57 +03:00
|
|
|
|
|
|
|
executable cachebench
|
2017-10-31 14:05:43 +03:00
|
|
|
if !flag(bench)
|
|
|
|
buildable: False
|
2017-10-27 13:31:57 +03:00
|
|
|
default-language:
|
|
|
|
Haskell2010
|
|
|
|
hs-source-dirs:
|
|
|
|
tests
|
|
|
|
build-depends:
|
|
|
|
base,
|
|
|
|
haxl,
|
|
|
|
hashable,
|
2020-01-11 01:36:05 +03:00
|
|
|
hashtables,
|
2017-10-27 13:31:57 +03:00
|
|
|
time
|
|
|
|
main-is:
|
|
|
|
Bench.hs
|
|
|
|
ghc-options:
|
|
|
|
-O2 -main-is Bench -rtsopts
|