Skip to content

Commit

Permalink
Merge #1990
Browse files Browse the repository at this point in the history
1990: Switch to GHC 8.10.2 r=mrBliss a=mrBliss

This is done in a number of steps, see the individual commit messages for more details.

Co-authored-by: Thomas Winant <thomas@well-typed.com>
Co-authored-by: John Ky <john.ky@iohk.io>
  • Loading branch information
3 people committed Oct 23, 2020
2 parents 0301bc8 + 0a6dd1c commit 2b48f68
Show file tree
Hide file tree
Showing 84 changed files with 144 additions and 1,229 deletions.
9 changes: 8 additions & 1 deletion .github/workflows/haskell.yml
Expand Up @@ -13,12 +13,19 @@ jobs:
strategy:
fail-fast: false
matrix:
ghc: ["8.6.5"]
ghc: ["8.6.5", "8.10.2"]
os: [ubuntu-latest, macos-latest, windows-latest]

steps:
- uses: actions/checkout@v1

- name: Patch GHC 8.10.2 linker
if: matrix.os == 'windows-latest'
run: |
sed -i \
's|C:/GitLabRunner/builds/2WeHDSFP/0/ghc/ghc/inplace/mingw/bin/ld.exe|C:/ProgramData/chocolatey/lib/ghc.8.10.2/tools/ghc-8.10.2/mingw/bin/ld.exe|g' \
C:/ProgramData/chocolatey/lib/ghc.8.10.2/tools/ghc-8.10.2/lib/settings
- name: Select build directory
run: echo "CABAL_BUILDDIR=dist" >> $GITHUB_ENV

Expand Down
18 changes: 10 additions & 8 deletions cabal.project
Expand Up @@ -9,19 +9,22 @@ packages:
hedgehog-extras

package cardano-api
ghc-options: -Werror -Wall -Wredundant-constraints -Wincomplete-record-updates -Wincomplete-uni-patterns -Wpartial-fields
ghc-options: -Werror

package cardano-cli
ghc-options: -Werror -Wall -Wredundant-constraints -Wincomplete-record-updates -Wincomplete-uni-patterns -Wpartial-fields
ghc-options: -Werror

package cardano-config
ghc-options: -Werror -Wall -Wredundant-constraints -Wincomplete-record-updates -Wincomplete-uni-patterns -Wpartial-fields
ghc-options: -Werror

package cardano-node
ghc-options: -Werror -Wall -Wredundant-constraints -Wincomplete-record-updates -Wincomplete-uni-patterns -Wpartial-fields
ghc-options: -Werror

package cardano-node-chairman
ghc-options: -Werror -Wall -Wredundant-constraints -Wincomplete-record-updates -Wincomplete-uni-patterns -Wpartial-fields
ghc-options: -Werror

package hedgehog-extras
ghc-options: -Werror

package cryptonite
-- Using RDRAND instead of /dev/urandom as an entropy source for key
Expand Down Expand Up @@ -155,8 +158,8 @@ source-repository-package
source-repository-package
type: git
location: https://github.com/input-output-hk/ouroboros-network
tag: 6a2b8922856460cccdc7015d33a14ebd28696d14
--sha256: 01sxmgm65i8lspzh600vvyn5pfwhny4bx215ksxh9lpz8kjp1lc5
tag: 4827c387a84c5cbd279d9a348368747051607cc0
--sha256: 1gfc5kvpndal9i9c7cgxbfs4zgrfysrxqswcyj8ws9law8yd9fc7
subdir:
io-sim
io-sim-classes
Expand All @@ -174,7 +177,6 @@ source-repository-package
constraints:
hedgehog >= 1.0
, bimap >= 0.4.0
, brick >= 0.47
, libsystemd-journal >= 1.4.4
, systemd >= 2.3.0
-- systemd-2.3.0 requires at least network 3.1.1.0 but it doesn't declare
Expand Down
2 changes: 0 additions & 2 deletions cardano-api/src/Cardano/Api/Crypto/Ed25519Bip32.hs
Expand Up @@ -22,9 +22,7 @@ import Cardano.Prelude hiding (show)
import Prelude (show)

import Data.ByteArray as BA (ByteArrayAccess, ScrubbedBytes, convert)
import Data.ByteString (ByteString)
import qualified Data.ByteString as BS
import GHC.Generics (Generic)
import NoThunks.Class (NoThunks, InspectHeap (..))

import Cardano.Binary (FromCBOR (..), ToCBOR (..))
Expand Down
4 changes: 2 additions & 2 deletions cardano-api/src/Cardano/Api/LocalChainSync.hs
Expand Up @@ -13,8 +13,8 @@ import Control.Concurrent.STM
import Ouroboros.Consensus.Ledger.Abstract (Query, ShowQuery)
import Ouroboros.Consensus.Ledger.SupportsMempool (ApplyTxErr, GenTx)
import Ouroboros.Network.Block (Tip)
import Ouroboros.Network.Protocol.ChainSync.Client (ChainSyncClient (..),
ClientStIdle (..), ClientStNext (..))
import Ouroboros.Network.Protocol.ChainSync.Client (ClientStIdle (..),
ClientStNext (..))
import Ouroboros.Network.Util.ShowProxy (ShowProxy)


Expand Down
1 change: 0 additions & 1 deletion cardano-api/src/Cardano/Api/TextView.hs
Expand Up @@ -27,7 +27,6 @@ import Control.Monad (fail)
import Data.Aeson (FromJSON (..), ToJSON (..), Value, object, withObject, (.:), (.=))
import Data.Aeson.Encode.Pretty (Config (..), defConfig, keyOrder)
import Data.Aeson.Types (Parser)
import Data.ByteString.Char8 (ByteString)

import qualified Data.ByteString.Base16 as Base16
import qualified Data.Text as Text
Expand Down
1 change: 0 additions & 1 deletion cardano-api/src/Cardano/Api/TxSubmit.hs
Expand Up @@ -25,7 +25,6 @@ import Ouroboros.Consensus.Cardano.Block (CardanoApplyTxErr,
GenTx (GenTxByron, GenTxShelley),
HardForkApplyTxErr (ApplyTxErrAllegra, ApplyTxErrByron, ApplyTxErrMary, ApplyTxErrShelley, ApplyTxErrWrongEra))
import Ouroboros.Consensus.HardFork.Combinator.Degenerate
import Ouroboros.Consensus.Shelley.Eras (StandardShelley)
import Ouroboros.Consensus.Shelley.Ledger (ShelleyBlock, mkShelleyTx)
import Ouroboros.Consensus.Shelley.Protocol.Crypto (StandardCrypto)

Expand Down
1 change: 0 additions & 1 deletion cardano-api/src/Cardano/Api/TxSubmit/ErrorRender.hs
Expand Up @@ -14,7 +14,6 @@ import Cardano.Chain.UTxO.Validation (TxValidationError (..), UTxOVali

import Cardano.Prelude hiding ((%))

import Data.Text (Text)
import qualified Data.Text as Text

import Formatting (build, sformat, stext, (%))
Expand Down
1 change: 0 additions & 1 deletion cardano-api/src/Cardano/Api/TxSubmit/Types.hs
Expand Up @@ -17,7 +17,6 @@ import Cardano.Prelude hiding ((%))

import Data.Aeson (ToJSON (..), Value (..))
import qualified Data.Aeson as Aeson
import Data.Text (Text)
import qualified Data.Text as Text

import Formatting (build, sformat, (%))
Expand Down
18 changes: 9 additions & 9 deletions cardano-api/src/Cardano/Api/Typed.hs
Expand Up @@ -346,8 +346,8 @@ import Prelude
import Cardano.Prelude (decodeEitherBase16)
import Data.Aeson.Encode.Pretty (encodePretty')
import Data.Bifunctor (first)
import Data.Kind (Constraint)
import Data.List as List
import Data.Kind (Constraint, Type)
import qualified Data.List as List
import qualified Data.List.NonEmpty as NonEmpty
import Data.Maybe
import Data.Proxy (Proxy (..))
Expand Down Expand Up @@ -562,10 +562,10 @@ class (Eq (VerificationKey keyrole),
=> Key keyrole where

-- | The type of cryptographic verification key, for each key role.
data VerificationKey keyrole :: *
data VerificationKey keyrole :: Type

-- | The type of cryptographic signing key, for each key role.
data SigningKey keyrole :: *
data SigningKey keyrole :: Type

-- | Get the corresponding verification key from a signing key.
getVerificationKey :: SigningKey keyrole -> VerificationKey keyrole
Expand Down Expand Up @@ -604,7 +604,7 @@ class CastSigningKeyRole keyroleA keyroleB where
castSigningKey :: SigningKey keyroleA -> SigningKey keyroleB


data family Hash keyrole :: *
data family Hash keyrole :: Type

class CastHash keyroleA keyroleB where

Expand Down Expand Up @@ -2953,7 +2953,7 @@ deserialiseAnyOfFromBech32 types bech32Str = do
:: Text
-> Maybe (FromSomeType SerialiseAsBech32 b)
findForPrefix prefix =
find
List.find
(\(FromSomeType t _) -> prefix `elem` bech32PrefixesPermitted t)
types

Expand Down Expand Up @@ -2995,7 +2995,7 @@ instance Error Bech32DecodeError where
Bech32UnexpectedPrefix actual permitted ->
"Unexpected Bech32 prefix: the actual prefix is " <> show actual
<> ", but it was expected to be "
<> intercalate " or " (map show (Set.toList permitted))
<> List.intercalate " or " (map show (Set.toList permitted))

Bech32DataPartToBytesError _dataPart ->
"There was an error in extracting the bytes from the data part of the \
Expand Down Expand Up @@ -3080,7 +3080,7 @@ deserialiseFromTextEnvelope ttoken te = do
first TextView.TextViewDecodeError $
deserialiseFromCBOR ttoken (TextView.tvRawCBOR te) --TODO: You have switched from CBOR to JSON

data FromSomeType (c :: * -> Constraint) b where
data FromSomeType (c :: Type -> Constraint) b where
FromSomeType :: c a => AsType a -> (a -> b) -> FromSomeType c b


Expand Down Expand Up @@ -3202,7 +3202,7 @@ instance HasTypeProxy a => HasTypeProxy (Hash a) where
-- | Map the various Shelley key role types into corresponding 'Shelley.KeyRole'
-- types.
--
type family ShelleyKeyRole (keyrole :: *) :: Shelley.KeyRole
type family ShelleyKeyRole (keyrole :: Type) :: Shelley.KeyRole

type instance ShelleyKeyRole PaymentKey = Shelley.Payment
type instance ShelleyKeyRole GenesisKey = Shelley.Genesis
Expand Down
2 changes: 0 additions & 2 deletions cardano-api/test/Test/Cardano/Api/Crypto.hs
Expand Up @@ -15,8 +15,6 @@ where
import Cardano.Prelude
import Prelude (String)

import Data.Proxy (Proxy (..))

import Cardano.Api.Crypto.Ed25519Bip32 (Ed25519Bip32DSIGN, SignKeyDSIGN (..))

import Cardano.Crypto.DSIGN
Expand Down
2 changes: 0 additions & 2 deletions cardano-api/test/Test/Cardano/Api/Typed/Gen.hs
Expand Up @@ -28,8 +28,6 @@ import Control.Monad.Fail (fail)
import qualified Cardano.Binary as CBOR
import qualified Cardano.Crypto.Hash as Crypto
import qualified Cardano.Crypto.Seed as Crypto
import Cardano.Slotting.Slot (SlotNo (..))
import Ouroboros.Network.Magic (NetworkMagic (..))

import Hedgehog (Gen)
import qualified Hedgehog.Gen as Gen
Expand Down
1 change: 0 additions & 1 deletion cardano-cli/cardano-cli.cabal
Expand Up @@ -125,7 +125,6 @@ library
-Wredundant-constraints
-Wpartial-fields
-Wcompat
-Wno-all-missed-specialisations

if os(windows)
build-depends: Win32
Expand Down
3 changes: 0 additions & 3 deletions cardano-cli/src/Cardano/CLI/Byron/Genesis.hs
Expand Up @@ -19,12 +19,9 @@ where
import Cardano.Prelude hiding (option, show, trace)
import Prelude (String, show)

import Control.Monad.Trans.Except (ExceptT)
import Control.Monad.Trans.Except.Extra (firstExceptT, left, right)
import qualified Data.ByteString.Lazy as LB
import qualified Data.Map.Strict as Map
import Data.String (IsString)
import Data.Text.Encoding (encodeUtf8)
import Data.Text.Lazy.Builder (toLazyText)
import Data.Time (UTCTime)
import Formatting.Buildable
Expand Down
6 changes: 2 additions & 4 deletions cardano-cli/src/Cardano/CLI/Byron/Key.hs
Expand Up @@ -28,18 +28,16 @@ import Prelude (String, show)
import Codec.CBOR.Read (DeserialiseFailure, deserialiseFromBytes)
import Codec.CBOR.Write (toLazyByteString)

import Control.Monad.Trans.Except (ExceptT)
import Control.Monad.Trans.Except.Extra (firstExceptT, handleIOExceptT, hoistEither)
import qualified Data.ByteArray as BA
import qualified Data.ByteString as SB
import qualified Data.ByteString.Lazy as LB
import qualified Data.ByteString.UTF8 as UTF8
import Data.String (IsString, fromString)
import Data.Text (Text)
import Data.String (fromString)
import qualified Data.Text as T
import Formatting (build, sformat, (%))

import System.IO (hFlush, hSetEcho, stdin, stdout)
import System.IO (hFlush, hSetEcho)

import qualified Cardano.Chain.Common as Common
import qualified Cardano.Chain.Genesis as Genesis
Expand Down
2 changes: 0 additions & 2 deletions cardano-cli/src/Cardano/CLI/Byron/Legacy.hs
Expand Up @@ -15,8 +15,6 @@ import Cardano.Prelude hiding (option)
import qualified Codec.CBOR.Decoding as D
import qualified Codec.CBOR.Encoding as E
import Data.Coerce (coerce)
import Data.Semigroup ((<>))
import Data.Text (Text)
import qualified Data.Text as T
import Lens.Micro (LensLike, _Left)

Expand Down
2 changes: 0 additions & 2 deletions cardano-cli/src/Cardano/CLI/Byron/Parsers.hs
Expand Up @@ -24,8 +24,6 @@ module Cardano.CLI.Byron.Parsers
import Cardano.Prelude hiding (option)
import Prelude (String)

import Control.Applicative ((<|>))
import Data.Bifunctor (first, second)
import qualified Data.ByteString.Lazy.Char8 as C8
import qualified Data.List.NonEmpty as NE
import qualified Data.Text as Text
Expand Down
2 changes: 0 additions & 2 deletions cardano-cli/src/Cardano/CLI/Byron/Run.hs
Expand Up @@ -6,9 +6,7 @@ module Cardano.CLI.Byron.Run

import Cardano.Prelude

import Control.Monad.Trans.Except (ExceptT)
import Control.Monad.Trans.Except.Extra (firstExceptT, hoistEither)
import Data.Semigroup ((<>))
import qualified Data.Text.Lazy.Builder as Builder
import qualified Data.Text.Lazy.IO as TL
import qualified Formatting as F
Expand Down
2 changes: 0 additions & 2 deletions cardano-cli/src/Cardano/CLI/Byron/Tx.hs
Expand Up @@ -26,8 +26,6 @@ import Control.Monad.Trans.Except.Extra (firstExceptT, left)
import qualified Data.ByteString as B
import qualified Data.ByteString.Lazy as LB
import qualified Data.Map.Strict as Map
import Data.String (IsString)
import Data.Text (Text)
import qualified Data.Text as T
import qualified Data.Vector as Vector
import Formatting (sformat, (%))
Expand Down
1 change: 0 additions & 1 deletion cardano-cli/src/Cardano/CLI/Environment.hs
Expand Up @@ -9,7 +9,6 @@ module Cardano.CLI.Environment
import Cardano.Prelude
import Prelude (String)

import Control.Monad.Trans.Except (ExceptT)
import Control.Monad.Trans.Except.Extra (left)
import qualified Data.Text as Text
import System.Environment (lookupEnv)
Expand Down
1 change: 0 additions & 1 deletion cardano-cli/src/Cardano/CLI/Helpers.hs
Expand Up @@ -17,7 +17,6 @@ import Cardano.Prelude
import Codec.CBOR.Pretty (prettyHexEnc)
import Codec.CBOR.Read (DeserialiseFailure, deserialiseFromBytes)
import Codec.CBOR.Term (decodeTerm, encodeTerm)
import Control.Exception (IOException)
import Control.Monad.Trans.Except.Extra (handleIOExceptT, left)
import qualified Data.ByteString.Lazy as LB
import qualified Data.Text as Text
Expand Down
1 change: 0 additions & 1 deletion cardano-cli/src/Cardano/CLI/Run.hs
Expand Up @@ -9,7 +9,6 @@ module Cardano.CLI.Run

import Cardano.Prelude

import Control.Monad.Trans.Except (ExceptT)
import Control.Monad.Trans.Except.Extra (firstExceptT)
import qualified Data.Text as Text

Expand Down
1 change: 0 additions & 1 deletion cardano-cli/src/Cardano/CLI/Shelley/Orphans.hs
Expand Up @@ -41,7 +41,6 @@ import qualified Shelley.Spec.Ledger.EpochBoundary as Ledger
import qualified Shelley.Spec.Ledger.Keys as Ledger
import qualified Shelley.Spec.Ledger.LedgerState as Ledger
import Shelley.Spec.Ledger.MetaData (MetaDataHash (..))
import Shelley.Spec.Ledger.PParams (PParams' (..))
import qualified Shelley.Spec.Ledger.PParams as Ledger
import qualified Shelley.Spec.Ledger.Rewards as Ledger
import Shelley.Spec.Ledger.TxBody (TxId (..), TxIn (..), TxOut (..))
Expand Down
1 change: 0 additions & 1 deletion cardano-cli/src/Cardano/CLI/Shelley/Parsers.hs
Expand Up @@ -25,7 +25,6 @@ import Cardano.CLI.Shelley.Key (InputFormat (..), VerificationKeyOrFil
VerificationKeyOrHashOrFile (..), VerificationKeyTextOrFile (..),
deserialiseInput, renderInputDecodeError)
import Cardano.CLI.Types
import Cardano.Slotting.Slot (EpochNo (..), SlotNo (..))
import Control.Monad.Fail (fail)
import Data.Attoparsec.Combinator ((<?>))
import Data.Time.Clock (UTCTime)
Expand Down
1 change: 0 additions & 1 deletion cardano-cli/src/Cardano/CLI/Shelley/Run.hs
Expand Up @@ -6,7 +6,6 @@ module Cardano.CLI.Shelley.Run

import Cardano.Prelude

import Control.Monad.Trans.Except (ExceptT)
import Control.Monad.Trans.Except.Extra (firstExceptT)

import Cardano.CLI.Shelley.Parsers
Expand Down
1 change: 0 additions & 1 deletion cardano-cli/src/Cardano/CLI/Shelley/Run/Address.hs
Expand Up @@ -15,7 +15,6 @@ import qualified Data.ByteString.Lazy as LB
import qualified Data.Text as Text
import qualified Data.Text.IO as Text

import Control.Monad.Trans.Except (ExceptT)
import Control.Monad.Trans.Except.Extra (firstExceptT, handleIOExceptT, left, newExceptT)

import Cardano.Api.TextView (TextViewDescription (..))
Expand Down
1 change: 0 additions & 1 deletion cardano-cli/src/Cardano/CLI/Shelley/Run/Address/Info.hs
Expand Up @@ -7,7 +7,6 @@ module Cardano.CLI.Shelley.Run.Address.Info
import Cardano.Api.Typed
import Cardano.CLI.Shelley.Parsers (OutputFile (..))
import Cardano.Prelude
import Control.Monad.Trans.Except (ExceptT)
import Control.Monad.Trans.Except.Extra (left)
import Data.Aeson (ToJSON (..), object, (.=))
import Data.Aeson.Encode.Pretty (encodePretty)
Expand Down
4 changes: 0 additions & 4 deletions cardano-cli/src/Cardano/CLI/Shelley/Run/Genesis.hs
Expand Up @@ -14,9 +14,7 @@ import qualified Data.Aeson as Aeson
import Data.Aeson.Encode.Pretty (encodePretty)
import qualified Data.ByteString.Char8 as BS
import qualified Data.ByteString.Lazy.Char8 as LBS
import Data.Char (isDigit)
import qualified Data.List as List
import Data.Map.Strict (Map)
import qualified Data.Map.Strict as Map
import qualified Data.Text as Text
import qualified Data.Text.IO as Text
Expand All @@ -26,7 +24,6 @@ import System.Directory (createDirectoryIfMissing, listDirectory)
import System.FilePath (takeExtension, takeExtensions, (</>))
import System.IO.Error (isDoesNotExistError)

import Control.Monad.Trans.Except (ExceptT)
import Control.Monad.Trans.Except.Extra (firstExceptT, handleIOExceptT, hoistEither, left,
newExceptT)

Expand All @@ -37,7 +34,6 @@ import Cardano.Api.TextView (TextViewDescription (..))
import Cardano.Api.Typed

import Ouroboros.Consensus.BlockchainTime (SystemStart (..))
import Ouroboros.Consensus.Shelley.Eras (StandardShelley)

import qualified Shelley.Spec.Ledger.Address as Ledger
import qualified Shelley.Spec.Ledger.Coin as Ledger
Expand Down
1 change: 0 additions & 1 deletion cardano-cli/src/Cardano/CLI/Shelley/Run/Governance.hs
Expand Up @@ -8,7 +8,6 @@ import Cardano.Prelude

import qualified Data.Text as Text

import Control.Monad.Trans.Except (ExceptT)
import Control.Monad.Trans.Except.Extra (firstExceptT, left, newExceptT, right)

import Cardano.Api.TextView (TextViewDescription (..), textShow)
Expand Down
2 changes: 0 additions & 2 deletions cardano-cli/src/Cardano/CLI/Shelley/Run/Key.hs
Expand Up @@ -16,10 +16,8 @@ import Cardano.Prelude
import qualified Data.ByteString as BS
import qualified Data.ByteString.Char8 as BSC
import qualified Data.Text as Text
import Data.Text.Encoding (encodeUtf8)

import qualified Control.Exception as Exception
import Control.Monad.Trans.Except (ExceptT)
import Control.Monad.Trans.Except.Extra (firstExceptT, hoistEither, left, newExceptT)

import qualified Codec.Binary.Bech32 as Bech32
Expand Down

0 comments on commit 2b48f68

Please sign in to comment.