re2 2.4.0-x86-mingw32 → 2.4.2-x86-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 65ba58b3b863113389d854082c43f3006cb7bc8c191241bc53d15d8d9a9769d3
4
- data.tar.gz: ec12cd9721f43f8e59ade5d5edc339b9dadb965548211d4f9b336550e305aa69
3
+ metadata.gz: f0355bba5b5114429a4ee5cba3e4c381d5a768117606943e7b481bede9537f1d
4
+ data.tar.gz: 65c3d78cf9c4ca4549d1747eba66d1d2ee662e8c8f0dbf55e646fad95d9e1cfe
5
5
  SHA512:
6
- metadata.gz: ec5a3559dc4782958e42de15cd46b6f1bc0e9848033e249b6e13a79146caf13f0c2e70c8edbb3f8fba3dbe74bb84499b0e09e4077ffa6c3f0d0b9aaac484685e
7
- data.tar.gz: 8ecde2eb9deeaa05d2a0611ec13eb21a48605c8236b640c68a1c132fbaee23309671d00f1a8eba92741e34467d5a7582a85496b2e2b8c418ed16fd3b672fd1ce
6
+ metadata.gz: e59481cc9329f510dfbfc38d8fd988c16babd6329862c3caa5c29f6f464a371dee4257e7006bfe1a2d8d48184c850fcd9242a36c9283e0777ff356dd6ae206c0
7
+ data.tar.gz: 641b8217de66b798792e57bd164a7356593654cb0a1248f12b81b5318c3df007cc64f30c6160b500f53c9e0167c71f91967a144aec8b82c390c1525a5caec3ee
data/README.md CHANGED
@@ -5,7 +5,7 @@ Ruby bindings to [RE2][], a "fast, safe, thread-friendly alternative to
5
5
  backtracking regular expression engines like those used in PCRE, Perl, and
6
6
  Python".
7
7
 
8
- **Current version:** 2.4.0
8
+ **Current version:** 2.4.2
9
9
  **Supported Ruby versions:** 2.6, 2.7, 3.0, 3.1, 3.2
10
10
  **Bundled RE2 version:** libre2.11 (2023-11-01)
11
11
  **Supported RE2 versions:** libre2.0 (< 2020-03-02), libre2.1 (2020-03-02), libre2.6 (2020-03-03), libre2.7 (2020-05-01), libre2.8 (2020-07-06), libre2.9 (2020-11-01), libre2.10 (2022-12-01), libre2.11 (2023-07-01)
@@ -256,13 +256,17 @@ Contributions
256
256
  -------------
257
257
 
258
258
  * Thanks to [Jason Woods](https://github.com/driskell) who contributed the
259
- original implementations of `RE2::MatchData#begin` and `RE2::MatchData#end`;
260
- * Thanks to [Stefano Rivera](https://github.com/stefanor) who first contributed C++11 support;
261
- * Thanks to [Stan Hu](https://github.com/stanhu) for reporting a bug with empty patterns and `RE2::Regexp#scan`, contributing support for libre2.11 (2023-07-01) and for vendoring RE2 and abseil and compiling native gems in 2.0;
259
+ original implementations of `RE2::MatchData#begin` and `RE2::MatchData#end`.
260
+ * Thanks to [Stefano Rivera](https://github.com/stefanor) who first contributed
261
+ C++11 support.
262
+ * Thanks to [Stan Hu](https://github.com/stanhu) for reporting a bug with empty
263
+ patterns and `RE2::Regexp#scan`, contributing support for libre2.11
264
+ (2023-07-01) and for vendoring RE2 and abseil and compiling native gems in
265
+ 2.0.
262
266
  * Thanks to [Sebastian Reitenbach](https://github.com/buzzdeee) for reporting
263
- the deprecation and removal of the `utf8` encoding option in RE2;
267
+ the deprecation and removal of the `utf8` encoding option in RE2.
264
268
  * Thanks to [Sergio Medina](https://github.com/serch) for reporting a bug when
265
- using `RE2::Scanner#scan` with an invalid regular expression;
269
+ using `RE2::Scanner#scan` with an invalid regular expression.
266
270
  * Thanks to [Pritam Baral](https://github.com/pritambaral) for contributing the
267
271
  initial support for `RE2::Set`.
268
272
  * Thanks to [Mike Dalessio](https://github.com/flavorjones) for reviewing the
data/ext/re2/re2.cc CHANGED
@@ -130,33 +130,33 @@ static void parse_re2_options(RE2::Options* re2_options, const VALUE options) {
130
130
  #define re2_compact_callback(x)
131
131
  #endif
132
132
 
133
- static void re2_matchdata_mark(void *data) {
134
- re2_matchdata *self = (re2_matchdata *)data;
135
- rb_gc_mark_movable(self->regexp);
136
- rb_gc_mark_movable(self->text);
133
+ static void re2_matchdata_mark(void *ptr) {
134
+ re2_matchdata *m = reinterpret_cast<re2_matchdata *>(ptr);
135
+ rb_gc_mark_movable(m->regexp);
136
+ rb_gc_mark_movable(m->text);
137
137
  }
138
138
 
139
139
  #ifdef HAVE_RB_GC_MARK_MOVABLE
140
- static void re2_matchdata_update_references(void *data) {
141
- re2_matchdata *self = (re2_matchdata *)data;
142
- self->regexp = rb_gc_location(self->regexp);
143
- self->text = rb_gc_location(self->text);
140
+ static void re2_matchdata_compact(void *ptr) {
141
+ re2_matchdata *m = reinterpret_cast<re2_matchdata *>(ptr);
142
+ m->regexp = rb_gc_location(m->regexp);
143
+ m->text = rb_gc_location(m->text);
144
144
  }
145
145
  #endif
146
146
 
147
- static void re2_matchdata_free(void *data) {
148
- re2_matchdata *self = (re2_matchdata *)data;
149
- if (self->matches) {
150
- delete[] self->matches;
147
+ static void re2_matchdata_free(void *ptr) {
148
+ re2_matchdata *m = reinterpret_cast<re2_matchdata *>(ptr);
149
+ if (m->matches) {
150
+ delete[] m->matches;
151
151
  }
152
- xfree(self);
152
+ xfree(m);
153
153
  }
154
154
 
155
- static size_t re2_matchdata_memsize(const void *data) {
156
- const re2_matchdata *self = (const re2_matchdata *)data;
157
- size_t size = sizeof(re2_matchdata);
158
- if (self->matches) {
159
- size += sizeof(self->matches) * self->number_of_matches;
155
+ static size_t re2_matchdata_memsize(const void *ptr) {
156
+ const re2_matchdata *m = reinterpret_cast<const re2_matchdata *>(ptr);
157
+ size_t size = sizeof(*m);
158
+ if (m->matches) {
159
+ size += sizeof(*m->matches) * m->number_of_matches;
160
160
  }
161
161
 
162
162
  return size;
@@ -168,40 +168,40 @@ static const rb_data_type_t re2_matchdata_data_type = {
168
168
  .dmark = re2_matchdata_mark,
169
169
  .dfree = re2_matchdata_free,
170
170
  .dsize = re2_matchdata_memsize,
171
- re2_compact_callback(re2_matchdata_update_references)
171
+ re2_compact_callback(re2_matchdata_compact)
172
172
  },
173
173
  // IMPORTANT: WB_PROTECTED objects must only use the RB_OBJ_WRITE()
174
174
  // macro to update VALUE references, as to trigger write barriers.
175
175
  .flags = RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_WB_PROTECTED
176
176
  };
177
177
 
178
- static void re2_scanner_mark(void *data) {
179
- re2_scanner *self = (re2_scanner *)data;
180
- rb_gc_mark_movable(self->regexp);
181
- rb_gc_mark_movable(self->text);
178
+ static void re2_scanner_mark(void *ptr) {
179
+ re2_scanner *s = reinterpret_cast<re2_scanner *>(ptr);
180
+ rb_gc_mark_movable(s->regexp);
181
+ rb_gc_mark_movable(s->text);
182
182
  }
183
183
 
184
184
  #ifdef HAVE_RB_GC_MARK_MOVABLE
185
- static void re2_scanner_update_references(void *data) {
186
- re2_scanner *self = (re2_scanner *)data;
187
- self->regexp = rb_gc_location(self->regexp);
188
- self->text = rb_gc_location(self->text);
185
+ static void re2_scanner_compact(void *ptr) {
186
+ re2_scanner *s = reinterpret_cast<re2_scanner *>(ptr);
187
+ s->regexp = rb_gc_location(s->regexp);
188
+ s->text = rb_gc_location(s->text);
189
189
  }
190
190
  #endif
191
191
 
192
- static void re2_scanner_free(void *data) {
193
- re2_scanner *self = (re2_scanner *)data;
194
- if (self->input) {
195
- delete self->input;
192
+ static void re2_scanner_free(void *ptr) {
193
+ re2_scanner *s = reinterpret_cast<re2_scanner *>(ptr);
194
+ if (s->input) {
195
+ delete s->input;
196
196
  }
197
- xfree(self);
197
+ xfree(s);
198
198
  }
199
199
 
200
- static size_t re2_scanner_memsize(const void *data) {
201
- const re2_scanner *self = (const re2_scanner *)data;
202
- size_t size = sizeof(re2_scanner);
203
- if (self->input) {
204
- size += sizeof(self->input);
200
+ static size_t re2_scanner_memsize(const void *ptr) {
201
+ const re2_scanner *s = reinterpret_cast<const re2_scanner *>(ptr);
202
+ size_t size = sizeof(*s);
203
+ if (s->input) {
204
+ size += sizeof(*s->input);
205
205
  }
206
206
 
207
207
  return size;
@@ -213,26 +213,26 @@ static const rb_data_type_t re2_scanner_data_type = {
213
213
  .dmark = re2_scanner_mark,
214
214
  .dfree = re2_scanner_free,
215
215
  .dsize = re2_scanner_memsize,
216
- re2_compact_callback(re2_scanner_update_references)
216
+ re2_compact_callback(re2_scanner_compact)
217
217
  },
218
218
  // IMPORTANT: WB_PROTECTED objects must only use the RB_OBJ_WRITE()
219
219
  // macro to update VALUE references, as to trigger write barriers.
220
220
  .flags = RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_WB_PROTECTED
221
221
  };
222
222
 
223
- static void re2_regexp_free(void *data) {
224
- re2_pattern *self = (re2_pattern *)data;
225
- if (self->pattern) {
226
- delete self->pattern;
223
+ static void re2_regexp_free(void *ptr) {
224
+ re2_pattern *p = reinterpret_cast<re2_pattern *>(ptr);
225
+ if (p->pattern) {
226
+ delete p->pattern;
227
227
  }
228
- xfree(self);
228
+ xfree(p);
229
229
  }
230
230
 
231
- static size_t re2_regexp_memsize(const void *data) {
232
- const re2_pattern *self = (const re2_pattern *)data;
233
- size_t size = sizeof(re2_pattern);
234
- if (self->pattern) {
235
- size += sizeof(self->pattern);
231
+ static size_t re2_regexp_memsize(const void *ptr) {
232
+ const re2_pattern *p = reinterpret_cast<const re2_pattern *>(ptr);
233
+ size_t size = sizeof(*p);
234
+ if (p->pattern) {
235
+ size += sizeof(*p->pattern);
236
236
  }
237
237
 
238
238
  return size;
@@ -1579,19 +1579,19 @@ static VALUE re2_QuoteMeta(VALUE, VALUE unquoted) {
1579
1579
  return rb_str_new(quoted_string.data(), quoted_string.size());
1580
1580
  }
1581
1581
 
1582
- static void re2_set_free(void *data) {
1583
- re2_set *self = (re2_set *)data;
1584
- if (self->set) {
1585
- delete self->set;
1582
+ static void re2_set_free(void *ptr) {
1583
+ re2_set *s = reinterpret_cast<re2_set *>(ptr);
1584
+ if (s->set) {
1585
+ delete s->set;
1586
1586
  }
1587
- xfree(self);
1587
+ xfree(s);
1588
1588
  }
1589
1589
 
1590
- static size_t re2_set_memsize(const void *data) {
1591
- const re2_set *self = (const re2_set *)data;
1592
- size_t size = sizeof(re2_set);
1593
- if (self->set) {
1594
- size += sizeof(self->set);
1590
+ static size_t re2_set_memsize(const void *ptr) {
1591
+ const re2_set *s = reinterpret_cast<const re2_set *>(ptr);
1592
+ size_t size = sizeof(*s);
1593
+ if (s->set) {
1594
+ size += sizeof(*s->set);
1595
1595
  }
1596
1596
 
1597
1597
  return size;
@@ -1877,12 +1877,14 @@ extern "C" void Init_re2(void) {
1877
1877
  re2_eSetUnsupportedError = rb_define_class_under(re2_cSet, "UnsupportedError",
1878
1878
  rb_const_get(rb_cObject, rb_intern("StandardError")));
1879
1879
 
1880
- rb_define_alloc_func(re2_cRegexp, (VALUE (*)(VALUE))re2_regexp_allocate);
1880
+ rb_define_alloc_func(re2_cRegexp,
1881
+ reinterpret_cast<VALUE (*)(VALUE)>(re2_regexp_allocate));
1881
1882
  rb_define_alloc_func(re2_cMatchData,
1882
- (VALUE (*)(VALUE))re2_matchdata_allocate);
1883
+ reinterpret_cast<VALUE (*)(VALUE)>(re2_matchdata_allocate));
1883
1884
  rb_define_alloc_func(re2_cScanner,
1884
- (VALUE (*)(VALUE))re2_scanner_allocate);
1885
- rb_define_alloc_func(re2_cSet, (VALUE (*)(VALUE))re2_set_allocate);
1885
+ reinterpret_cast<VALUE (*)(VALUE)>(re2_scanner_allocate));
1886
+ rb_define_alloc_func(re2_cSet,
1887
+ reinterpret_cast<VALUE (*)(VALUE)>(re2_set_allocate));
1886
1888
 
1887
1889
  rb_define_method(re2_cMatchData, "string",
1888
1890
  RUBY_METHOD_FUNC(re2_matchdata_string), 0);
data/lib/2.6/re2.so CHANGED
Binary file
data/lib/2.7/re2.so CHANGED
Binary file
data/lib/3.0/re2.so CHANGED
Binary file
data/lib/3.1/re2.so CHANGED
Binary file
data/lib/3.2/re2.so CHANGED
Binary file
data/lib/re2/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RE2
4
- VERSION = "2.4.0"
4
+ VERSION = "2.4.2"
5
5
  end
data/re2.gemspec CHANGED
@@ -11,7 +11,6 @@ Gem::Specification.new do |s|
11
11
  s.license = "BSD-3-Clause"
12
12
  s.required_ruby_version = ">= 2.6.0"
13
13
  s.files = [
14
- ".rspec",
15
14
  "dependencies.yml",
16
15
  "ext/re2/extconf.rb",
17
16
  "ext/re2/re2.cc",
@@ -28,6 +27,7 @@ Gem::Specification.new do |s|
28
27
  "re2.gemspec"
29
28
  ]
30
29
  s.test_files = [
30
+ ".rspec",
31
31
  "spec/spec_helper.rb",
32
32
  "spec/re2_spec.rb",
33
33
  "spec/kernel_spec.rb",
@@ -1,5 +1,14 @@
1
1
  # encoding: utf-8
2
+ require 'objspace'
3
+
2
4
  RSpec.describe RE2::MatchData do
5
+ it "reports a larger consuming memory size when it has more matches" do
6
+ matches1 = RE2::Regexp.new('w(o)').match('woo')
7
+ matches2 = RE2::Regexp.new('w(o)(o)').match('woo')
8
+
9
+ expect(ObjectSpace.memsize_of(matches1)).to be < ObjectSpace.memsize_of(matches2)
10
+ end
11
+
3
12
  describe "#to_a" do
4
13
  it "is populated with the match and capturing groups" do
5
14
  a = RE2::Regexp.new('w(o)(o)').match('woo').to_a
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: re2
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.0
4
+ version: 2.4.2
5
5
  platform: x86-mingw32
6
6
  authors:
7
7
  - Paul Mucur
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-11-11 00:00:00.000000000 Z
12
+ date: 2023-11-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake-compiler
@@ -115,6 +115,7 @@ signing_key:
115
115
  specification_version: 4
116
116
  summary: Ruby bindings to RE2.
117
117
  test_files:
118
+ - ".rspec"
118
119
  - spec/spec_helper.rb
119
120
  - spec/re2_spec.rb
120
121
  - spec/kernel_spec.rb