diff --git a/.gitignore b/.gitignore index 02f82a6..8d43764 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .cabal-sandbox cabal.sandbox.config dist/ +.stack-work diff --git a/Data/Binary/Bits/Get.hs b/Data/Binary/Bits/Get.hs index 1f7fc47..44f8d63 100644 --- a/Data/Binary/Bits/Get.hs +++ b/Data/Binary/Bits/Get.hs @@ -272,7 +272,6 @@ newtype BitGet a = B { runState :: S -> Get (S,a) } instance Monad BitGet where return x = B $ \s -> return (s,x) - fail str = B $ \s -> putBackState s >> fail str (B f) >>= g = B $ \s -> do (s',a) <- f s runState (g a) s' diff --git a/Data/Binary/Bits/Internal.hs b/Data/Binary/Bits/Internal.hs index 5869a89..39e55b8 100644 --- a/Data/Binary/Bits/Internal.hs +++ b/Data/Binary/Bits/Internal.hs @@ -116,13 +116,13 @@ shiftr_w32 :: Word32 -> Int -> Word32 shiftr_w64 :: Word64 -> Int -> Word64 #if defined(__GLASGOW_HASKELL__) && !defined(__HADDOCK__) -shiftl_w8 (W8# w) (I# i) = W8# (w `uncheckedShiftL#` i) -shiftl_w16 (W16# w) (I# i) = W16# (w `uncheckedShiftL#` i) -shiftl_w32 (W32# w) (I# i) = W32# (w `uncheckedShiftL#` i) +shiftl_w8 w i = w `unsafeShiftL` i +shiftl_w16 w i = w `unsafeShiftL` i +shiftl_w32 w i = w `unsafeShiftL` i -shiftr_w8 (W8# w) (I# i) = W8# (w `uncheckedShiftRL#` i) -shiftr_w16 (W16# w) (I# i) = W16# (w `uncheckedShiftRL#` i) -shiftr_w32 (W32# w) (I# i) = W32# (w `uncheckedShiftRL#` i) +shiftr_w8 w i = w `unsafeShiftR` i +shiftr_w16 w i = w `unsafeShiftR` i +shiftr_w32 w i = w `unsafeShiftR` i #if WORD_SIZE_IN_BITS < 64 diff --git a/stack.yaml b/stack.yaml new file mode 100644 index 0000000..9d857a1 --- /dev/null +++ b/stack.yaml @@ -0,0 +1,67 @@ +# This file was automatically generated by 'stack init' +# +# Some commonly used options have been documented as comments in this file. +# For advanced use and comprehensive documentation of the format, please see: +# https://docs.haskellstack.org/en/stable/yaml_configuration/ + +# Resolver to choose a 'specific' stackage snapshot or a compiler version. +# A snapshot resolver dictates the compiler version and the set of packages +# to be used for project dependencies. For example: +# +# resolver: lts-3.5 +# resolver: nightly-2015-09-21 +# resolver: ghc-7.10.2 +# +# The location of a snapshot can be provided as a file or url. Stack assumes +# a snapshot provided as a file might change, whereas a url resource does not. +# +# resolver: ./custom-snapshot.yaml +# resolver: https://example.com/snapshots/2018-01-01.yaml +resolver: + url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/21/6.yaml + +# User packages to be built. +# Various formats can be used as shown in the example below. +# +# packages: +# - some-directory +# - https://example.com/foo/bar/baz-0.0.2.tar.gz +# subdirs: +# - auto-update +# - wai +packages: +- . +# Dependency packages to be pulled from upstream that are not in the resolver. +# These entries can reference officially published versions as well as +# forks / in-progress versions pinned to a git hash. For example: +# +# extra-deps: +# - acme-missiles-0.3 +# - git: https://github.com/commercialhaskell/stack.git +# commit: e7b331f14bcffb8367cd58fbfc8b40ec7642100a +# +# extra-deps: [] + +# Override default flag values for local packages and extra-deps +# flags: {} + +# Extra package databases containing global packages +# extra-package-dbs: [] + +# Control whether we use the GHC we find on the path +# system-ghc: true +# +# Require a specific version of stack, using version ranges +# require-stack-version: -any # Default +# require-stack-version: ">=2.9" +# +# Override the architecture used by stack, especially useful on Windows +# arch: i386 +# arch: x86_64 +# +# Extra directories used by stack for building +# extra-include-dirs: [/path/to/dir] +# extra-lib-dirs: [/path/to/dir] +# +# Allow a newer minor version of GHC than the snapshot specifies +# compiler-check: newer-minor diff --git a/stack.yaml.lock b/stack.yaml.lock new file mode 100644 index 0000000..59b8474 --- /dev/null +++ b/stack.yaml.lock @@ -0,0 +1,13 @@ +# This file was autogenerated by Stack. +# You should not edit this file by hand. +# For more information, please see the documentation at: +# https://docs.haskellstack.org/en/stable/lock_files + +packages: [] +snapshots: +- completed: + sha256: 2e7d4a730d8eb5373b2d383fac84efcf7c81e3b7a5fce71b4c2e19a1768f25a6 + size: 640239 + url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/21/6.yaml + original: + url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/21/6.yaml