0.244 2023-12-26
[Bug Fix]
* Fix the bug that FILE_NAME in native source file does not have the file scope.
0.243001 2023-10-27
[Bug Fix]
* Remove using env->get_ref_count native API.
0.243 2023-08-12
[Performance Improvement]
* The performance of the replace method is improved, because the string is not copied repeatedly.
[New Features]
* The following methods are added to the Regex class.
method buffer_match : Regex::Match ($string_buffer : StringBuffer, $offset : int = 0, $length : int = -1);
method buffer_match_forward : Regex::Match ($string_buffer : StringBuffer, $offset_ref : int*, $length : int = -1);
method buffer_replace : void ($string_buffer : StringBuffer, $replace : object of string|Regex::Replacer, $offset : int = 0, $length : int = -1, $options : object[] = undef);
method buffer_replace_g : string ($string_buffer : StringBuffer, $replace : object of string|Regex::Replacer, $offset : int = 0, $length : int = -1, $options : object[] = undef);
method buffer_replace_common : void ($string_buffer : StringBuffer, $replace : object of string|Regex::Replacer, $offset_ref : int*, $length : int = -1, $options : object[] = undef);
0.242002 2023-08-09
[Prerequirement Changes]
* SPVM 0.989033+ is required.
0.242001 2023-05-29
[Prerequirement Changes]
* SPVM 0.986+ is required.
0.242 2023-05-26
[New Features]
* The match field is added to the Regex::ReplaceInfo class.
0.241002 2023-05-08
[Prerequirement Changes]
* SPVM 0.973+ is required.
0.241001 2023-05-05
* Nothing to changed. This is the relese because the pause indexer failed.
0.241 2023-05-04
[Prerequirement Changes]
* SPVM 0.971012+ is required.
[New Features]
* The Regex::Match class is added.
* The Regex::ReplaceInfo class is added.
* The version string can be got.
[Changes]
* The definition of the following methods in the Regex::Replacer interface are changed.
[Before]
required method : string ($re : Regex);
[After]
required method : string ($re : Regex, $match = undef : Regex::Match);
[Incompatible Changes]
* The definition of the following methods in the Regex class are changed.
[Before]
method match_forward : int ($string : string, $offset : int*, $length = -1 : int);
[After]
method match_forward : Regex::Match ($string : string, $offset : int*, $length = -1 : int);
[Deprecation]
* The following fields in the Regex class are deprecated. These will be removed. Use a Regex::Match or Regex::ReplaceInfo object instead.
has captures : ro string[];
has match_start : ro int;
has match_length : ro int;
has replaced_count : ro int;
0.23 2023-04-05
[Exception Message Improvement]
* Exception messages are improved.
[Document Improvement]
* Documents are improved.
[License Change]
* The license is changed to MIT License.
0.22 2023-03-31
[Internal Compatible Changes]
* Use new_pointer_ojbect_by_name instead of the deprecated new_pointer_by_name Native API.
0.21 2023-03-19
[Internal Compatible Changes]
* Use pointer instead of pointer_t
* Use SPVM::ExchangeAPI method instead of SPVM functions.
0.20 2023-03-01
[Prerequirement Changes]
* SPVM::Resource::RE2 0.01 is required.
* SPVM::Unicode is no more required.
* SPVM::Resource::Re2::V2022_06_01 is no more required.
0.19 2023-02-08
[Prerequirement Changes]
* SPVM 0.9691+ is needed.
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