Cabal revisions of broadcast-chan-0.2.0.1
Hackage metadata revisions edit the .cabal file after upload; each diff below is one revision.
revision 1
-Name: broadcast-chan-Version: 0.2.0.1--Homepage: https://github.com/merijn/broadcast-chan-Bug-Reports: https://github.com/merijn/broadcast-chan/issues--Author: Merijn Verstraaten-Maintainer: Merijn Verstraaten <merijn@inconsistent.nl>-Copyright: Copyright © 2014-2018 Merijn Verstraaten--License: BSD3-License-File: LICENSE--Category: System-Cabal-Version: >= 1.10-Build-Type: Simple-Tested-With: GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.2, GHC == 8.2.2,- GHC == 8.4.3, GHC == 8.6.1--Extra-Source-Files: README.md- , CHANGELOG.md--Synopsis: Closable, fair, single-wakeup channel type that avoids 0- reader space leaks.--Description:- __WARNING:__ While the code in this library should be fairly stable and- production, the API is something I'm still working on. API changes will- follow the PVP, but __expect__ breaking API changes in future versions!- .- A closable, fair, single-wakeup channel that avoids the 0 reader space leak- that @"Control.Concurrent.Chan"@ from base suffers from.- .- The @Chan@ type from @"Control.Concurrent.Chan"@ consists of both a read- and write end combined into a single value. This means there is always at- least 1 read end for a @Chan@, which keeps any values written to it alive.- This is a problem for applications/libraries that want to have a channel- that can have zero listeners.- .- Suppose we have an library that produces events and we want to let users- register to receive events. If we use a channel and write all events to it,- we would like to drop and garbage collect any events that take place when- there are 0 listeners. The always present read end of @Chan@ from base- makes this impossible. We end up with a @Chan@ that forever accumulates- more and more events that will never get removed, resulting in a memory- leak.- .- @"BroadcastChan"@ splits channels into separate read and write ends. Any- message written to a a channel with no existing read end is immediately- dropped so it can be garbage collected. Once a read end is created, all- messages written to the channel will be accessible to that read end.- .- Once all read ends for a channel have disappeared and been garbage- collected, the channel will return to dropping messages as soon as they are- written.- .- __Why should I use "BroadcastChan" over "Control.Concurrent.Chan"?__- .- * @"BroadcastChan"@ is closable,- .- * @"BroadcastChan"@ has no 0 reader space leak,- .- * @"BroadcastChan"@ has comparable or better performance.- .- __Why should I use "BroadcastChan" over various (closable) STM channels?__- .- * @"BroadcastChan"@ is single-wakeup,- .- * @"BroadcastChan"@ is fair,- .- * @"BroadcastChan"@ performs better under contention.--Flag sync- Description: Benchmarks synchronisation primitives used in main- benchmark.- Default: False- Manual: True--Flag threaded- Description: Run benchmarks with threaded backend.- Default: True- Manual: True--Library- Default-Language: Haskell2010- GHC-Options: -Wall -O2 -fno-warn-unused-do-bind-- Exposed-Modules: BroadcastChan- BroadcastChan.Extra- BroadcastChan.Throw- Other-Modules: BroadcastChan.Internal-- Other-Extensions: CPP- DataKinds- DeriveDataTypeable- KindSignatures- NamedFieldPuns- Safe- ScopedTypeVariables- Trustworthy- TupleSections-- Build-Depends: base >= 4.7 && < 5- , unliftio-core >= 0.1.1 && < 0.2--Benchmark sync- Default-Language: Haskell2010- Type: exitcode-stdio-1.0- Main-Is: Sync.hs- GHC-Options: -Wall -O2 -fno-warn-orphans -rtsopts- if flag(threaded)- GHC-Options: -threaded- Hs-Source-Dirs: benchmarks-- Other-Extensions: BangPatterns- CPP-- if flag(sync)- Buildable: True- else- Buildable: False-- Build-Depends: base- , async >= 2.0 && < 2.3- , atomic-primops == 0.8.*- , criterion >= 1.2 && < 1.6- , deepseq >= 1.1 && < 1.5- , stm >= 2.4 && < 2.6--Benchmark channels- Default-Language: Haskell2010- Type: exitcode-stdio-1.0- Main-Is: Channels.hs- GHC-Options: -Wall -O2 -fno-warn-orphans -fno-warn-unused-do-bind- -fno-warn-type-defaults -rtsopts- if flag(threaded)- GHC-Options: -threaded-- Hs-Source-Dirs: benchmarks-- Other-Extensions: BangPatterns- CPP- DeriveGeneric- RecordWildCards-- Build-Depends: base- , broadcast-chan- , async >= 2.0 && < 2.3- , criterion >= 1.2 && < 1.6- , deepseq >= 1.1 && < 1.5- , stm >= 2.4 && < 2.6-- if impl(ghc < 7.10)- Build-Depends: bifunctors >= 0.1 && < 5.6--Benchmark utilities- Default-Language: Haskell2010- Type: exitcode-stdio-1.0- Main-Is: Utils.hs- GHC-Options: -Wall -O2 -fno-warn-orphans -fno-warn-unused-do-bind- -rtsopts- if flag(threaded)- GHC-Options: -threaded- Hs-Source-Dirs: benchmarks-- Build-Depends: base- , broadcast-chan--Source-Repository head- Type: git- Location: ssh://github.com:merijn/broadcast-chan.git--Source-Repository head- Type: mercurial- Location: https://bitbucket.org/merijnv/broadcast-chan+Name: broadcast-chan +Version: 0.2.0.1 +x-revision: 1 + +Homepage: https://github.com/merijn/broadcast-chan +Bug-Reports: https://github.com/merijn/broadcast-chan/issues + +Author: Merijn Verstraaten +Maintainer: Merijn Verstraaten <merijn@inconsistent.nl> +Copyright: Copyright © 2014-2018 Merijn Verstraaten + +License: BSD3 +License-File: LICENSE + +Category: System +Cabal-Version: >= 1.10 +Build-Type: Simple +Tested-With: GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.2, GHC == 8.2.2, + GHC == 8.4.3, GHC == 8.6.1 + +Extra-Source-Files: README.md + , CHANGELOG.md + +Synopsis: Closable, fair, single-wakeup channel type that avoids 0 + reader space leaks. + +Description: + __WARNING:__ While the code in this library should be fairly stable and + production, the API is something I'm still working on. API changes will + follow the PVP, but __expect__ breaking API changes in future versions! + . + A closable, fair, single-wakeup channel that avoids the 0 reader space leak + that @"Control.Concurrent.Chan"@ from base suffers from. + . + The @Chan@ type from @"Control.Concurrent.Chan"@ consists of both a read + and write end combined into a single value. This means there is always at + least 1 read end for a @Chan@, which keeps any values written to it alive. + This is a problem for applications/libraries that want to have a channel + that can have zero listeners. + . + Suppose we have an library that produces events and we want to let users + register to receive events. If we use a channel and write all events to it, + we would like to drop and garbage collect any events that take place when + there are 0 listeners. The always present read end of @Chan@ from base + makes this impossible. We end up with a @Chan@ that forever accumulates + more and more events that will never get removed, resulting in a memory + leak. + . + @"BroadcastChan"@ splits channels into separate read and write ends. Any + message written to a a channel with no existing read end is immediately + dropped so it can be garbage collected. Once a read end is created, all + messages written to the channel will be accessible to that read end. + . + Once all read ends for a channel have disappeared and been garbage + collected, the channel will return to dropping messages as soon as they are + written. + . + __Why should I use "BroadcastChan" over "Control.Concurrent.Chan"?__ + . + * @"BroadcastChan"@ is closable, + . + * @"BroadcastChan"@ has no 0 reader space leak, + . + * @"BroadcastChan"@ has comparable or better performance. + . + __Why should I use "BroadcastChan" over various (closable) STM channels?__ + . + * @"BroadcastChan"@ is single-wakeup, + . + * @"BroadcastChan"@ is fair, + . + * @"BroadcastChan"@ performs better under contention. + +Flag sync + Description: Benchmarks synchronisation primitives used in main + benchmark. + Default: False + Manual: True + +Flag threaded + Description: Run benchmarks with threaded backend. + Default: True + Manual: True + +Library + Default-Language: Haskell2010 + GHC-Options: -Wall -O2 -fno-warn-unused-do-bind + + Exposed-Modules: BroadcastChan + BroadcastChan.Extra + BroadcastChan.Throw + Other-Modules: BroadcastChan.Internal + + Other-Extensions: CPP + DataKinds + DeriveDataTypeable + KindSignatures + NamedFieldPuns + Safe + ScopedTypeVariables + Trustworthy + TupleSections + + Build-Depends: base >= 4.7 && < 4.11 + , unliftio-core >= 0.1.1 && < 0.2 + +Benchmark sync + Default-Language: Haskell2010 + Type: exitcode-stdio-1.0 + Main-Is: Sync.hs + GHC-Options: -Wall -O2 -fno-warn-orphans -rtsopts + if flag(threaded) + GHC-Options: -threaded + Hs-Source-Dirs: benchmarks + + Other-Extensions: BangPatterns + CPP + + if flag(sync) + Buildable: True + else + Buildable: False + + Build-Depends: base + , async >= 2.0 && < 2.3 + , atomic-primops == 0.8.* + , criterion >= 1.2 && < 1.6 + , deepseq >= 1.1 && < 1.5 + , stm >= 2.4 && < 2.6 + +Benchmark channels + Default-Language: Haskell2010 + Type: exitcode-stdio-1.0 + Main-Is: Channels.hs + GHC-Options: -Wall -O2 -fno-warn-orphans -fno-warn-unused-do-bind + -fno-warn-type-defaults -rtsopts + if flag(threaded) + GHC-Options: -threaded + + Hs-Source-Dirs: benchmarks + + Other-Extensions: BangPatterns + CPP + DeriveGeneric + RecordWildCards + + Build-Depends: base + , broadcast-chan + , async >= 2.0 && < 2.3 + , criterion >= 1.2 && < 1.6 + , deepseq >= 1.1 && < 1.5 + , stm >= 2.4 && < 2.6 + + if impl(ghc < 7.10) + Build-Depends: bifunctors >= 0.1 && < 5.6 + +Benchmark utilities + Default-Language: Haskell2010 + Type: exitcode-stdio-1.0 + Main-Is: Utils.hs + GHC-Options: -Wall -O2 -fno-warn-orphans -fno-warn-unused-do-bind + -rtsopts + if flag(threaded) + GHC-Options: -threaded + Hs-Source-Dirs: benchmarks + + Build-Depends: base + , broadcast-chan + +Source-Repository head + Type: git + Location: ssh://github.com:merijn/broadcast-chan.git + +Source-Repository head + Type: mercurial + Location: https://bitbucket.org/merijnv/broadcast-chan
revision 2
Name: broadcast-chan Version: 0.2.0.1 -x-revision: 1 +x-revision: 2 Homepage: https://github.com/merijn/broadcast-chan Bug-Reports: https://github.com/merijn/broadcast-chan/issues Trustworthy TupleSections - Build-Depends: base >= 4.7 && < 4.11 + Build-Depends: base >= 4.7 && < 4.12 , unliftio-core >= 0.1.1 && < 0.2 Benchmark sync