polysemy-log 0.7.1.0 → 0.7.2.0
raw patch · 4 files changed
+108/−10 lines, 4 filesdep ~polysemydep ~polysemy-concPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: polysemy, polysemy-conc
API changes (from Hackage documentation)
Files
- benchmark/Main.hs +12/−0
- changelog.md +2/−0
- lib/Polysemy/Log/Conc.hs +5/−6
- polysemy-log.cabal +89/−4
+ benchmark/Main.hs view
@@ -0,0 +1,12 @@+module Main where++import Polysemy.Conc (runConc)+import Polysemy.Log.Data.Severity (Severity (Error))+import qualified Polysemy.Log.Effect.Log as Log+import Polysemy.Log.Stdout (interpretLogStdoutLevelConc)++main :: IO ()+main =+ runConc $ interpretLogStdoutLevelConc (Just Error) do+ for_ @[] [1..50000] \ (i :: Int) ->+ Log.warn ("line " <> show i)
changelog.md view
@@ -1,5 +1,7 @@ # Unreleased +# 0.7.1.0+ * Add parser for `Severity`. * Export `interpretDataLog`. * Export `local`.
lib/Polysemy/Log/Conc.hs view
@@ -5,7 +5,6 @@ import qualified Polysemy.Conc as Conc import Polysemy.Conc (Queue, Race, interpretQueueTBM) import qualified Polysemy.Conc.Queue as Queue-import Polysemy.Conc.Queue.Result (resultToMaybe) import Polysemy.Internal.Tactics (liftT) import Polysemy.Time (Seconds (Seconds)) @@ -40,20 +39,20 @@ {-# inline interceptDataLogConcWith #-} -- |Part of 'interceptDataLogConc'.--- Loop as long as the proided queue is open and relay all dequeued messages to the ultimate interpreter, thereby+-- Loop as long as the provided queue is open and relay all dequeued messages to the ultimate interpreter, thereby -- forcing the logging implementation to work in this thread. loggerThread :: ∀ msg r . Members [Queue msg, DataLog msg] r => Sem r ()-loggerThread = do+loggerThread = spin where spin = do- next <- Queue.read- for_ (resultToMaybe next) \ msg -> do+ next <- Queue.readMaybe+ for_ next \ msg -> do DataLog.dataLog @msg msg- spin+ when (isJust next) spin -- |Close the concurrent logger's queue and wait for one second to allow it to process any messages that have been -- queued.
polysemy-log.cabal view
@@ -1,11 +1,11 @@ cabal-version: 2.2 --- This file has been generated from package.yaml by hpack version 0.34.6.+-- This file has been generated from package.yaml by hpack version 0.34.7. -- -- see: https://github.com/sol/hpack name: polysemy-log-version: 0.7.1.0+version: 0.7.2.0 synopsis: Polysemy effects for logging description: See https://hackage.haskell.org/package/polysemy-log/docs/Polysemy-Log.html category: Logging@@ -66,6 +66,7 @@ DisambiguateRecordFields DoAndIfThenElse DuplicateRecordFields+ EmptyCase EmptyDataDecls ExistentialQuantification FlexibleContexts@@ -80,8 +81,9 @@ MultiParamTypeClasses MultiWayIf NamedFieldPuns- OverloadedStrings+ OverloadedLabels OverloadedLists+ OverloadedStrings PackageImports PartialTypeSignatures PatternGuards@@ -155,6 +157,7 @@ DisambiguateRecordFields DoAndIfThenElse DuplicateRecordFields+ EmptyCase EmptyDataDecls ExistentialQuantification FlexibleContexts@@ -169,8 +172,9 @@ MultiParamTypeClasses MultiWayIf NamedFieldPuns- OverloadedStrings+ OverloadedLabels OverloadedLists+ OverloadedStrings PackageImports PartialTypeSignatures PatternGuards@@ -206,6 +210,87 @@ , polysemy-time , tasty , time+ mixins:+ base hiding (Prelude)+ , incipit-core (IncipitCore as Prelude)+ , incipit-core hiding (IncipitCore)+ default-language: Haskell2010++benchmark space+ type: exitcode-stdio-1.0+ main-is: Main.hs+ hs-source-dirs:+ benchmark+ default-extensions:+ AllowAmbiguousTypes+ ApplicativeDo+ BangPatterns+ BinaryLiterals+ BlockArguments+ ConstraintKinds+ DataKinds+ DefaultSignatures+ DeriveAnyClass+ DeriveDataTypeable+ DeriveFoldable+ DeriveFunctor+ DeriveGeneric+ DeriveLift+ DeriveTraversable+ DerivingStrategies+ DerivingVia+ DisambiguateRecordFields+ DoAndIfThenElse+ DuplicateRecordFields+ EmptyCase+ EmptyDataDecls+ ExistentialQuantification+ FlexibleContexts+ FlexibleInstances+ FunctionalDependencies+ GADTs+ GeneralizedNewtypeDeriving+ InstanceSigs+ KindSignatures+ LambdaCase+ LiberalTypeSynonyms+ MultiParamTypeClasses+ MultiWayIf+ NamedFieldPuns+ OverloadedLabels+ OverloadedLists+ OverloadedStrings+ PackageImports+ PartialTypeSignatures+ PatternGuards+ PatternSynonyms+ PolyKinds+ QuantifiedConstraints+ QuasiQuotes+ RankNTypes+ RecordWildCards+ RecursiveDo+ RoleAnnotations+ ScopedTypeVariables+ StandaloneDeriving+ TemplateHaskell+ TupleSections+ TypeApplications+ TypeFamilies+ TypeFamilyDependencies+ TypeOperators+ TypeSynonymInstances+ UndecidableInstances+ UnicodeSyntax+ ViewPatterns+ ghc-options: -Wall -Wredundant-constraints -Wincomplete-uni-patterns -Wmissing-deriving-strategies -Widentities -Wunused-packages -threaded -rtsopts -with-rtsopts=-N+ build-depends:+ base >=4.12 && <5+ , incipit-core >=0.3+ , polysemy+ , polysemy-conc+ , polysemy-log+ , polysemy-plugin mixins: base hiding (Prelude) , incipit-core (IncipitCore as Prelude)