flatparse 0.5.4.3 → 0.5.4.4
raw patch · 3 files changed
+13/−3 lines, 3 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- FlatParse.Minimal.Internal: undefinedFinalizer :: ForeignPtrContents
Files
- flatparse.cabal +3/−1
- src/FlatParse/Minimal.hs +4/−1
- src/FlatParse/Minimal/Internal.hs +6/−1
flatparse.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack name: flatparse-version: 0.5.4.3+version: 0.5.4.4 synopsis: High-performance parsing from strict bytestrings description: @Flatparse@ is a high-performance parsing library for strict bytestring input. See the README for more information: <https://github.com/AndrasKovacs/flatparse>.@@ -27,6 +27,8 @@ , GHC == 9.4.8 , GHC == 9.6.7 , GHC == 9.8.4+ , GHC == 9.10.3+ , GHC == 9.12.4 extra-source-files: README.md
src/FlatParse/Minimal.hs view
@@ -196,10 +196,13 @@ -- constructed from the input buffer! unsafeEmbedBasicIO :: FPB.ParserIO () a -> Parser a unsafeEmbedBasicIO = \(FPB.ParserT f) -> Parser \eob s st ->+#if MIN_VERSION_base(4,15,0)+ case f FinalPtr eob s st of+#else case f undefinedFinalizer eob s st of+#endif (# st, (# (# !a, s #) | | #) #) -> (# a, s, st #) (# st, _ #) -> parseError# st- -- | Run a @FlatParse.Minimal@ parser inside a @FlatParse.Basic@ parser. {-# inline embedMinimal #-}
src/FlatParse/Minimal/Internal.hs view
@@ -1,13 +1,16 @@-{-# language EmptyCase, PolyKinds, KindSignatures, RankNTypes #-}+{-# language EmptyCase, PolyKinds, KindSignatures, RankNTypes, CPP #-} {-# options_ghc -Wno-incomplete-patterns #-} module FlatParse.Minimal.Internal where import GHC.Exts import Control.Exception++#if !MIN_VERSION_base(4,15,0) import Data.IORef import System.IO.Unsafe import GHC.ForeignPtr+#endif data ParseException = ParseException deriving Show instance Exception ParseException@@ -16,9 +19,11 @@ parseError# :: forall r (b :: TYPE r). State# RealWorld -> b parseError# = \st -> case raiseIO# (toException ParseException) st of +#if !MIN_VERSION_base(4,15,0) {-# noinline undefinedFinalizer #-} -- | Dummy finalizer for 'unsafeEmbedBasicIO'. undefinedFinalizer :: ForeignPtrContents -- IORef Finalizers undefinedFinalizer = PlainForeignPtr $ unsafeDupablePerformIO $ newIORef $ error "unsafeEmbedBasicIO: attempted to build ByteString from buffer"+#endif