Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package ghc-fast-logger for openSUSE:Factory
checked in at 2024-05-28 17:28:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-fast-logger (Old)
and /work/SRC/openSUSE:Factory/.ghc-fast-logger.new.24587 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-fast-logger"
Tue May 28 17:28:49 2024 rev:29 rq:1177130 version:3.2.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-fast-logger/ghc-fast-logger.changes
2023-11-23 21:43:08.176989955 +0100
+++
/work/SRC/openSUSE:Factory/.ghc-fast-logger.new.24587/ghc-fast-logger.changes
2024-05-28 17:29:36.345735556 +0200
@@ -1,0 +2,9 @@
+Thu May 16 07:11:46 UTC 2024 - Peter Simons <[email protected]>
+
+- Update fast-logger to version 3.2.3.
+ ## 3.2.3
+
+ * Ensuring flush for single logger.
+ [#214](https://github.com/kazu-yamamoto/logger/pull/214)
+
+-------------------------------------------------------------------
Old:
----
fast-logger-3.2.2.tar.gz
New:
----
fast-logger-3.2.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-fast-logger.spec ++++++
--- /var/tmp/diff_new_pack.Zb5WQX/_old 2024-05-28 17:29:37.625782364 +0200
+++ /var/tmp/diff_new_pack.Zb5WQX/_new 2024-05-28 17:29:37.629782510 +0200
@@ -1,7 +1,7 @@
#
# spec file for package ghc-fast-logger
#
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -20,7 +20,7 @@
%global pkgver %{pkg_name}-%{version}
%bcond_with tests
Name: ghc-%{pkg_name}
-Version: 3.2.2
+Version: 3.2.3
Release: 0
Summary: A fast logging system
License: BSD-3-Clause
++++++ fast-logger-3.2.2.tar.gz -> fast-logger-3.2.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/fast-logger-3.2.2/ChangeLog.md
new/fast-logger-3.2.3/ChangeLog.md
--- old/fast-logger-3.2.2/ChangeLog.md 2001-09-09 03:46:40.000000000 +0200
+++ new/fast-logger-3.2.3/ChangeLog.md 2001-09-09 03:46:40.000000000 +0200
@@ -1,3 +1,8 @@
+## 3.2.3
+
+* Ensuring flush for single logger.
+ [#214](https://github.com/kazu-yamamoto/logger/pull/214)
+
## 3.2.2
* Corrected handling of messages at the buffer boundary in the SingleLogger
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/fast-logger-3.2.2/System/Log/FastLogger/SingleLogger.hs
new/fast-logger-3.2.3/System/Log/FastLogger/SingleLogger.hs
--- old/fast-logger-3.2.2/System/Log/FastLogger/SingleLogger.hs 2001-09-09
03:46:40.000000000 +0200
+++ new/fast-logger-3.2.3/System/Log/FastLogger/SingleLogger.hs 2001-09-09
03:46:40.000000000 +0200
@@ -1,11 +1,11 @@
{-# LANGUAGE RecordWildCards #-}
module System.Log.FastLogger.SingleLogger (
- SingleLogger
- , newSingleLogger
- ) where
+ SingleLogger,
+ newSingleLogger,
+) where
-import Control.Concurrent (forkIO, newEmptyMVar, MVar, takeMVar, putMVar)
+import Control.Concurrent (MVar, forkIO, newEmptyMVar, putMVar, takeMVar)
import Control.Concurrent.STM
import System.Log.FastLogger.FileIO
@@ -16,43 +16,50 @@
----------------------------------------------------------------
+data Ent = F (MVar ()) Bool | L LogStr
+type Q = [Ent] -- writer queue
+
-- | A non-scale but time-ordered logger.
-data SingleLogger = SingleLogger {
- slgrRef :: IORef (LogStr
- ,[LogStr])-- writer queue
- , slgrKill :: IO ()
- , slgrWakeup :: IO ()
- , slgrBuffer :: Buffer
- , slgrBufSize :: BufSize
- , slgrFdRef :: IORef FD
- }
+data SingleLogger = SingleLogger
+ { slgrRef :: IORef (LogStr, Q)
+ , slgrFlush :: Bool -> IO () -- teminate if False
+ , slgrWakeup :: IO ()
+ , slgrBuffer :: Buffer
+ , slgrBufSize :: BufSize
+ , slgrFdRef :: IORef FD
+ }
instance Loggers SingleLogger where
stopLoggers = System.Log.FastLogger.SingleLogger.stopLoggers
- pushLog = System.Log.FastLogger.SingleLogger.pushLog
+ pushLog = System.Log.FastLogger.SingleLogger.pushLog
flushAllLog = System.Log.FastLogger.SingleLogger.flushAllLog
----------------------------------------------------------------
-writer :: BufSize -> Buffer -> IORef FD -> TVar Int -> IORef (LogStr,
[LogStr]) -> MVar () -> IO ()
-writer bufsize buf fdref tvar ref mvar = loop (0 :: Int)
+writer
+ :: BufSize
+ -> Buffer
+ -> IORef FD
+ -> TVar Int
+ -> IORef (LogStr, Q)
+ -> IO ()
+writer bufsize buf fdref tvar ref = loop (0 :: Int)
where
loop cnt = do
cnt' <- atomically $ do
n <- readTVar tvar
check (n /= cnt)
return n
- msgs <- reverse <$> atomicModifyIORef' ref (\(msg,q) -> ((msg,[]),q))
+ msgs <- reverse <$> atomicModifyIORef' ref (\(msg, q) -> ((msg, []),
q))
cont <- go msgs
- if cont then
- loop cnt'
- else
- putMVar mvar ()
+ when cont $ loop cnt'
go [] = return True
- go (msg@(LogStr len _):msgs)
- | len < 0 = return False
- | len <= bufsize = writeLogStr buf fdref msg >> go msgs
- | otherwise = writeBigLogStr fdref msg >> go msgs
+ go (F mvar cont : msgs) = do
+ putMVar mvar ()
+ if cont then go msgs else return False
+ go (L msg@(LogStr len _) : msgs)
+ | len <= bufsize = writeLogStr buf fdref msg >> go msgs
+ | otherwise = writeBigLogStr fdref msg >> go msgs
----------------------------------------------------------------
@@ -60,46 +67,47 @@
newSingleLogger :: BufSize -> IORef FD -> IO SingleLogger
newSingleLogger bufsize fdref = do
tvar <- newTVarIO 0
- ref <- newIORef (mempty,[])
- mvar <- newEmptyMVar
+ ref <- newIORef (mempty, [])
buf <- getBuffer bufsize
- _ <- forkIO $ writer bufsize buf fdref tvar ref mvar
+ _ <- forkIO $ writer bufsize buf fdref tvar ref
let wakeup = atomically $ modifyTVar' tvar (+ 1)
- kill = do
- let fin = LogStr (-1) mempty
- atomicModifyIORef' ref (\(old,q) -> ((mempty,fin:old:q),()))
+ flush cont = do
+ mvar <- newEmptyMVar
+ let fin = F mvar cont
+ atomicModifyIORef' ref (\(old, q) -> ((mempty, fin : L old : q),
()))
wakeup
takeMVar mvar
- return $ SingleLogger {
- slgrRef = ref
- , slgrKill = kill
- , slgrWakeup = wakeup
- , slgrBuffer = buf
- , slgrBufSize = bufsize
- , slgrFdRef = fdref
- }
+ return $
+ SingleLogger
+ { slgrRef = ref
+ , slgrFlush = flush
+ , slgrWakeup = wakeup
+ , slgrBuffer = buf
+ , slgrBufSize = bufsize
+ , slgrFdRef = fdref
+ }
----------------------------------------------------------------
pushLog :: SingleLogger -> LogStr -> IO ()
pushLog SingleLogger{..} nlogmsg@(LogStr nlen _)
- | nlen > slgrBufSize = do
- atomicModifyIORef' slgrRef (\(old,q) -> ((mempty,nlogmsg:old:q),()))
+ | nlen > slgrBufSize = do
+ atomicModifyIORef' slgrRef (\(old, q) -> ((mempty, L nlogmsg : L old :
q), ()))
slgrWakeup
- | otherwise = do
+ | otherwise = do
wake <- atomicModifyIORef' slgrRef checkBuf
when wake slgrWakeup
where
- checkBuf (ologmsg@(LogStr olen _),q)
- | slgrBufSize < olen + nlen = ((nlogmsg, ologmsg:q), True)
- | otherwise = ((ologmsg <> nlogmsg, q), False)
+ checkBuf (ologmsg@(LogStr olen _), q)
+ | slgrBufSize < olen + nlen = ((nlogmsg, L ologmsg : q), True)
+ | otherwise = ((ologmsg <> nlogmsg, q), False)
flushAllLog :: SingleLogger -> IO ()
flushAllLog SingleLogger{..} = do
- atomicModifyIORef' slgrRef (\(old,q) -> ((mempty,old:q),()))
- slgrWakeup
+ atomicModifyIORef' slgrRef (\(old, q) -> ((mempty, L old : q), ()))
+ slgrFlush True
stopLoggers :: SingleLogger -> IO ()
stopLoggers SingleLogger{..} = do
- slgrKill
+ slgrFlush False
freeBuffer slgrBuffer
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/fast-logger-3.2.2/fast-logger.cabal
new/fast-logger-3.2.3/fast-logger.cabal
--- old/fast-logger-3.2.2/fast-logger.cabal 2001-09-09 03:46:40.000000000
+0200
+++ new/fast-logger-3.2.3/fast-logger.cabal 2001-09-09 03:46:40.000000000
+0200
@@ -1,6 +1,6 @@
cabal-version: >=1.10
name: fast-logger
-version: 3.2.2
+version: 3.2.3
license: BSD3
license-file: LICENSE
maintainer: Kazu Yamamoto <[email protected]>