integer-logarithms 1.0.3 → 1.0.3.1
raw patch · 4 files changed
+88/−56 lines, 4 filesdep +ghc-bignumdep +invalid-cabal-flag-settingsdep ~QuickCheckdep ~basedep ~ghc-primPVP ok
version bump matches the API change (PVP)
Dependencies added: ghc-bignum, invalid-cabal-flag-settings
Dependency ranges changed: QuickCheck, base, ghc-prim, smallcheck, tasty
API changes (from Hackage documentation)
Files
- changelog.md +6/−1
- integer-logarithms.cabal +73/−54
- src/Math/NumberTheory/Logarithms.hs +8/−0
- test-suite/Math/NumberTheory/LogarithmsTests.hs +1/−1
changelog.md view
@@ -1,3 +1,8 @@+1.0.3.1+-------++- GHC-9.0 support+ 1.0.3 ----- @@ -6,7 +11,7 @@ 1.0.2.2 ------- -- GHC-8.6.1 compatible relase+- GHC-8.6.1 compatible release - Fix compilation when `+check-bounds` 1.0.2.1
integer-logarithms.cabal view
@@ -1,16 +1,17 @@ name: integer-logarithms-version: 1.0.3-cabal-version: >= 1.10+version: 1.0.3.1+cabal-version: >=1.10 author: Daniel Fischer-copyright: (c) 2011 Daniel Fischer+copyright:+ (c) 2011 Daniel Fischer, 2017-2020 Oleg Grenrus, Andrew Lelechenko+ license: MIT license-file: LICENSE maintainer: Oleg Grenrus <oleg.grenrus@iki.fi> build-type: Simple stability: Provisional-homepage: https://github.com/Bodigrim/integer-logarithms-bug-reports: https://github.com/Bodigrim/integer-logarithms/issues-+homepage: https://github.com/haskellari/integer-logarithms+bug-reports: https://github.com/haskellari/integer-logarithms/issues synopsis: Integer logarithms. description: "Math.NumberTheory.Logarithms" and "Math.NumberTheory.Powers.Integer"@@ -21,91 +22,109 @@ additional functions in migrated modules. category: Math, Algorithms, Number Theory- tested-with:- GHC==7.0.4,- GHC==7.2.2,- GHC==7.4.2,- GHC==7.6.3,- GHC==7.8.4,- GHC==7.10.3,- GHC==8.0.2,- GHC==8.2.2,- GHC==8.4.4,- GHC==8.6.4,- GHC==8.8.1+ GHC ==7.0.4+ || ==7.2.2+ || ==7.4.2+ || ==7.6.3+ || ==7.8.4+ || ==7.10.3+ || ==8.0.2+ || ==8.2.2+ || ==8.4.4+ || ==8.6.4+ || ==8.8.4+ || ==8.10.2+ , GHCJS ==8.4 -extra-source-files : readme.md changelog.md+extra-source-files:+ changelog.md+ readme.md flag integer-gmp- description: integer-gmp or integer-simple- default: True- manual: False+ description: integer-gmp or integer-simple+ default: True+ manual: False flag check-bounds- description: Replace unsafe array operations with safe ones- default: False- manual: True+ description: Replace unsafe array operations with safe ones+ default: False+ manual: True library default-language: Haskell2010- hs-source-dirs: src+ hs-source-dirs: src build-depends:- base >= 4.3 && < 4.13,- array >= 0.3 && < 0.6,- ghc-prim < 0.6+ array >=0.3 && <0.6+ , base >=4.3 && <4.16+ , ghc-prim >=0 && <0.8 - if !impl(ghc >= 7.10)- build-depends: nats >= 1.1.2 && <1.2+ if !impl(ghc >=7.10)+ build-depends: nats >=1.1.2 && <1.2 - if flag(integer-gmp)+ if impl(ghc >=9.0) build-depends:- integer-gmp < 1.1+ base >=4.15+ , ghc-bignum >=1.0 && <1.1++ if !flag(integer-gmp)+ build-depends: invalid-cabal-flag-settings <0+ else- build-depends:- integer-simple+ build-depends: base <4.15 + if flag(integer-gmp)+ build-depends: integer-gmp <1.1++ else+ build-depends: integer-simple+ exposed-modules: Math.NumberTheory.Logarithms Math.NumberTheory.Powers.Integer Math.NumberTheory.Powers.Natural- GHC.Integer.Logarithms.Compat++ -- compat module+ exposed-modules: GHC.Integer.Logarithms.Compat other-extensions: BangPatterns CPP MagicHash - ghc-options: -O2 -Wall+ ghc-options: -O2 -Wall+ if flag(check-bounds) cpp-options: -DCheckBounds source-repository head type: git- location: https://github.com/Bodigrim/integer-logarithms+ location: https://github.com/haskellari/integer-logarithms test-suite spec- type: exitcode-stdio-1.0- hs-source-dirs: test-suite- ghc-options: -Wall- main-is: Test.hs- default-language: Haskell2010+ type: exitcode-stdio-1.0+ hs-source-dirs: test-suite+ ghc-options: -Wall+ main-is: Test.hs+ default-language: Haskell2010 other-extensions:- StandaloneDeriving FlexibleContexts FlexibleInstances GeneralizedNewtypeDeriving MultiParamTypeClasses+ StandaloneDeriving+ build-depends:- base,- integer-logarithms,- tasty >= 0.10 && < 1.3,- tasty-smallcheck >= 0.8 && < 0.9,- tasty-quickcheck >= 0.8 && < 0.11,- tasty-hunit >= 0.9 && < 0.11,- QuickCheck >= 2.10 && < 2.14,- smallcheck >= 1.1.3 && < 1.2- if !impl(ghc >= 7.10)- build-depends: nats >= 1.1 && <1.2+ base+ , integer-logarithms+ , QuickCheck >=2.14.1 && <2.15+ , smallcheck >=1.2 && <1.3+ , tasty >=0.10 && <1.4+ , tasty-hunit >=0.9 && <0.11+ , tasty-quickcheck >=0.8 && <0.11+ , tasty-smallcheck >=0.8 && <0.9++ if !impl(ghc >=7.10)+ build-depends: nats ==1.1.* other-modules: Math.NumberTheory.LogarithmsTests
src/Math/NumberTheory/Logarithms.hs view
@@ -44,6 +44,10 @@ import Data.Array.Unboxed import Numeric.Natural +#ifdef MIN_VERSION_ghc_bignum+import qualified GHC.Num.Natural as BN+#endif+ import GHC.Integer.Logarithms.Compat #if MIN_VERSION_base(4,8,0) && defined(MIN_VERSION_integer_gmp) import GHC.Integer.GMP.Internals (Integer (..))@@ -316,11 +320,15 @@ fromNatural = fromIntegral naturalLog2# :: Natural -> Int#+#ifdef MIN_VERSION_ghc_bignum+naturalLog2# n = word2Int# (BN.naturalLog2# n)+#else #if MIN_VERSION_base(4,8,0) && defined(MIN_VERSION_integer_gmp) naturalLog2# (NatS# b) = wordLog2# b naturalLog2# (NatJ# n) = integerLog2# (Jp# n) #else naturalLog2# n = integerLog2# (toInteger n)+#endif #endif #if __GLASGOW_HASKELL__ < 707
test-suite/Math/NumberTheory/LogarithmsTests.hs view
@@ -68,7 +68,7 @@ naturalLog2HugeProperty :: Huge (Positive Natural) -> Bool naturalLog2HugeProperty (Huge (Positive n)) = 2 ^ l <= n && 2 ^ (l + 1) > n where- l = fromIntegral $ naturalLog2 n+ l = naturalLog2 n -- | Check that 'naturalLog10' returns the largest natural @l@ such that 10 ^ @l@ <= @n@ and 10 ^ (@l@+1) > @n@. naturalLog10Property :: Positive Natural -> Bool