Skip to content

Commit 9dbe23e

Browse files
authored
Merge pull request #213 from input-output-hk/coot/io-classes-1.8
Release io-classes-1.8
2 parents 8ef9715 + aef1125 commit 9dbe23e

File tree

43 files changed

+125
-350
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+125
-350
lines changed

.github/workflows/haskell.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
strategy:
1212
fail-fast: false
1313
matrix:
14-
ghc: ["8.10", "9.2", "9.4", "9.6", "9.8", "9.10", "9.12"]
14+
ghc: ["9.6.6", "9.8", "9.10", "9.12"]
1515
os: [ubuntu-latest, macos-latest, windows-latest]
1616

1717
defaults:
@@ -27,7 +27,7 @@ jobs:
2727
id: setup-haskell
2828
with:
2929
ghc-version: ${{ matrix.ghc }}
30-
cabal-version: "3.12.1.0"
30+
cabal-version: "3.14.2.0"
3131

3232
- name: Install LLVM (macOS)
3333
if: runner.os == 'macOS' && matrix.ghc == '8.10'

cabal.project

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ package io-classes
1212
package strict-stm
1313
flags: +asserts
1414

15-
if impl (ghc >= 9.12)
15+
if impl (ghc >= 9.10.2)
1616
allow-newer:
1717
-- Stuck on `cabal-3.14` issues and recalcitrant maintainers
1818
-- https://github.com/haskell/aeson/issues/1124

io-classes/CHANGELOG.md

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
# Revsion history of io-classes
22

3-
### next version
4-
5-
* Support ghc-9.12
3+
### 1.8.0.0
64

75
### Breaking changes
86

9-
- Provided `MonadTraceMVar`
10-
- Renamed `InspectMonad` to `InspectMonadSTM`
7+
* Provided `MonadTraceMVar`
8+
* Renamed `InspectMonad` to `InspectMonadSTM`
119
* Added `threadLabel` to `MonadThread`
1210
* Added `MonadLabelledMVar` class.
1311
* Added `labelMVar` to `Control.Concurrent.Class.MonadMVar.Strict`
@@ -21,6 +19,7 @@
2119

2220
* Added monad transformer instances for `MonadInspectSTM` & `MonadTraceSTM`
2321
type classes.
22+
* Support ghc-9.12
2423

2524
### 1.7.0.0
2625

io-classes/io-classes.cabal

Lines changed: 29 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
cabal-version: 3.4
22
name: io-classes
3-
version: 1.7.0.0
3+
version: 1.8.0.0
44
synopsis: Type classes for concurrency with STM, ST and timing
55
description:
66
IO Monad class hierarchy compatible with:
@@ -38,7 +38,7 @@ category: Control
3838
build-type: Simple
3939
extra-doc-files: CHANGELOG.md README.md strict-stm/README.md strict-mvar/README.md
4040
bug-reports: https://github.com/input-output-hk/io-sim/issues
41-
tested-with: GHC == { 8.10, 9.2, 9.4, 9.6, 9.8, 9.10 }
41+
tested-with: GHC == { 9.6, 9.8, 9.10, 9.12 }
4242

4343
source-repository head
4444
type: git
@@ -87,38 +87,15 @@ library
8787
Control.Monad.Class.MonadTime
8888
Control.Monad.Class.MonadTimer
8989
Control.Monad.Class.MonadTest
90-
default-language: Haskell2010
91-
default-extensions: ImportQualifiedPost
92-
other-extensions: CPP
93-
DataKinds
94-
DefaultSignatures
95-
DeriveFunctor
96-
DeriveGeneric
97-
DerivingStrategies
98-
ExistentialQuantification
99-
ExplicitNamespaces
100-
FlexibleContexts
101-
FlexibleInstances
102-
FunctionalDependencies
103-
GADTs
104-
GeneralisedNewtypeDeriving
105-
MultiParamTypeClasses
106-
NamedFieldPuns
107-
QuantifiedConstraints
108-
RankNTypes
109-
ScopedTypeVariables
110-
StandaloneDeriving
111-
TypeFamilies
112-
TypeFamilyDependencies
113-
TypeOperators
114-
UndecidableInstances
90+
default-language: GHC2021
91+
default-extensions: LambdaCase
11592
build-depends: base >=4.9 && <4.22,
11693
array,
117-
async >=2.1,
94+
async >=2.1 && <2.3,
11895
bytestring,
11996
mtl >=2.2 && <2.4,
12097
primitive >= 0.7 && <0.11,
121-
stm >=2.5 && <2.5.2 || >=2.5.3 && <2.6,
98+
stm >=2.5 && <2.5.2 || ^>=2.5.3,
12299
time >=1.9.1 && <1.13
123100
if impl(ghc >= 9.10)
124101
build-depends: ghc-internal
@@ -127,6 +104,7 @@ library
127104
ghc-options: -fno-ignore-asserts
128105

129106
library strict-stm
107+
import: warnings
130108
visibility: public
131109
hs-source-dirs: strict-stm
132110

@@ -138,40 +116,26 @@ library strict-stm
138116
Control.Concurrent.Class.MonadSTM.Strict.TQueue
139117
Control.Concurrent.Class.MonadSTM.Strict.TVar
140118
reexported-modules: Control.Concurrent.Class.MonadSTM.TSem as Control.Concurrent.Class.MonadSTM.Strict.TSem
141-
default-language: Haskell2010
142-
default-extensions: ImportQualifiedPost
143-
build-depends: base >= 4.9 && <4.22,
119+
default-language: GHC2021
120+
default-extensions: LambdaCase
121+
build-depends: base,
144122
array,
145-
stm >= 2.5 && <2.6,
146123

147124
io-classes:io-classes,
148-
ghc-options: -Wall
149-
-Wno-unticked-promoted-constructors
150-
-Wcompat
151-
-Wincomplete-uni-patterns
152-
-Wincomplete-record-updates
153-
-Wpartial-fields
154-
-Widentities
155125

156126
if flag(asserts)
157127
ghc-options: -fno-ignore-asserts
158128

159129
library strict-mvar
130+
import: warnings
160131
visibility: public
161132
hs-source-dirs: strict-mvar/src
162133

163134
exposed-modules: Control.Concurrent.Class.MonadMVar.Strict
164-
default-language: Haskell2010
165-
default-extensions: ImportQualifiedPost
166-
build-depends: base >= 4.9 && <4.22,
135+
default-language: GHC2021
136+
default-extensions: LambdaCase
137+
build-depends: base,
167138
io-classes:io-classes,
168-
ghc-options: -Wall
169-
-Wno-unticked-promoted-constructors
170-
-Wcompat
171-
-Wincomplete-uni-patterns
172-
-Wincomplete-record-updates
173-
-Wpartial-fields
174-
-Widentities
175139

176140
library si-timers
177141
import: warnings
@@ -180,22 +144,14 @@ library si-timers
180144
exposed-modules: Control.Monad.Class.MonadTime.SI
181145
Control.Monad.Class.MonadTimer.SI
182146
other-modules: Control.Monad.Class.MonadTimer.NonStandard
183-
default-language: Haskell2010
184-
default-extensions: ImportQualifiedPost
185-
other-extensions: BangPatterns,
186-
CPP,
187-
ConstraintKinds,
188-
DefaultSignatures,
189-
DeriveGeneric,
190-
NumericUnderscores,
191-
ScopedTypeVariables,
192-
TypeFamilies
193-
build-depends: base >=4.9 && <4.22,
147+
default-language: GHC2021
148+
default-extensions: LambdaCase
149+
build-depends: base,
194150
deepseq,
195151
mtl,
196152
nothunks,
197153
stm,
198-
time >=1.9.1 && <1.13,
154+
time,
199155

200156
io-classes:io-classes
201157
if flag(asserts)
@@ -214,52 +170,43 @@ library mtl
214170
, Control.Monad.Class.MonadTime.SI.Trans
215171
, Control.Monad.Class.MonadTimer.Trans
216172
, Control.Monad.Class.MonadTimer.SI.Trans
217-
build-depends: base >=4.9 && <4.22,
173+
build-depends: base,
218174
array,
219175
mtl,
220176

221177
io-classes:{io-classes,si-timers}
222178

223179
hs-source-dirs: mtl
224-
default-language: Haskell2010
225-
default-extensions: ImportQualifiedPost
180+
default-language: GHC2021
181+
default-extensions: LambdaCase
226182

227183
library testlib
228184
import: warnings
229185
visibility: public
230186
hs-source-dirs: test
231187
exposed-modules: Test.Control.Concurrent.Class.MonadMVar.Strict.WHNF
232-
default-language: Haskell2010
233-
default-extensions: ImportQualifiedPost
234-
build-depends: base >=4.9 && <4.22,
188+
default-language: GHC2021
189+
default-extensions: LambdaCase
190+
build-depends: base,
235191
nothunks,
236192
QuickCheck,
237193
io-classes:strict-mvar
238194
if flag(asserts)
239195
ghc-options: -fno-ignore-asserts
240196

241197
test-suite test-strict-mvar
198+
import: warnings
242199
type: exitcode-stdio-1.0
243200
hs-source-dirs: strict-mvar/test
244201
main-is: Main.hs
245-
246-
default-language: Haskell2010
247-
default-extensions: ImportQualifiedPost
202+
default-language: GHC2021
203+
default-extensions: LambdaCase
248204
build-depends: base,
249205
QuickCheck,
250206
tasty,
251207
tasty-quickcheck,
252208
io-classes:testlib
253209

254-
ghc-options: -Wall
255-
-Wno-unticked-promoted-constructors
256-
-Wcompat
257-
-Wincomplete-uni-patterns
258-
-Wincomplete-record-updates
259-
-Wpartial-fields
260-
-Widentities
261-
-fno-ignore-asserts
262-
263210
-- Since `io-sim` depends on `si-times` (`io-sim` depends on `Time`) some tests of
264211
-- are in `io-sim:test`: this is a good enough reason to pull `io-sim:test`
265212
-- into a seprate package.
@@ -269,8 +216,8 @@ test-suite test-si-timers
269216
hs-source-dirs: si-timers/test
270217
main-is: Main.hs
271218
other-modules: Test.MonadTimer
272-
default-language: Haskell2010
273-
default-extensions: ImportQualifiedPost
219+
default-language: GHC2021
220+
default-extensions: LambdaCase
274221
build-depends: base,
275222

276223
QuickCheck,

io-classes/mtl/Control/Monad/Class/MonadSTM/Trans.hs

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,10 @@
1-
{-# LANGUAGE CPP #-}
2-
{-# LANGUAGE DeriveFunctor #-}
3-
{-# LANGUAGE FlexibleContexts #-}
4-
{-# LANGUAGE FlexibleInstances #-}
5-
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
6-
{-# LANGUAGE KindSignatures #-}
7-
{-# LANGUAGE MultiParamTypeClasses #-}
8-
{-# LANGUAGE ScopedTypeVariables #-}
9-
{-# LANGUAGE StandaloneDeriving #-}
10-
{-# LANGUAGE TypeApplications #-}
11-
{-# LANGUAGE TypeFamilies #-}
1+
{-# LANGUAGE CPP #-}
2+
{-# LANGUAGE MultiParamTypeClasses #-}
3+
{-# LANGUAGE TypeFamilies #-}
124

135
-- undecidable instances needed for 'ContTSTM' instances of
146
-- 'MonadThrow' and 'MonadCatch' type classes.
15-
{-# LANGUAGE UndecidableInstances #-}
7+
{-# LANGUAGE UndecidableInstances #-}
168
{-# OPTIONS_GHC -Wno-orphans #-}
179

1810
module Control.Monad.Class.MonadSTM.Trans (ContTSTM (..)) where

io-classes/mtl/Control/Monad/Class/MonadThrow/Trans.hs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
{-# LANGUAGE CPP #-}
2-
{-# LANGUAGE RankNTypes #-}
1+
{-# LANGUAGE CPP #-}
32
{-# OPTIONS_GHC -Wno-orphans #-}
43
module Control.Monad.Class.MonadThrow.Trans () where
54

io-classes/si-timers/src/Control/Monad/Class/MonadTime/SI.hs

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
1-
{-# LANGUAGE DefaultSignatures #-}
2-
{-# LANGUAGE DeriveAnyClass #-}
3-
{-# LANGUAGE DeriveGeneric #-}
4-
{-# LANGUAGE DerivingStrategies #-}
5-
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
6-
{-# LANGUAGE NumericUnderscores #-}
1+
{-# LANGUAGE DefaultSignatures #-}
2+
{-# LANGUAGE DeriveAnyClass #-}
3+
{-# LANGUAGE DerivingStrategies #-}
74

85
module Control.Monad.Class.MonadTime.SI
96
( MonadTime (..)

io-classes/si-timers/src/Control/Monad/Class/MonadTimer/SI.hs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,3 @@
1-
{-# LANGUAGE ConstraintKinds #-}
2-
{-# LANGUAGE InstanceSigs #-}
3-
{-# LANGUAGE LambdaCase #-}
4-
{-# LANGUAGE NumericUnderscores #-}
5-
{-# LANGUAGE ScopedTypeVariables #-}
6-
71
module Control.Monad.Class.MonadTimer.SI
82
( -- * Type classes
93
MonadDelay (..)

io-classes/src/Control/Concurrent/Class/MonadMVar.hs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
{-# LANGUAGE DefaultSignatures #-}
2-
{-# LANGUAGE FlexibleContexts #-}
3-
{-# LANGUAGE QuantifiedConstraints #-}
42
{-# LANGUAGE TypeFamilyDependencies #-}
53

64
module Control.Concurrent.Class.MonadMVar

io-classes/src/Control/Monad/Class/MonadAsync.hs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,7 @@
11
{-# LANGUAGE CPP #-}
22
{-# LANGUAGE DataKinds #-}
33
{-# LANGUAGE DefaultSignatures #-}
4-
{-# LANGUAGE FlexibleContexts #-}
54
{-# LANGUAGE GADTs #-}
6-
{-# LANGUAGE MultiParamTypeClasses #-}
7-
{-# LANGUAGE QuantifiedConstraints #-}
8-
{-# LANGUAGE RankNTypes #-}
9-
{-# LANGUAGE ScopedTypeVariables #-}
105
{-# LANGUAGE TypeFamilyDependencies #-}
116
-- MonadAsync's ReaderT instance is undecidable.
127
{-# LANGUAGE UndecidableInstances #-}

io-classes/src/Control/Monad/Class/MonadFork.hs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
1-
{-# LANGUAGE CPP #-}
2-
{-# LANGUAGE FlexibleContexts #-}
3-
{-# LANGUAGE RankNTypes #-}
4-
{-# LANGUAGE ScopedTypeVariables #-}
5-
{-# LANGUAGE TypeFamilies #-}
1+
{-# LANGUAGE CPP #-}
2+
{-# LANGUAGE TypeFamilies #-}
63

74
-- | A generalisation of
85
-- <https://hackage.haskell.org/package/base/docs/Control-Concurrent.html Control.Concurrent>

io-classes/src/Control/Monad/Class/MonadST.hs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
{-# LANGUAGE InstanceSigs #-}
2-
{-# LANGUAGE RankNTypes #-}
3-
{-# LANGUAGE ScopedTypeVariables #-}
41
module Control.Monad.Class.MonadST (MonadST (..)) where
52

63
import Control.Monad.Reader

io-classes/src/Control/Monad/Class/MonadSTM.hs

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,11 @@
1-
-- | This module corresponds to "Control.Monad.STM" in "stm" package
2-
--
3-
{-# LANGUAGE DataKinds #-}
4-
{-# LANGUAGE DerivingStrategies #-}
5-
{-# LANGUAGE FlexibleContexts #-}
6-
{-# LANGUAGE GADTs #-}
7-
{-# LANGUAGE MultiParamTypeClasses #-}
8-
{-# LANGUAGE RankNTypes #-}
9-
{-# LANGUAGE ScopedTypeVariables #-}
1+
{-# LANGUAGE DataKinds #-}
2+
{-# LANGUAGE GADTs #-}
103
-- undecidable instances needed for 'WrappedSTM' instances of 'MonadThrow' and
114
-- 'MonadCatch' type classes.
12-
{-# LANGUAGE UndecidableInstances #-}
5+
{-# LANGUAGE UndecidableInstances #-}
6+
7+
-- | This module corresponds to "Control.Monad.STM" in "stm" package
8+
--
139
module Control.Monad.Class.MonadSTM
1410
( MonadSTM (STM, atomically, retry, orElse, check)
1511
, throwSTM

0 commit comments

Comments
 (0)