- Fixed #34,
#35, and
#39, all related to a
use-before-
free()
bug. - Updated PCRE2 to 10.44 (no API changes).
- Minor simplifications in docs and implementation.
- Fixed #26 where wide UTF-8 characters were not handled correctly.
- Docs fully updated for UTF-8 instead of UTF-16. (Docs were deleted from the 2.2.0 release.)
- Switched to UTF-8 to support
text
2.0, implementing #22.text
< 2 is no longer supported.- Changed type synonym
PCRE2_UCHAR
fromCUShort
toCUChar
in the low-level bindings. - No API changes in the high-level bindings.
- There is a minor regression in the ability to match
\R
against line separators (U+2028) and paragraph separators (U+2029). See #26.
- Changed type synonym
- Updated library, tests, and docs for
mtl
2.3 andmicrolens-platform
0.4.3.0. Themtl
part of this is pursuant to #30.
- Added pattern serialization API, which fixes #23.
- Updated PCRE2 to 10.40 (no API changes).
- Explicitly required
text
< 2. - Minor docs adjustments.
- Replaced
Proxy :: Proxy info
with type applications in splices fromregex
/_regex
. This significantly shortens the splices, producing nicer error messages. As a very minor consequence, we now require the user to turn on{-# LANGUAGE TypeApplications #-}
when usingregex
/_regex
with patterns with parenthesized captures, even when not usingcapture
/_capture
.
- Enabled PCRE2's built-in Unicode support, which fixes #21.
- Added
Show
instance forCaptures
to ease debugging user code.
- Updated PCRE2 to 10.39 (no API changes). The C sources are now drawn from https://github.com/PhilipHazel/pcre2, which fixes #10.
- Fixed a minor issue where the caret indicating pattern location of a
Pcre2CompileException
was misplaced if the pattern contained a newline.
- Added
microlens
as a dependency to improve Haddock docs (Traversal'
et al. are clickable) and relieve maintenance burden somewhat. - Moderate refactoring of internals.
This release introduces significant breaking changes in order to make the API smaller, more consistent, and safer.
- Implemented #18:
- Removed
matchAll
,matchAllOpt
,capturesAll
, andcapturesAllOpt
. - Upgraded
match
,matchOpt
,captures
, andcapturesOpt
to offer their functionality, respectively. - Renamed
capturesA
andcapturesAOpt
tocaptures
andcapturesOpt
, replacing the latter two functions altogether.captures
/-Opt
were intended to be extreme convenience functions that required no special datatypes beyond thePrelude
. However, this was of doubtful benefit, since that's false anyway—they requiredText
, not to mention{-# LANGUAGE OverloadedStrings #-}
. Their names are simple and valuable, and no otherAlternative
-producing function has the naming convention "-A
", so repurposing their names was in order.
- Removed
- Moved the callout interface to a new module,
Text.Regex.Pcre2.Unsafe
. This includes the optionsUnsafeCompileRecGuard
,UnsafeCallout
,UnsafeSubCallout
, andAutoCallout
, and the typesCalloutInfo
,CalloutIndex
,CalloutResult
,SubCalloutInfo
, andSubCalloutResult
. - Also moved option
BadEscapeIsLiteral
there. - Removed the ineffectual options
DupNames
andUtf
.
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.
- Fixed #17, where functions
returning
Alternative
containers were not restricted to single results despite their documentation. - Minor improvements to docs and examples.
- Fixed some incorrect foreign imports' safety.
- Fixed a very minor issue where
pcreVersion
still reported "10.35" even though it in fact was using 10.36.
- 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.
- Refactored using the
streaming
library. Fixed #11, where large global matches were very slow.
- Fixed #12, where some functions returned too many match results.
- Added global matching.
- New functions
matchAll
,matchAllOpt
,capturesAll
,capturesAllOpt
. - Changed all traversals from affine to non-affine.
- New functions
- Changed
capturesOptA
tocapturesAOpt
for naming consistency.
- Fixed #4, where multiple named captures were not type-indexed correctly.
- Established automated builds using Github Workflows. Thanks amesgen!
- Temporarily eliminate all dependency version bounds to get it building on Hackage.
- Fixed #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!
- Initial release.