packages feed

pqueue-1.5.0.0: CHANGELOG.md

# Revision history for pqueue

## 1.5.0.0 -- 2023-08-08

  * Fix incorrect behavior of `mapMaybe` and `mapEither` for `MinQueue`. These
    previously worked only for monotonic functions.

  * Fix a performance bug that caused queue performance not to improve
    when the queue shrinks.
    ([#109](https://github.com/lspitzner/pqueue/pull/109))

  * Make `minView` more eager, improving performance in typical cases.
    ([#107](https://github.com/lspitzner/pqueue/pull/107))

  * Make mapping and traversal functions force the full data structure spine.
    This should make performance more predictable, and removes the last
    remaining reasons to use the `seqSpine` functions. As these are no longer
    useful, deprecate them.
    ([#103](https://github.com/lspitzner/pqueue/pull/103))

  * Deprecate `insertBehind`. This function does not play nicely with merges,
    we lack tests to verify it works properly without merges, it imposes a
    substantial maintenance burden on the rest of the package, and it is quite
    slow. ([#35](https://github.com/lspitzner/pqueue/issues/35))

  * Add pattern synonyms to work with `MinQueue` and `MinPQueue`.
    ([#92](http://github.com/lspitzner/pqueue/pull/92))

  * Make the `Data` instances respect the queue invariants. Make the
    `Constr`s match the pattern synonyms. Make the `Data` instance for
    `MinPQueue` work "incrementally", like the one for `MinQueue`.
    ([#92](http://github.com/lspitzner/pqueue/pull/92))

## 1.4.3.0 -- 2022-10-30

  * Add instances for [indexed-traversable](https://hackage.haskell.org/package/indexed-traversable).
    ([#85](https://github.com/lspitzner/pqueue/pull/85))
  * Add ghc-9.4 support. ([#86](https://github.com/lspitzner/pqueue/pull/86))

## 1.4.2.0 -- 2022-06-19

  * Overall performance has improved greatly, especially when there are many
    insertions and/or merges in a row. Insertion, deletion, and merge are now
    *worst case* logarithmic, while maintaining their previous amortized
    bounds. ([#26](https://github.com/lspitzner/pqueue/pull/26))

  * New `mapMWithKey` functions optimized for working in strict monads. These
    are used to implement the `mapM` and `sequence` methods of `Traversable`.
    ([#46](https://github.com/lspitzner/pqueue/pull/46))

  * Define `stimes` in the `Semigroup` instances.
    ([#57](https://github.com/lspitzner/pqueue/pull/57))

  * Add strict left unordered folds (`foldlU'`, `foldlWithKeyU'`)
    and monoidal unordered folds (`foldMapU`, `foldMapWithKeyU`).
    ([#59](https://github.com/lspitzner/pqueue/pull/59))

  * New functions for adjusting and updating the min/max of a key-value
    priority queue in an `Applicative` context.
    ([#66](https://github.com/lspitzner/pqueue/pull/66))

  * Fixed `Data.PQueue.Max.map` to work on `MaxQueue`s.
    ([#76](https://github.com/lspitzner/pqueue/pull/76))

## 1.4.1.4 -- 2021-12-04

  * Maintenance release for ghc-9.0 & ghc-9.2 support
  * Change nix-setup to use the seaaye tool

## 1.4.1.3 -- 2020-06-06

  * Maintenance release
  * Add missing documentation
  * Add nix-expressions for testing against different compilers/package sets

## 1.4.1.2 -- 2018-09-26

  * Maintenance release for ghc-8.6
  * Drop support for ghc<7.10

## 1.4.1.1 -- 2018-02-11

  * Remove/replace buggy `insertBehind` implementation.

    The existing implementation did not always insert behind. As a fix,
    the function was removed from Data.PQueue.Max/Min and was rewritten
    with a O(n) complexity (!) for Data.PQueue.Prio.Max/Min.

  * Adapt for ghc-8.4, based on the ghc-8.4.1-alpha1 release
  * Drop support for ghc<7.4

## 1.3.2.3 -- 2017-08-01

  * Maintenance release for ghc-8.2

## 1.3.2.2 -- 2017-03-12

  * Add test-suite from darcs repository for pqueue-1.0.1.

## 1.3.2.1 -- 2017-03-11

  * Fix documentation errors
    - complexity on `toList`, `toListU`
    - `PQueue.Prio.Max` had "ascending" instead of "descending" in some places

## 1.3.2   -- 2016-09-28

  * Add function `insertBehind` as a slight variation of `insert` which differs
    in behaviour for elements the compare equal.

## 1.3.1.1 -- 2016-05-21

  * Ensure compatibility with ghc-8
  * Minor internal refactors

## 1.3.1   -- 2015-10-03

  * Add `Monoid` instance for `MaxPQueue`

## 1.3.0   -- 2015-06-23

  * Lennart Spitzner starts co-maintaining
  * new git repository at github.com:lspitzner/pqueue
  * Ensure compatibility with ghc-7.10