packages feed

finite-field 0.9.0 → 0.10.0

raw patch · 6 files changed

+59/−18 lines, 6 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

- Data.FiniteField.PrimeField: instance GHC.TypeLits.KnownNat p => Data.FiniteField.Base.FiniteField (Data.FiniteField.PrimeField.PrimeField p)
- Data.FiniteField.PrimeField: instance GHC.TypeLits.KnownNat p => Data.Hashable.Class.Hashable (Data.FiniteField.PrimeField.PrimeField p)
- Data.FiniteField.PrimeField: instance GHC.TypeLits.KnownNat p => GHC.Enum.Bounded (Data.FiniteField.PrimeField.PrimeField p)
- Data.FiniteField.PrimeField: instance GHC.TypeLits.KnownNat p => GHC.Enum.Enum (Data.FiniteField.PrimeField.PrimeField p)
- Data.FiniteField.PrimeField: instance GHC.TypeLits.KnownNat p => GHC.Num.Num (Data.FiniteField.PrimeField.PrimeField p)
- Data.FiniteField.PrimeField: instance GHC.TypeLits.KnownNat p => GHC.Read.Read (Data.FiniteField.PrimeField.PrimeField p)
- Data.FiniteField.PrimeField: instance GHC.TypeLits.KnownNat p => GHC.Real.Fractional (Data.FiniteField.PrimeField.PrimeField p)
+ Data.FiniteField.PrimeField: instance GHC.TypeNats.KnownNat p => Data.FiniteField.Base.FiniteField (Data.FiniteField.PrimeField.PrimeField p)
+ Data.FiniteField.PrimeField: instance GHC.TypeNats.KnownNat p => Data.Hashable.Class.Hashable (Data.FiniteField.PrimeField.PrimeField p)
+ Data.FiniteField.PrimeField: instance GHC.TypeNats.KnownNat p => GHC.Enum.Bounded (Data.FiniteField.PrimeField.PrimeField p)
+ Data.FiniteField.PrimeField: instance GHC.TypeNats.KnownNat p => GHC.Enum.Enum (Data.FiniteField.PrimeField.PrimeField p)
+ Data.FiniteField.PrimeField: instance GHC.TypeNats.KnownNat p => GHC.Num.Num (Data.FiniteField.PrimeField.PrimeField p)
+ Data.FiniteField.PrimeField: instance GHC.TypeNats.KnownNat p => GHC.Read.Read (Data.FiniteField.PrimeField.PrimeField p)
+ Data.FiniteField.PrimeField: instance GHC.TypeNats.KnownNat p => GHC.Real.Fractional (Data.FiniteField.PrimeField.PrimeField p)

Files

.travis.yml view
@@ -1,5 +1,6 @@ language: c sudo: false+dist: bionic  cache:   directories:@@ -12,22 +13,34 @@  matrix:   include:-    - env: CABALVER=1.18 GHCVER=7.6.3-      compiler: ": #GHC 7.6.3"-      addons: {apt: {packages: [cabal-install-1.18,ghc-7.6.3,alex-3.1.4,happy-1.19.5], sources: [hvr-ghc]}}-    - env: CABALVER=1.18 GHCVER=7.8.3 COVERAGE=1-      compiler: ": #GHC 7.8.3"-      addons: {apt: {packages: [cabal-install-1.18,ghc-7.8.3,alex-3.1.4,happy-1.19.5], sources: [hvr-ghc]}}-    - env: CABALVER=1.22 GHCVER=7.10.3+    - env: CABALVER=2.0 GHCVER=7.8.4 COVERAGE=1+      compiler: ": #GHC 7.8.4"+      addons: {apt: {packages: [cabal-install-2.0,ghc-7.8.4,alex-3.1.7,happy-1.19.5], sources: [hvr-ghc]}}+    - env: CABALVER=2.0 GHCVER=7.10.3       compiler: ": #GHC 7.10.3"-      addons: {apt: {packages: [cabal-install-1.22,ghc-7.10.3,alex-3.1.4,happy-1.19.5], sources: [hvr-ghc]}}-    - env: CABALVER=1.24 GHCVER=8.0.1-      compiler: ": #GHC 8.0.1"-      addons: {apt: {packages: [cabal-install-1.24,ghc-8.0.1,alex-3.1.4,happy-1.19.5], sources: [hvr-ghc]}}+      addons: {apt: {packages: [cabal-install-2.0,ghc-7.10.3,alex-3.1.7,happy-1.19.5], sources: [hvr-ghc]}}+    - env: CABALVER=2.0 GHCVER=8.0.2+      compiler: ": #GHC 8.0.2"+      addons: {apt: {packages: [cabal-install-2.0,ghc-8.0.2,alex-3.1.7,happy-1.19.5], sources: [hvr-ghc]}}+    - env: CABALVER=2.0 GHCVER=8.2.2+      compiler: ": #GHC 8.2.2"+      addons: {apt: {packages: [cabal-install-2.0,ghc-8.2.2,alex-3.1.7,happy-1.19.5], sources: [hvr-ghc]}}+    - env: CABALVER=2.0 GHCVER=8.4.4+      compiler: ": #GHC 8.4.4"+      addons: {apt: {packages: [cabal-install-2.0,ghc-8.4.4,alex-3.1.7,happy-1.19.5], sources: [hvr-ghc]}}+    - env: CABALVER=2.0 GHCVER=8.6.5+      compiler: ": #GHC 8.6.5"+      addons: {apt: {packages: [cabal-install-2.0,ghc-8.6.5,alex-3.1.7,happy-1.19.5], sources: [hvr-ghc]}}+    - env: CABALVER=2.4 GHCVER=8.8.4+      compiler: ": #GHC 8.8.4"+      addons: {apt: {packages: [cabal-install-2.4,ghc-8.8.4,alex-3.1.7,happy-1.19.5], sources: [hvr-ghc]}}+    - env: CABALVER=2.4 GHCVER=8.10.2+      compiler: ": #GHC 8.10.2"+      addons: {apt: {packages: [cabal-install-2.4,ghc-8.10.2,alex-3.1.7,happy-1.19.5], sources: [hvr-ghc]}}  before_install:  - unset CC- - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:/opt/alex/3.1.4/bin:/opt/happy/1.19.5/bin:~/.cabal/bin:$PATH+ - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:/opt/alex/3.1.7/bin:/opt/happy/1.19.5/bin:~/.cabal/bin:$PATH  install:  - cabal --version
CHANGELOG.markdown view
@@ -1,3 +1,12 @@+0.10.0+------+* fix `toEnum` to work when `p` is beyond Int's `maxBound`.++0.9.0+-----+* use `tasty` instead of `test-framework` for testing+* add `UseGHCTypeLits` flag to switch to use GHC's type-level natural numbers instead of `type-level-numbers` package+ 0.8.0 ----- * remove dependency on `algebra` package, since it is outdated and not compatible with recent version of other packages
README.md view
@@ -1,4 +1,8 @@ finite-field ============ -[![Build Status](https://secure.travis-ci.org/msakai/finite-field.png?branch=master)](http://travis-ci.org/msakai/finite-field) [![Hackage](https://budueba.com/hackage/finite-field)](https://hackage.haskell.org/package/finite-field) [![Coverage Status](https://coveralls.io/repos/msakai/finite-field/badge.svg)](https://coveralls.io/r/msakai/finite-field)+[![Build Status](https://travis-ci.org/msakai/finite-field.svg?branch=master)](https://travis-ci.org/msakai/finite-field)+[![Hackage](https://img.shields.io/hackage/v/finite-field.svg)](https://hackage.haskell.org/package/finite-field)+[![Hackage Deps](https://img.shields.io/hackage-deps/v/finite-field.svg)](https://packdeps.haskellers.com/feed?needle=finite-field)+[![Coverage Status](https://coveralls.io/repos/msakai/finite-field/badge.svg)](https://coveralls.io/r/msakai/finite-field)+[![License](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)
finite-field.cabal view
@@ -1,5 +1,5 @@ Name:		finite-field-Version:	0.9.0+Version:	0.10.0 License:	BSD3 License-File:	COPYING Author:		Masahiro Sakai (masahiro.sakai@gmail.com)@@ -18,6 +18,15 @@    .travis.yml    .gitignore Build-Type: Simple+Tested-With:+   GHC ==7.8.4+   GHC ==7.10.3+   GHC ==8.0.2+   GHC ==8.2.2+   GHC ==8.4.4+   GHC ==8.6.5+   GHC ==8.8.4+   GHC ==8.10.2  Flag UseGHCTypeLits   Description: set GHC.TypeLits module@@ -62,8 +71,8 @@       deepseq,       hashable,       tasty >=0.10.1,-      tasty-hunit ==0.9.*,-      tasty-quickcheck ==0.8.*,+      tasty-hunit >=0.9 && <0.11,+      tasty-quickcheck >=0.8 && <0.11,       tasty-th,       QuickCheck >=2.5 && <3,       finite-field,
src/Data/FiniteField/PrimeField.hs view
@@ -97,8 +97,10 @@  instance KnownNat p => Enum (PrimeField p) where   toEnum x-    | toInt (minBound :: PrimeField p) <= x && x <= toInt (maxBound :: PrimeField p) = fromIntegral x+    | toInteger (minBound :: PrimeField p) <= x' && x' <= toInteger (maxBound :: PrimeField p) = PrimeField x'     | otherwise = error "PrimeField.toEnum: bad argument"+    where+      x' = fromIntegral x   fromEnum = toInt  instance Ord (PrimeField p) where
test/TestPrimeField.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE TemplateHaskell, ScopedTypeVariables, GADTs, DataKinds, CPP #-}+{-# LANGUAGE TemplateHaskell, ScopedTypeVariables, GADTs, DataKinds, CPP, TypeOperators #-} {-# OPTIONS_GHC -fcontext-stack=32 #-}  import Prelude hiding (toInteger)@@ -193,6 +193,10 @@       a = toEnum (-1)   (ret :: Either SomeException (PrimeField p)) <- QM.run $ try $ evaluate $ a   QM.assert $ isLeft ret++-- https://github.com/msakai/finite-field/issues/2+case_toEnum_big_integer =+  (toEnum 7 :: $(primeField (2^127 - 1))) @?= 7    -- ----------------------------------------------------------------------