From 4631d1ab56bc60932ddba4cee71906564d68b8a2 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Wed, 24 Mar 2021 12:11:50 -0400 Subject: [PATCH] Fix build with attoparsec-0.14 It changed parseOnly in the ByteString.Lazy module to take a lazy, not strict ByteString. In all these cases though, we actually had a strict ByteString, so the most efficient fix, which also happens to avoid needing ifdefs, is to use the non-lazy module instead. This commit was sponsored by Denis Dzyubenko on Patreon. --- CHANGELOG | 1 + Logs/ContentIdentifier/Pure.hs | 2 +- Logs/Line.hs | 2 +- Logs/MapLog.hs | 7 ++++--- Logs/Remote/Pure.hs | 2 +- Logs/Trust/Pure.hs | 2 +- Logs/UUIDBased.hs | 7 ++++--- 7 files changed, 13 insertions(+), 10 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index e386d08b8f..61aed958ae 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -24,6 +24,7 @@ git-annex (8.20210311) UNRELEASED; urgency=medium * New annex.supportunlocked config that can be set to false to avoid some expensive things needed to support unlocked files. * Sped up git-annex init in a clone of an existing repository. + * Fix build with attoparsec-0.14. -- Joey Hess Fri, 12 Mar 2021 12:06:37 -0400 diff --git a/Logs/ContentIdentifier/Pure.hs b/Logs/ContentIdentifier/Pure.hs index 1f725138b3..7a0f6c1614 100644 --- a/Logs/ContentIdentifier/Pure.hs +++ b/Logs/ContentIdentifier/Pure.hs @@ -17,7 +17,7 @@ import Utility.Base64 import qualified Data.ByteString as S import qualified Data.ByteString.Char8 as S8 import qualified Data.ByteString.Lazy as L -import qualified Data.Attoparsec.ByteString.Lazy as A +import qualified Data.Attoparsec.ByteString as A import qualified Data.Attoparsec.ByteString.Char8 as A8 import Data.ByteString.Builder import Data.List.NonEmpty (NonEmpty(..)) diff --git a/Logs/Line.hs b/Logs/Line.hs index 3bacc29027..7c38b7e0b9 100644 --- a/Logs/Line.hs +++ b/Logs/Line.hs @@ -9,7 +9,7 @@ module Logs.Line where import Common -import qualified Data.Attoparsec.ByteString.Lazy as A +import qualified Data.Attoparsec.ByteString as A import Data.Attoparsec.ByteString.Char8 (isEndOfLine) import qualified Data.DList as D diff --git a/Logs/MapLog.hs b/Logs/MapLog.hs index 9b8f44e909..17d4dd8833 100644 --- a/Logs/MapLog.hs +++ b/Logs/MapLog.hs @@ -24,7 +24,8 @@ import Utility.QuickCheck import qualified Data.ByteString.Lazy as L import qualified Data.Map.Strict as M -import qualified Data.Attoparsec.ByteString.Lazy as A +import qualified Data.Attoparsec.ByteString as A +import qualified Data.Attoparsec.ByteString.Lazy as AL import qualified Data.Attoparsec.ByteString.Char8 as A8 import Data.ByteString.Builder @@ -49,8 +50,8 @@ buildMapLog fieldbuilder valuebuilder = mconcat . map genline . M.toList nl = charUtf8 '\n' parseMapLog :: Ord f => A.Parser f -> A.Parser v -> L.ByteString -> MapLog f v -parseMapLog fieldparser valueparser = fromMaybe M.empty . A.maybeResult - . A.parse (mapLogParser fieldparser valueparser) +parseMapLog fieldparser valueparser = fromMaybe M.empty . AL.maybeResult + . AL.parse (mapLogParser fieldparser valueparser) mapLogParser :: Ord f => A.Parser f -> A.Parser v -> A.Parser (MapLog f v) mapLogParser fieldparser valueparser = M.fromListWith best <$> parseLogLines go diff --git a/Logs/Remote/Pure.hs b/Logs/Remote/Pure.hs index 07f5ef16d7..e60c18b1f3 100644 --- a/Logs/Remote/Pure.hs +++ b/Logs/Remote/Pure.hs @@ -27,7 +27,7 @@ import Utility.QuickCheck import qualified Data.ByteString.Lazy as L import qualified Data.Map as M import Data.Char -import qualified Data.Attoparsec.ByteString.Lazy as A +import qualified Data.Attoparsec.ByteString as A import Data.ByteString.Builder calcRemoteConfigMap :: L.ByteString -> M.Map UUID RemoteConfig diff --git a/Logs/Trust/Pure.hs b/Logs/Trust/Pure.hs index 1aa7a397a3..0eb0398ba6 100644 --- a/Logs/Trust/Pure.hs +++ b/Logs/Trust/Pure.hs @@ -14,7 +14,7 @@ import Types.TrustLevel import Logs.UUIDBased import qualified Data.ByteString.Lazy as L -import qualified Data.Attoparsec.ByteString.Lazy as A +import qualified Data.Attoparsec.ByteString as A import qualified Data.Attoparsec.ByteString.Char8 as A8 import Data.ByteString.Builder diff --git a/Logs/UUIDBased.hs b/Logs/UUIDBased.hs index d5c4154d05..4c7ef59c51 100644 --- a/Logs/UUIDBased.hs +++ b/Logs/UUIDBased.hs @@ -41,7 +41,8 @@ import Logs.Line import qualified Data.ByteString as S import qualified Data.ByteString.Lazy as L -import qualified Data.Attoparsec.ByteString.Lazy as A +import qualified Data.Attoparsec.ByteString as A +import qualified Data.Attoparsec.ByteString.Lazy as AL import qualified Data.Attoparsec.ByteString.Char8 as A8 import Data.ByteString.Builder import qualified Data.DList as D @@ -63,8 +64,8 @@ parseLogOld :: A.Parser a -> L.ByteString -> Log a parseLogOld = parseLogOldWithUUID . const parseLogOldWithUUID :: (UUID -> A.Parser a) -> L.ByteString -> Log a -parseLogOldWithUUID parser = fromMaybe M.empty . A.maybeResult - . A.parse (logParserOld parser) +parseLogOldWithUUID parser = fromMaybe M.empty . AL.maybeResult + . AL.parse (logParserOld parser) logParserOld :: (UUID -> A.Parser a) -> A.Parser (Log a) logParserOld parser = M.fromListWith best <$> parseLogLines go