0.18 2023-01-30
[New Features]
* Added the split method in the Regex class.
method split : string[] ($string : string, $limit = 0 : int);
0.17 2022-12-26
[Bug Fix]
* Fixed unexpetedly replacement bug. This reason maybe memory, but I don't understand the detail of the reason.
{
my $path = "/..";
$path = Regex->new("^/\.\.$")->replace($path, "/");
unless ($path eq "/") {
return 0;
}
}
[Performance Degration]
* For the above bug fix, performance degration occurs. This will be fixed in the future.
0.16 2022-12-26
[Prerequirement Bug Fix]
* Fixed prerequirement in Makefile.PL because 'SPVM::Resource::Re2::V2022_06_01 is needed when "perl Makefile.PL" is executed.
0.15 2022-12-23
[Prerequirement Changes]
* SPVM 0.9670+ is needed.
* SPVM::Resource::Re2::V2022_06_01 0.06+ is needed.
[Build Process Improvement]
* Added --meta and --no-build-spvm-modules options to Makefile.PL.
* Sync Makefile.PL to the one that is generated the latest spvmdist command.
* Added AUTHOR and meta information to Makefile.PL.
0.14 2022-10-01
[Prerequirement Changes]
* SPVM::Regex needs SPVM 0.9661+.
[Test Improvement]
* Added the test of \b.
[Document Improvement]
* Added the hedding "Contributors" and "Author".
* Added Ryunosuke Murakami to the contributors.
0.13 2022-09-01
[Bug Fix]
* Fix the bug that replace_common don't work well in global replacement.
0.12 2022-08-18
[New Features]
* The match method of the Regex class can receive the offset and the length.
[Before]
method match : int ($string : string)
[After]
method match : int ($string : string, $offset = 0 : int, $length = -1 : int)
[Document Fix]
* Fix many document mistakes.
[Bug Fix]
* Fix the bug that the replace offset is over the length of the string. This maybe raises some moery leak.
[Requirement Changes]
* Need SPVM 0.9643+.
[Incompatible Changes]
* The definitions of the following methods of the Regex class.
[Before]
method match_offset : int ($string : string, $offset : int*);
method replace_g_offset : string ($string : string, $offset_ref : int*, $replace : string)
[After]
method match_forward : int ($string : string, $offset : int*);
method replace_g_forward : string ($string : string, $replace :object of string|Regex::Replacer, $offset_ref : int*)
* The following methods of the Regex class are removed.
method replace_cb_offset : string ($string : string, $offset_ref : int*, $replace_cb : Regex::Replacer)
method replace_g_cb_offset : string ($string : string, $offset_ref : int*, $replace_cb : Regex::Replacer)
method replace_offset : string ($string : string, $offset_ref : int*, $replace : string)
* Remove the following methods of the Regex
method replace_g_forward : string ($string : string, $replace :object of string|Regex::Replacer, $offset_ref : int*);
* The definitions of the following methods of the Regex class.
[Before]
method replace_common : string ($string : string, $replace : object, $options : object[], $offset_ref : int*) {
[After]
method replace_common : string ($string : string, $replace : object, $offset_ref : int*, $options : object[]) {
* The definitions of the following methods of the Regex class.
[Before]
static method new : Regex ($pattern_and_flags : string[]...)
{After]
static method new : Regex ($pattern : string, $flags = undef : string)
* The definitions of the following methods of the Regex class.
[Before]
method replace : string ($string : string, $replace : object of string|Regex::Replacer)
method replace_g : string ($string : string, $replace : object of string|Regex::Replacer)
precompile method replace_common : string ($string : string, $replace : object, $offset_ref : int*, $options = undef : object[])
[After]
method replace : string ($string : string, $replace : object of string|Regex::Replacer, $offset = 0 : int, $length = -1 : int, $options = undef : object[])
method replace_g : string ($string : string, $replace : object of string|Regex::Replacer, $offset = 0 : int, $length = -1 : int, $options = undef : object[])
precompile method replace_common : string ($string : string, $replace : object, $offset_ref : int*, $length = -1 : int, $options = undef : object[])
[Changes]
* The definitions of the following methods of the Regex class.
[Before]
method replace_common : string ($string : string, $replace : object, $offset_ref : int*, $options : object[]) {
[After]
method replace_common : string ($string : string, $replace : object, $offset_ref : int*, $options = undef : object[]) {
0.11 2022-08-08
[Text Fix]
* Fix tests for SPVM upgrading.
0.10 2022-08-01
[Internal Ineffective Changes]
* Use get_field_object_by_name_v2 in SPVM/Regex.cpp
* Use set_field_object_by_name_v2 in SPVM/Regex.cpp
[Pre Requirement Changes]
* SPVM 0.9632 is needed.
0.09 2022-08-01
[Internal Changes]
* Remove unused SPVM::Pattern class
[Test Fix]
* Add unexpectedly removed tests.
* Add URL escape test.
0.08 2022-07-22
[Bug Fix]
* Fix the bug that RE2 object is not released in the destructor.
* Fix the bug that RE2 object is leaked when the compilation error occurs.
0.07 2022-07-15
[Document Fix]
* Fix document of cap1 to cap20 simple mistake.
0.06 2022-07-15
[Incompatible Changes]
* Regex 0.06 binds Google Re2.
* Change the field and method definitions
[Before]
has captures : ro string[];
has match_start : ro int;
has match_length : ro int;
has replace_count : ro int;
has before_is_hyphen : byte;
has before_is_open_bracket : byte;
native static method re2_test : void ();
static method new : Regex ($re_str_and_options : string[]...)
static method new_with_options : Regex ($re_str : string, $option_chars : string)
method match : int ($target : string, $target_base_index : int)
method replace : string ($target : string, $target_offset : int, $replace : string)
method replace_cb : string ($target : string, $target_offset : int, $replace_cb : Regex::Replacer)
method replace_all : string ($target : string, $target_offset : int, $replace : string)
method replace_all_cb : string ($target : string, $target_offset : int, $replace_cb : Regex::Replacer)
method cap1 : string ()
method cap2 : string ()
method cap3 : string ()
method cap4 : string ()
method cap5 : string ()
method cap6 : string ()
method cap7 : string ()
method cap8 : string ()
method cap9 : string ()
method cap10 : string ()
[After]
has captures : ro string[];
has match_start : ro int;
has match_length : ro int;
has replaced_count : ro int;
static method new : Regex ($pattern_and_flags : string[]...)
method match : int ($string : string)
method match_offset : int ($string : string, $offset : int*);
method cap1 : string ()
method cap2 : string ()
method cap3 : string ()
method cap4 : string ()
method cap5 : string ()
method cap6 : string ()
method cap7 : string ()
method cap8 : string ()
method cap9 : string ()
method cap10 : string ()
method cap11 : string ()
method cap12 : string ()
method cap13 : string ()
method cap14 : string ()
method cap15 : string ()
method cap16 : string ()
method cap17 : string ()
method cap18 : string ()
method cap19 : string ()
method cap20 : string ()
method replace : string ($string : string, $replace_string : string)
method replace_cb : string ($string : string, $replace_cb : Regex::Replacer)
method replace_g : string ($string : string, $replace_string : string)
method replace_g_cb : string ($string : string, $replace_cb : Regex::Replacer)
method replace_offset : string ($string : string, $offset_ref : int*, $replace : string)
method replace_cb_offset : string ($string : string, $offset_ref : int*, $replace_cb : Regex::Replacer)
method replace_g_offset : string ($string : string, $offset_ref : int*, $replace : string)
method replace_g_cb_offset : string ($string : string, $offset_ref : int*, $replace_cb : Regex::Replacer)
[Changes]
* Need SPVM::Resource::Re2::V2022_06_01 0.05.
* Need SPVM 0.9615.
0.05 2022-06-23
* Catch up with SPVM 0.9612.
0.04 2022-06-22
* Catch up with SPVM::Unicode 0.03.
0.03 2022-06-21
* Fix some bugs
0.02 2022-06-13
- Catch up with latest SPVM.
- Add SPVM::Unicode to Makefile.PL
0.01 2022-06-07
- First development release