packages feed

blockio 0.1.1.2 → 0.2.0.0

raw patch · 6 files changed

+43/−15 lines, 6 filesdep ~blockio-uringdep ~fs-simPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: blockio-uring, fs-sim

API changes (from Hackage documentation)

+ System.FS.BlockIO.IO: [ioctxIOWaitMetrics] :: IOCtxParams -> !Bool
- System.FS.BlockIO.IO: IOCtxParams :: !Int -> !Int -> IOCtxParams
+ System.FS.BlockIO.IO: IOCtxParams :: !Int -> !Int -> !Bool -> IOCtxParams

Files

CHANGELOG.md view
@@ -1,5 +1,30 @@ # Revision history for blockio +## 0.2.0.0 -- 2026-05-13++### Breaking changes++* Update to `fs-sim ^>=0.5`. See [PR+  #845](https://github.com/IntersectMBO/lsm-tree/pull/845).+* `IOCtxParams` has a new record field for configuring the use of IOWAIT+  metrics. Like the other configuration options, this option only applies on+  Linux platforms. See [PR+  #846](https://github.com/IntersectMBO/lsm-tree/pull/846). For more information+  about the new option, see the documentation for `blockio-uring`.++### New features++None++### Minor changes++* Support `blockio-uring ^>= 0.2`, and drop support for `blockio-uring ^>= 0.1`.+  See [PR #846](https://github.com/IntersectMBO/lsm-tree/pull/846)++### Bug fixes++None+ ## 0.1.1.2 -- 2026-04-24  ### Breaking changes
blockio.cabal view
@@ -1,6 +1,6 @@ cabal-version:   3.4 name:            blockio-version:         0.1.1.2+version:         0.2.0.0 synopsis:        Perform batches of disk I/O operations. description:   Perform batches of disk I\/O operations. Performing batches of disk I\/O can@@ -46,7 +46,7 @@   type:     git   location: https://github.com/IntersectMBO/lsm-tree   subdir:   blockio-  tag:      blockio-0.1.1.2+  tag:      blockio-0.2.0.0  common warnings   ghc-options:@@ -101,7 +101,7 @@      if !flag(serialblockio)       other-modules: System.FS.BlockIO.Async-      build-depends: blockio-uring ^>=0.1+      build-depends: blockio-uring ^>=0.2    elif os(osx)     hs-source-dirs: src-macos@@ -149,7 +149,7 @@     , blockio     , bytestring             ^>=0.11 || ^>=0.12     , fs-api                 ^>=0.4-    , fs-sim                 ^>=0.4+    , fs-sim                 ^>=0.4  || ^>=0.5     , io-classes             ^>=1.6  || ^>=1.7  || ^>=1.8.0.1 || ^>=1.9 || ^>=1.10     , io-classes:strict-stm     , primitive              ^>=0.9
src-linux/System/FS/BlockIO/Async.hs view
@@ -51,10 +51,11 @@     }  ctxParamsConv :: IOI.IOCtxParams -> I.IOCtxParams-ctxParamsConv IOI.IOCtxParams{IOI.ioctxBatchSizeLimit, IOI.ioctxConcurrencyLimit} =+ctxParamsConv IOI.IOCtxParams{IOI.ioctxBatchSizeLimit, IOI.ioctxConcurrencyLimit, IOI.ioctxIOWaitMetrics} =     I.IOCtxParams {         I.ioctxBatchSizeLimit   = ioctxBatchSizeLimit       , I.ioctxConcurrencyLimit = ioctxConcurrencyLimit+      , I.ioctxIOWaitMetrics    = ioctxIOWaitMetrics       }  submitIO ::
src-sim/System/FS/BlockIO/Sim.hs view
@@ -207,7 +207,7 @@ -- If you want to have access to the current state of the mocked file system, -- use 'simHasBlockIO' instead. runSimHasBlockIO ::-     (MonadSTM m, PrimMonad m, MonadCatch m, MonadMVar m)+     (MonadSTM m, PrimMonad m, MonadMask m, MonadMVar m)   => MockFS   -> (HasFS m HandleMock -> HasBlockIO m HandleMock -> m a)   -> m (a, MockFS)@@ -230,7 +230,7 @@ -- If you want to have access to the current state of the mocked file system -- or stream of errors, use 'simErrorHasBlockIO' instead. runSimErrorHasBlockIO ::-     (MonadSTM m, PrimMonad m, MonadCatch m, MonadMVar m)+     (MonadSTM m, PrimMonad m, MonadMask m, MonadMVar m)   => MockFS   -> Errors   -> (HasFS m HandleMock -> HasBlockIO m HandleMock -> m a)@@ -256,7 +256,7 @@ -- the user by reading @mockFsVar@, but note that the user should not leave -- @mockFsVar@ empty. simHasBlockIO ::-     (MonadCatch m, MonadMVar m, PrimMonad m, MonadSTM m)+     (MonadMask m, MonadMVar m, PrimMonad m, MonadSTM m)   => StrictTMVar m MockFS   -> m (HasFS m HandleMock, HasBlockIO m HandleMock) simHasBlockIO var = do@@ -273,7 +273,7 @@ -- If you want to have access to the current state of the mocked file system, -- use 'simHasBlockIO' instead. simHasBlockIO' ::-     (MonadCatch m, MonadMVar m, PrimMonad m, MonadSTM m)+     (MonadMask m, MonadMVar m, PrimMonad m, MonadSTM m)   => MockFS   -> m (HasFS m HandleMock, HasBlockIO m HandleMock) simHasBlockIO' mockFS = do@@ -293,7 +293,7 @@ -- @errorsVar@. The current state of the stream of errors can be accessed by the -- user by reading @errorsVar@. simErrorHasBlockIO ::-     forall m. (MonadCatch m, MonadMVar m, PrimMonad m, MonadSTM m)+     forall m. (MonadMask m, MonadMVar m, PrimMonad m, MonadSTM m)   => StrictTMVar m MockFS   -> StrictTVar m Errors   -> m (HasFS m HandleMock, HasBlockIO m HandleMock)@@ -314,7 +314,7 @@ -- If you want to have access to the current state of the mocked file system -- or stream of errors, use 'simErrorHasBlockIO' instead. simErrorHasBlockIO' ::-     (MonadCatch m, MonadMVar m, PrimMonad m, MonadSTM m)+     (MonadMask m, MonadMVar m, PrimMonad m, MonadSTM m)   => MockFS   -> Errors   -> m (HasFS m HandleMock, HasBlockIO m HandleMock)
src/System/FS/BlockIO/API.hs view
@@ -270,7 +270,7 @@           synchroniseDirectory hbio path'         else           error $ printf-            "listDirectoryRecursive: %s is not a file or directory"+            "synchroniseDirectoryRecursive: %s is not a file or directory"             (show path')  {-------------------------------------------------------------------------------
src/System/FS/BlockIO/IO/Internal.hs view
@@ -42,18 +42,20 @@ --  them, see the @blockio-uring@ package. data IOCtxParams = IOCtxParams {                      ioctxBatchSizeLimit   :: !Int,-                     ioctxConcurrencyLimit :: !Int+                     ioctxConcurrencyLimit :: !Int,+                     ioctxIOWaitMetrics    :: !Bool                    }  instance NFData IOCtxParams where-  rnf (IOCtxParams x y) = rnf x `seq` rnf y+  rnf (IOCtxParams x y z) = rnf x `seq` rnf y `seq` rnf z  -- | Default parameters. Some manual tuning of parameters might be required to -- achieve higher performance targets (see 'IOCtxParams'). defaultIOCtxParams :: IOCtxParams defaultIOCtxParams = IOCtxParams {       ioctxBatchSizeLimit   = 64,-      ioctxConcurrencyLimit = 64 * 3+      ioctxConcurrencyLimit = 64 * 3,+      ioctxIOWaitMetrics    = True     }  {-------------------------------------------------------------------------------