word-compat (empty) → 0.0
raw patch · 4 files changed
+150/−0 lines, 4 filesdep +basedep +ghc-prim
Dependencies added: base, ghc-prim
Files
- CHANGELOG.md +5/−0
- src/GHC/Int/Compat.hs +45/−0
- src/GHC/Word/Compat.hs +59/−0
- word-compat.cabal +41/−0
+ CHANGELOG.md view
@@ -0,0 +1,5 @@+# Revision history for word-compat++## 0.1.0.0 -- YYYY-mm-dd++* First version. Released on an unsuspecting world.
+ src/GHC/Int/Compat.hs view
@@ -0,0 +1,45 @@+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE MagicHash #-}+{-# LANGUAGE ViewPatterns #-}+{-# LANGUAGE CPP #-}+module GHC.Int.Compat (Int8, pattern GHC.Int.Compat.I8#,+ Int16, pattern GHC.Int.Compat.I16#,+ Int32, pattern GHC.Int.Compat.I32#,+ Int64(..),+ Int(..),++ uncheckedIShiftL64#, uncheckedIShiftRA64#,+ -- * Equality operators+ -- | See GHC.Classes#matching_overloaded_methods_in_rules+ eqInt, neInt, gtInt, geInt, ltInt, leInt,+ eqInt8, neInt8, gtInt8, geInt8, ltInt8, leInt8,+ eqInt16, neInt16, gtInt16, geInt16, ltInt16, leInt16,+ eqInt32, neInt32, gtInt32, geInt32, ltInt32, leInt32,+ eqInt64, neInt64, gtInt64, geInt64, ltInt64, leInt64) where++import GHC.Prim+import GHC.Int as W++pattern I8# :: Int# -> Int8+#if MIN_VERSION_ghc_prim(0,8,0)+pattern I8# x <- (W.I8# (int8ToInt# -> x)) where+ I8# x = W.I8# (intToInt8# x)+#else+pattern I8# = I8#+#endif++pattern I16# :: Int# -> Int16+#if MIN_VERSION_ghc_prim(0,8,0)+pattern I16# x <- (W.I16# (int16ToInt# -> x)) where+ I16# x = W.I16# (intToInt16# x)+#else+pattern I16# = I16#+#endif++pattern I32# :: Int# -> Int32+#if MIN_VERSION_ghc_prim(0,8,0)+pattern I32# x <- (W.I32# (int32ToInt# -> x)) where+ I32# x = W.I32# (intToInt32# x)+#else+pattern I32# = I32#+#endif
+ src/GHC/Word/Compat.hs view
@@ -0,0 +1,59 @@+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE MagicHash #-}+{-# LANGUAGE ViewPatterns #-}+{-# LANGUAGE CPP #-}+module GHC.Word.Compat (Word8, pattern GHC.Word.Compat.W8#,+ Word16, pattern GHC.Word.Compat.W16#,+ Word32, pattern GHC.Word.Compat.W32#,+ Word64(..),+ Word(..),+ + -- * Shifts+ uncheckedShiftL64#,+ uncheckedShiftRL64#,++ -- * Byte swapping+ byteSwap16,+ byteSwap32,+ byteSwap64,++ -- * Bit reversal+ bitReverse8,+ bitReverse16,+ bitReverse32,+ bitReverse64,++ -- * Equality operators+ -- | See GHC.Classes#matching_overloaded_methods_in_rules+ eqWord, neWord, gtWord, geWord, ltWord, leWord,+ eqWord8, neWord8, gtWord8, geWord8, ltWord8, leWord8,+ eqWord16, neWord16, gtWord16, geWord16, ltWord16, leWord16,+ eqWord32, neWord32, gtWord32, geWord32, ltWord32, leWord32,+ eqWord64, neWord64, gtWord64, geWord64, ltWord64, leWord64) where++import GHC.Prim+import GHC.Word as W++pattern W8# :: Word# -> Word8+#if MIN_VERSION_ghc_prim(0,8,0)+pattern W8# x <- (W.W8# (word8ToWord# -> x)) where+ W8# x = W.W8# (wordToWord8# x)+#else+pattern W8# = W8#+#endif++pattern W16# :: Word# -> Word16+#if MIN_VERSION_ghc_prim(0,8,0)+pattern W16# x <- (W.W16# (word16ToWord# -> x)) where+ W16# x = W.W16# (wordToWord16# x)+#else+pattern W16# = W16#+#endif++pattern W32# :: Word# -> Word32+#if MIN_VERSION_ghc_prim(0,8,0)+pattern W32# x <- (W.W32# (word32ToWord# -> x)) where+ W32# x = W.W32# (wordToWord32# x)+#else+pattern W32# = W32#+#endif
+ word-compat.cabal view
@@ -0,0 +1,41 @@+cabal-version: 2.4+name: word-compat+version: 0.0++-- A short (one-line) description of the package.+synopsis: Compatibility shim for the Int/Word internal change in GHC 9.2++-- A longer description of the package.+description: This package offers a workaround for the breaking change in Word/Int. Import GHC.Word.Compat in place of GHC.Word to take effect.++-- A URL where users can report bugs.+-- bug-reports:++-- The license under which the package is released.+license: BSD-3-Clause+author: Fumiaki Kinoshita+maintainer: fumiexcel@gmail.com++-- A copyright notice.+copyright: Copyright (c) 2022 Fumiaki Kinoshita+category: Data+extra-source-files: CHANGELOG.md++source-repository head+ type: git+ location: git@github.com:fumieval/word-compat++library+ exposed-modules:+ GHC.Word.Compat+ GHC.Int.Compat++ -- Modules included in this executable, other than Main.+ -- other-modules:++ -- LANGUAGE extensions used by modules in this package.+ -- other-extensions:+ build-depends: base >= 4.10 && <5, ghc-prim+ hs-source-dirs: src+ ghc-options: -Wall -Wcompat+ default-language: Haskell2010