-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpvector.cabal
More file actions
78 lines (75 loc) · 2.67 KB
/
pvector.cabal
File metadata and controls
78 lines (75 loc) · 2.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
cabal-version: 3.0
name: pvector
version: 0.2.0.0
synopsis: RRB-tree persistent vectors with O(log n) concat/split
description:
Efficient persistent (immutable) vector implementations based on
Relaxed Radix Balanced trees (RRB-trees) with 32-way branching.
.
Key improvements over traditional Clojure-style persistent vectors:
.
* O(eC) prepend AND append via symmetric prefix\/suffix buffers
* O(log n) concatenation via RRB merge
* O(log n) take\/drop\/splitAt via RRB split
* O(1) head\/last via direct buffer access
.
Provides three vector variants:
.
* @Data.PVector.Back@ — the main RRB vector with efficient operations at both ends
* @Data.PVector.Front@ — cons-efficient (reversed internal ordering)
* @Data.PVector.Deque@ — double-ended deque backed by two vectors
.
Supports transient (mutable) counterparts for batch operations
and stream fusion via GHC rewrite rules.
homepage: https://github.com/iand675/pvector
license: MIT
license-file: LICENSE
author: Ian Duncan
maintainer: ian@iankduncan.com
category: Data
build-type: Simple
library
exposed-modules: Data.PVector
, Data.PVector.Back
, Data.PVector.Front
, Data.PVector.Deque
other-modules: Data.PVector.Internal
, Data.PVector.Internal.Stream
, Data.PVector.Internal.ChunkedBundle
build-depends: base >= 4.16 && < 5
, deepseq >= 1.4
, primitive >= 0.7.3
hs-source-dirs: src
-- cmm-sources: cbits/CloneAndSet.cmm
default-language: GHC2021
ghc-options: -O2
-Wall
-Wno-name-shadowing
-fmax-simplifier-iterations=10
-fdicts-cheap
-fspec-constr-count=6
benchmark bench-pvector
type: exitcode-stdio-1.0
hs-source-dirs: bench
main-is: Main.hs
build-depends: base
, deepseq
, criterion
, vector
, pvector
, containers
, primitive
default-language: GHC2021
ghc-options: -O2 -rtsopts
test-suite test-pvector
type: exitcode-stdio-1.0
hs-source-dirs: test
main-is: Main.hs
build-depends: base
, pvector
, tasty
, tasty-hunit
, hedgehog
, tasty-hedgehog
default-language: GHC2021
ghc-options: -O2 -rtsopts -threaded