bytestring-lexing 0.5.0.7 → 0.5.0.8
raw patch · 8 files changed
+59/−55 lines, 8 filesdep ~basePVP ok
version bump matches the API change (PVP)
Dependency ranges changed: base
API changes (from Hackage documentation)
Files
- README.md +18/−28
- bytestring-lexing.cabal +15/−7
- src/Data/ByteString/Lex/Fractional.hs +2/−2
- src/Data/ByteString/Lex/Integral.hs +10/−4
- src/Data/ByteString/Lex/Internal.hs +2/−2
- test/Fractional.hs +5/−5
- test/Integral.hs +4/−4
- test/Main.hs +3/−3
README.md view
@@ -13,49 +13,39 @@ parsers for integral values. And as of version 0.5.0 it offers (to my knowledge) the best-in-show parser for fractional/floating numbers. A record of these benchmarks can be found-[here](http://code.haskell.org/~wren/bytestring-lexing/bench/html)+[here](https://github.com/wrengr/bytestring-lexing/tree/master/bench/html) ## Install This is a simple package and should be easy to install. You should-be able to use any of the standard methods to install it.+be able to use the standard: - -- With cabal-install and without the source: $> cabal install bytestring-lexing- - -- With cabal-install and with the source already:- $> cd bytestring-lexing- $> cabal install- - -- Without cabal-install, but with the source already:- $> cd bytestring-lexing- $> runhaskell Setup.hs configure --user- $> runhaskell Setup.hs build- $> runhaskell Setup.hs haddock --hyperlink-source- $> runhaskell Setup.hs copy- $> runhaskell Setup.hs register -The Haddock step is optional. - ### Testing -If you want to run the test suite, use the following standard method-(with `runhaskell Setup.hs` in lieu of `cabal`, if necessary):+To run the test suite (without coverage information), you can use+the standard method (with `runhaskell Setup.hs` in lieu of `cabal`,+if necessary): $> cd bytestring-lexing- $> cabal configure --enable-tests --enable-coverage+ $> cabal configure --enable-tests $> cabal build- $> cabal test --keep-tix-files+ $> cabal test -The results of the code coverage are in+If you want coverage information as well, there are a few options+depending on your version of Cabal. For modern cabal with v2/nix-style+builds, add `--enable-coverage` to the configure step, and the+results will be located at+`./dist-newstyle/build/$ARCH/$GHC/bytestring-lexing-$VERSION/opt/hpc/vanilla/html/bytestring-lexing-$VERSION/hpc_index.html`.+For v1/classic builds, add `--enable-coverage` to the configure+step and also add `--keep-tix-files` to the test step, and the+results are instead located at `./dist/hpc/vanilla/html/bytestring-lexing-$VERSION/hpc_index.html`.-If you're not interested in the coverage of the test suite, then-you needn't pass the `--enable-coverage` nor `--keep-tix-files`-flags. Note that older versions of cabal used the flag name-`--enable-library-coverage` instead of `--enable-coverage`. And-IIRC hpc integration in cabal was broken for ghc-7.6.+For very old versions of Cabal, you must use `--enable-library-coverage`+in lieu of `--enable-coverage`. ### Benchmarks@@ -140,7 +130,7 @@ ## Benchmarks: Version 0.5.0 (2015-05-06) The Criterion output of the benchmark discussed below, [is available-here](http://code.haskell.org/~wren/bytestring-lexing/bench/html/readExponential-0.5.0_ereshkigal.html).+here](https://github.com/wrengr/bytestring-lexing/blob/master/bench/html/readExponential-0.5.0_ereshkigal.html). The main competitors we compare against are the previous version of bytestring-lexing (which already surpassed text and attoparsec/scientific) and bytestring-read which was the previous
bytestring-lexing.cabal view
@@ -1,5 +1,5 @@ ------------------------------------------------------------------- wren gayle romano <wren@cpan.org> ~ 2021.10.16+-- wren gayle romano <wren@cpan.org> ~ 2021.11.02 ---------------------------------------------------------------- -- Cabal >=1.10 is required by Hackage.@@ -7,12 +7,13 @@ Build-Type: Simple Name: bytestring-lexing-Version: 0.5.0.7+Version: 0.5.0.8 Stability: provisional-Homepage: https://wrengr.org/+Homepage: https://wrengr.org/software/hackage.html+Bug-Reports: https://github.com/wrengr/bytestring-lexing/issues Author: wren gayle romano, Don Stewart Maintainer: wren@cpan.org-Copyright: Copyright (c) 2012--2021 wren gayle romano, 2008--2011 Don Stewart+Copyright: Copyright (c) 2012–2021 wren gayle romano, 2008–2011 Don Stewart License: BSD3 License-File: LICENSE @@ -32,7 +33,7 @@ parser for fractional/floating numbers. . Some benchmarks for this package can be found at:- <http://code.haskell.org/~wren/bytestring-lexing/bench/html>+ <https://github.com/wrengr/bytestring-lexing/tree/master/bench/html> ---------------------------------------------------------------- Extra-source-files:@@ -47,7 +48,8 @@ GHC ==8.6.5, GHC ==8.8.4, GHC ==8.10.3,- GHC ==9.0.1+ GHC ==9.0.1,+ GHC ==9.2.1 Source-Repository head Type: git@@ -65,7 +67,13 @@ -- These lower bounds are probably more restrictive than -- necessary. But then, we don't maintain any CI tests for -- older versions, so these are the lowest bounds we've verified.- Build-Depends: base >= 4.5 && < 4.16+ --+ -- TODO(2021-10-23): bytestring 0.11.0.0 changed the internal+ -- representation of ByteStrings to remove the offset. While+ -- they do offer pattern synonyms for backwards combatibility,+ -- we should re-verify that our code doesn't depend on the details.+ -- <https://github.com/haskell/bytestring/pull/175>+ Build-Depends: base >= 4.5 && < 4.17 , bytestring >= 0.9.2.1 && < 0.12 ----------------------------------------------------------------
src/Data/ByteString/Lex/Fractional.hs view
@@ -1,10 +1,10 @@ {-# OPTIONS_GHC -Wall -fwarn-tabs #-} {-# LANGUAGE BangPatterns, ScopedTypeVariables #-} ------------------------------------------------------------------- 2015.06.11+-- 2021.10.17 -- | -- Module : Data.ByteString.Lex.Fractional--- Copyright : Copyright (c) 2015--2019 wren gayle romano+-- Copyright : Copyright (c) 2015--2021 wren gayle romano -- License : BSD2 -- Maintainer : wren@cpan.org -- Stability : provisional
src/Data/ByteString/Lex/Integral.hs view
@@ -1,10 +1,10 @@ {-# OPTIONS_GHC -Wall -fwarn-tabs #-} {-# LANGUAGE BangPatterns #-} ------------------------------------------------------------------- 2015.06.11+-- 2021.10.17 -- | -- Module : Data.ByteString.Lex.Integral--- Copyright : Copyright (c) 2010--2019 wren gayle romano+-- Copyright : Copyright (c) 2010--2021 wren gayle romano -- License : BSD2 -- Maintainer : wren@cpan.org -- Stability : provisional@@ -335,12 +335,15 @@ loop q (p `plusPtr` negate 2) | n >= 10 = write2 n p | otherwise = poke p (0x30 + fromIntegral n)- + write2 !i0 !p = do let i = fromIntegral i0; j = i + i poke p (getDigit $! j + 1) poke (p `plusPtr` negate 1) (getDigit j) +-- TODO(2021-10-23): We might should replace this with the 'Addr#'+-- hack that newer Bytestring uses for hexadecimal stuff:+-- <https://github.com/haskell/bytestring/pull/418> packDecimal_digits :: ByteString {-# NOINLINE packDecimal_digits #-} packDecimal_digits = BS8.pack@@ -349,7 +352,6 @@ \4041424344454647484950515253545556575859\ \6061626364656667686970717273747576777879\ \8081828384858687888990919293949596979899"- -- BUG: jEdit syntax highlighting fail: -> ---------------------------------------------------------------- ----------------------------------------------------------------@@ -479,6 +481,10 @@ -- TODO: benchmark against the magichash hack used in Warp.+-- TODO(2021-10-23): Benchmark against the 'Addr#' hack that newer+-- Bytestring uses for hexadecimal stuff:+-- <https://github.com/haskell/bytestring/pull/418>+-- -- | The lower-case ASCII hexadecimal digits, in numerical order -- for use as a lookup table. hexDigits :: ByteString
src/Data/ByteString/Lex/Internal.hs view
@@ -1,10 +1,10 @@ {-# OPTIONS_GHC -Wall -fwarn-tabs #-} {-# LANGUAGE BangPatterns #-} ------------------------------------------------------------------- 2015.06.11+-- 2021.10.17 -- | -- Module : Data.ByteString.Lex.Internal--- Copyright : Copyright (c) 2010--2019 wren gayle romano+-- Copyright : Copyright (c) 2010--2021 wren gayle romano -- License : BSD2 -- Maintainer : wren@cpan.org -- Stability : provisional
test/Fractional.hs view
@@ -1,12 +1,12 @@ {-# OPTIONS_GHC -Wall -fwarn-tabs #-} {-# LANGUAGE RankNTypes, ScopedTypeVariables #-} ------------------------------------------------------------------- 2015.06.11+-- 2021.10.17 -- | -- Module : test/Fractional--- Copyright : Copyright (c) 2015 wren gayle romano+-- Copyright : Copyright (c) 2015--2021 wren gayle romano -- License : BSD2--- Maintainer : wren@community.haskell.org+-- Maintainer : wren@cpan.org -- Stability : test framework -- Portability : ScopedTypeVariables + RankNTypes --@@ -27,7 +27,7 @@ ---------------------------------------------------------------- -- We reimplement Data.Proxy to avoid build errors on older systems -data Proxy a = Proxy +data Proxy a = Proxy asProxyTypeOf :: a -> Proxy a -> a asProxyTypeOf a _ = a@@ -238,7 +238,7 @@ -- TODO: how to properly utilize SmallCheck for this module? -- TODO: how can we set a default 'SmallCheckDepth' while still allowing @--smallcheck-depth@ to override that default? smallcheckTests :: Tasty.TestTree-smallcheckTests = +smallcheckTests = -- Tasty.localOption (SC.SmallCheckDepth (2 ^ (8 :: Int))) $ Tasty.testGroup "(checked by SmallCheck)" [
test/Integral.hs view
@@ -1,12 +1,12 @@ {-# OPTIONS_GHC -Wall -fwarn-tabs #-} {-# LANGUAGE RankNTypes, FlexibleContexts #-} ------------------------------------------------------------------- 2015.06.11+-- 2021.10.17 -- | -- Module : test/Integral--- Copyright : Copyright (c) 2010--2015 wren gayle romano+-- Copyright : Copyright (c) 2010--2021 wren gayle romano -- License : BSD2--- Maintainer : wren@community.haskell.org+-- Maintainer : wren@cpan.org -- Stability : test framework -- Portability : FlexibleContexts + RankNTypes --@@ -197,7 +197,7 @@ -- TODO: how can we set our default 'SmallCheckDepth' to 2^8 while still allowing @--smallcheck-depth@ to override that default? smallcheckTests :: Tasty.TestTree-smallcheckTests = +smallcheckTests = Tasty.localOption (SC.SmallCheckDepth (2 ^ (8 :: Int))) $ Tasty.testGroup "(checked by SmallCheck)" [ sc_testGroup
test/Main.hs view
@@ -1,11 +1,11 @@ {-# OPTIONS_GHC -Wall -fwarn-tabs #-} ------------------------------------------------------------------- 2015.06.11+-- 2021.10.17 -- | -- Module : test/Main--- Copyright : Copyright (c) 2015 wren gayle romano+-- Copyright : Copyright (c) 2015--2021 wren gayle romano -- License : BSD2--- Maintainer : wren@community.haskell.org+-- Maintainer : wren@cpan.org -- Stability : benchmark -- Portability : Haskell98 --