From 6b7cfd64f00d979fe2e3b526845119ba08d55e97 Mon Sep 17 00:00:00 2001 From: Marcin Szamotulski Date: Wed, 26 Apr 2023 10:48:49 +0200 Subject: [PATCH] Experimental ghc-9.6 support Also requires #4281 (io-classes-1.0.0.1). --- cardano-ping/cardano-ping.cabal | 2 +- .../src/Ouroboros/Network/Driver/Limits.hs | 1 - .../src/Ouroboros/Network/Driver/Simple.hs | 1 - .../src/Ouroboros/Network/Snocket.hs | 6 ++++++ ouroboros-network-testing/ouroboros-network-testing.cabal | 2 +- 5 files changed, 8 insertions(+), 4 deletions(-) diff --git a/cardano-ping/cardano-ping.cabal b/cardano-ping/cardano-ping.cabal index 1cc1d8e0888..ef4beba28d7 100644 --- a/cardano-ping/cardano-ping.cabal +++ b/cardano-ping/cardano-ping.cabal @@ -33,7 +33,7 @@ library strict-stm, network-mux >=0.3 && <0.4, - tdigest >=0.2.1.1 && <0.3, + tdigest ^>=0.3, text >=1.2.4 && <2.1, -- The Windows version of network-3.1.2 is missing diff --git a/ouroboros-network-framework/src/Ouroboros/Network/Driver/Limits.hs b/ouroboros-network-framework/src/Ouroboros/Network/Driver/Limits.hs index a6e81df00e3..7899182fc43 100644 --- a/ouroboros-network-framework/src/Ouroboros/Network/Driver/Limits.hs +++ b/ouroboros-network-framework/src/Ouroboros/Network/Driver/Limits.hs @@ -8,7 +8,6 @@ {-# LANGUAGE RankNTypes #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} {-# LANGUAGE UndecidableInstances #-} -- | Drivers for running 'Peer's. diff --git a/ouroboros-network-framework/src/Ouroboros/Network/Driver/Simple.hs b/ouroboros-network-framework/src/Ouroboros/Network/Driver/Simple.hs index c076ed4f31f..aade5ffacfc 100644 --- a/ouroboros-network-framework/src/Ouroboros/Network/Driver/Simple.hs +++ b/ouroboros-network-framework/src/Ouroboros/Network/Driver/Simple.hs @@ -8,7 +8,6 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} -- @UndecidableInstances@ extensions is required for defining @Show@ instance -- of @'TraceSendRecv'@. {-# LANGUAGE UndecidableInstances #-} diff --git a/ouroboros-network-framework/src/Ouroboros/Network/Snocket.hs b/ouroboros-network-framework/src/Ouroboros/Network/Snocket.hs index d5b1e4085c3..4c2e31a9563 100644 --- a/ouroboros-network-framework/src/Ouroboros/Network/Snocket.hs +++ b/ouroboros-network-framework/src/Ouroboros/Network/Snocket.hs @@ -1,5 +1,6 @@ {-# LANGUAGE BangPatterns #-} {-# LANGUAGE CPP #-} +{-# LANGUAGE DeriveFunctor #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DerivingVia #-} {-# LANGUAGE GADTs #-} @@ -102,6 +103,7 @@ import Ouroboros.Network.IOManager newtype Accept m fd addr = Accept { runAccept :: m (Accepted fd addr, Accept m fd addr) } + deriving Functor instance Functor m => Bifunctor (Accept m) where bimap f g (Accept ac) = Accept (h <$> ac) @@ -113,6 +115,10 @@ data Accepted fd addr where AcceptFailure :: !SomeException -> Accepted fd addr Accepted :: !fd -> !addr -> Accepted fd addr +instance Functor (Accepted fd) where + fmap f (Accepted fd addr) = Accepted fd (f addr) + fmap _ (AcceptFailure err) = AcceptFailure err + instance Bifunctor Accepted where bimap f g (Accepted fd addr) = Accepted (f fd) (g addr) bimap _ _ (AcceptFailure err) = AcceptFailure err diff --git a/ouroboros-network-testing/ouroboros-network-testing.cabal b/ouroboros-network-testing/ouroboros-network-testing.cabal index 4f94cfa0047..4d160f8b34b 100644 --- a/ouroboros-network-testing/ouroboros-network-testing.cabal +++ b/ouroboros-network-testing/ouroboros-network-testing.cabal @@ -61,7 +61,7 @@ library build-depends: base >=4.14 && <4.19, containers, contra-tracer, - deque, + deque ^>=0.4, io-classes ^>=1.1, io-sim, psqueues >=0.2.3 && <0.3,