packages feed

pcre2-2.0.0: ChangeLog.md

# Changelog and Acknowledgements

## 2.0.0
This release introduces significant breaking changes in order to make the API
smaller, more consistent, and safer.
* Implemented [#18](https://github.com/sjshuck/hs-pcre2/issues/18):
    * Removed `matchAll`, `matchAllOpt`, `capturesAll`, and `capturesAllOpt`.
    * Upgraded `match`, `matchOpt`, `captures`, and `capturesOpt` to offer their
      functionality, respectively.
    * Renamed `capturesA` and `capturesAOpt` to `captures` and `capturesOpt`,
      replacing the latter two functions altogether.  `captures`/-`Opt` were
      intended to be extreme
      [convenience functions](https://hackage.haskell.org/package/pcre2-1.1.5/docs/Text-Regex-Pcre2.html#v:captures)
      that required no special datatypes beyond the `Prelude`.  However, this
      was of doubtful benefit, since that's false anyway—they required
      `Text`, not to mention `{-# LANGUAGE OverloadedStrings #-}`.  Their names
      are simple and valuable, and no other `Alternative`-producing function has
      the naming convention "-`A`", so repurposing their names was in order.
* Moved the callout interface to a new module, `Text.Regex.Pcre2.Unsafe`.  This
  includes the options `UnsafeCompileRecGuard`, `UnsafeCallout`,
  `UnsafeSubCallout`, and `AutoCallout`, and the types `CalloutInfo`,
  `CalloutIndex`, `CalloutResult`, `SubCalloutInfo`, and `SubCalloutResult`.
* Also moved option `BadEscapeIsLiteral` there.
* Removed the ineffectual options `DupNames` and `Utf`.

Other improvements with no API impact:
* Updated PCRE2 to 10.37.
* Replaced copied C files with symlinks, diminishing codebase by 1.5K lines and
  simplifying future PCRE2 updates.
* Reduced size of Template Haskell splices to make error messages less
  obnoxious.
* Moderate refactoring of internals and documentation.

## 1.1.5
* Fixed [#17](https://github.com/sjshuck/hs-pcre2/issues/17), where functions
  returning `Alternative` containers were not restricted to single results
  despite their documentation.
* Minor improvements to docs and examples.

## 1.1.4
* Fixed some incorrect foreign imports' safety.

## 1.1.3.1
* Fixed a very minor issue where `pcreVersion` still reported "10.35" even
  though it in fact was using 10.36.

## 1.1.3
* Made in-house streaming abstraction based on `streaming` and removed the
  latter as a dependency.
* Updated PCRE2 to 10.36 (no API changes).
* Docs fixes.

## 1.1.2
* Refactored using the `streaming` library.  Fixed
  [#11](https://github.com/sjshuck/hs-pcre2/issues/11), where large global
  matches were very slow.

## 1.1.1
* Fixed [#12](https://github.com/sjshuck/hs-pcre2/issues/12), where some
  functions returned too many match results.

## 1.1.0
* Added global matching.
    * New functions `matchAll`, `matchAllOpt`, `capturesAll`, `capturesAllOpt`.
    * Changed all traversals from affine to non-affine.
* Changed `capturesOptA` to `capturesAOpt` for naming consistency.

## 1.0.2
* Fixed [#4](https://github.com/sjshuck/hs-pcre2/4), where multiple named
  captures were not type-indexed correctly.
* Established automated builds using Github Workflows.  Thanks amesgen!

## 1.0.1.1
* Temporarily eliminate all dependency version bounds to get it building on
  Hackage.

## 1.0.1
* Fixed [#1](https://github.com/sjshuck/hs-pcre2/issues/1), where building on
  Windows would succeed but not run.  Thanks Andrew!
* Try to adjust dependency version bounds to get it building on Hackage.  Thanks
  snoyberg!

## 1.0.0
* Initial release.