This changelog summarizes major changes between TRegex versions relevant to language implementors integrating TRegex into their language. This document will focus on API changes relevant to integrators of TRegex.
- Added new
ASCII
encoding that callers can use when compiling a regex to limit the range of code point matches to [0x00, 0x7f]. - Updated Unicode data (case-folding, character properties) to version 14 of the Unicode standard.
- Support for case-insensitive matching in Ruby regular expressions.
- Added Regexp option IgnoreAtomicGroups for treating atomic groups as ordinary groups.
- Compiled regular expressions export the
isBacktracking
boolean member, which can be used to determine if the regexp can backtrack and potentially lead to exponential runtime.
- Added support for the
hasIndices
(d
) flag in ECMAScript regular expressions.
- Introduced on-the-fly decoding for UTF-16 strings.
- Completed feature support for EcmaScript 2020 regular expressions via a new built-in back-tracking engine.
- Removed properties
regex
,input
,start
, andend
from result objects. - Introduced methods
getStart(groupNumber)
andgetEnd(groupNumber)
as a replacement forstart
andend
in result objects. - Regex syntax exceptions are now to be treated as plain
TruffleException
s - languages using TRegex should not introduce any source code dependency on TRegex. - Moved
groupCount
property from regex result to compiled regex objects.
- Added the possibility to log the actions of the compiler.
- Introduced the
regex
loggersSwitchToEager
,TotalCompilationTime
,Phases
,BailoutMessages
,AutomatonSizes
,CompilerFallback
,InternalErrors
andTRegexCompilations
. These can be enabled in your launchers by setting, e.g.,--log.regex.Phases.level=ALL
.
- Introduced the