The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
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