splitclient-rb 7.1.2 → 7.1.4.pre.rc3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6d4a66be49c3e76dca3343d6c793662aa700fc46e2370a162bca83197e4afa8e
4
- data.tar.gz: 0f7ad8697267da9ec9fd022e4d0cea613a8dbc8ccdc467d4eaa778a21985249f
3
+ metadata.gz: 9620c2a7b400b64be50aa505287144b0d6433533a3d4113a78bc001966e055d6
4
+ data.tar.gz: 4cc0d0a12dcb7c8033da6ba7380e01f8601d13e44a6a3f2db1ae976962440af1
5
5
  SHA512:
6
- metadata.gz: ceb49c50e01e0b12bfe0a868f1aacf7703a9938a365d5a0cb37485ef4064ef0c9abf9192428df386fda6f2a39cd151619f1abe616d0c5ae6afc09776f4d3d8b0
7
- data.tar.gz: b556e373646c4c8e49b5312bb09ea4c13554910c51870a5a5b29681a9dd4caf2ad995f0792b30ce903539df28c3b28a3fc21eba748b4da483f0962b6f41de979
6
+ metadata.gz: b531b9ebb85ca3f725ed4e15a4043b48d4c3f7981a9c6a32aefcf995914eda1b9ceebbe7410b3450a3d5bc4315334039512013fca11e61d420991e34c6c3c162
7
+ data.tar.gz: b0fe2c13b6f7b0021cc19cb9a32c5572e6f988d05132a13e5ed0e404f95a0b407cfe4c026ce13d80d21798708c39c587c31eb907604537604a8110dd296c55a3
@@ -1,5 +1,8 @@
1
1
  CHANGES
2
2
 
3
+ 7.1.3 (Jul 31, 2020)
4
+ - Updated rake development dependency to ~> 12.3.3
5
+
3
6
  7.1.2 (Jun 15, 2020)
4
7
  - Fixed uninitialized constant LocalhostSplitStore::YAML for console apps.
5
8
  - Updated default_streaming_enabled to true.
data/Rakefile CHANGED
@@ -11,19 +11,14 @@ RSpec::Core::RakeTask.new(:spec)
11
11
  RuboCop::RakeTask.new(:rubocop)
12
12
 
13
13
  task spec: :compile
14
- case RUBY_PLATFORM
15
- when 'java'
14
+
15
+ if RUBY_PLATFORM == 'java'
16
16
  require 'rake/javaextensiontask'
17
17
  Rake::JavaExtensionTask.new 'murmurhash' do |ext|
18
18
  ext.lib_dir = 'lib/murmurhash'
19
19
  ext.target_version = '1.7'
20
20
  ext.source_version = '1.7'
21
21
  end
22
- else
23
- require 'rake/extensiontask'
24
- Rake::ExtensionTask.new 'murmurhash' do |ext|
25
- ext.lib_dir = 'lib/murmurhash'
26
- end
27
22
  end
28
23
 
29
24
  if !ENV['APPRAISAL_INITIALIZED']
@@ -105,7 +105,7 @@ require 'splitclient-rb/sse/notification_processor'
105
105
  require 'splitclient-rb/sse/sse_handler'
106
106
 
107
107
  # C extension
108
- require 'murmurhash/murmurhash_mri'
108
+ #require 'murmurhash/murmurhash_mri'
109
109
 
110
110
  module SplitIoClient
111
111
  def self.root
@@ -1,3 +1,7 @@
1
+ unless defined?(JRUBY_VERSION)
2
+ require 'digest/murmurhash'
3
+ end
4
+
1
5
  module SplitIoClient
2
6
  # Misc class in charge of providing hash functions and
3
7
  # determination of treatment based on concept of buckets
@@ -9,7 +13,7 @@ module SplitIoClient
9
13
  when 'java'
10
14
  Proc.new { |key, seed| Java::MurmurHash3.murmurhash3_x86_32(key, seed) }
11
15
  else
12
- Proc.new { |key, seed| Digest::MurmurHashMRI3_x86_32.rawdigest(key, [seed].pack('L')) }
16
+ Proc.new { |key, seed| Digest::MurmurHash3_x86_32.rawdigest(key, [seed].pack('L')) }
13
17
  end
14
18
  end
15
19
 
@@ -1,3 +1,7 @@
1
+ unless defined?(JRUBY_VERSION)
2
+ require 'digest/murmurhash'
3
+ end
4
+
1
5
  module SplitIoClient
2
6
  module Engine
3
7
  module Parser
@@ -1,3 +1,3 @@
1
1
  module SplitIoClient
2
- VERSION = '7.1.2'
2
+ VERSION = '7.1.4.pre.rc3'
3
3
  end
@@ -13,7 +13,7 @@ Gem::Specification.new do |spec|
13
13
  spec.summary = 'Ruby client for split SDK.'
14
14
  spec.description = 'Ruby client for using split SDK.'
15
15
  spec.homepage = 'https://github.com/splitio/ruby-client'
16
- spec.license = 'Apache 2.0'
16
+ spec.license = 'Apache-2.0'
17
17
 
18
18
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(spec|features|ext)/}) }
19
19
 
@@ -26,13 +26,7 @@ Gem::Specification.new do |spec|
26
26
  lib/murmurhash/murmurhash.jar]
27
27
  )
28
28
  else
29
- spec.files.concat(
30
- %w[ext/murmurhash/3_x86_32.c
31
- ext/murmurhash/extconf.rb
32
- ext/murmurhash/murmurhash.c
33
- ext/murmurhash/murmurhash.h]
34
- )
35
- spec.extensions = ['ext/murmurhash/extconf.rb']
29
+ spec.add_runtime_dependency 'digest-murmurhash', '>= 1.1.1'
36
30
  end
37
31
 
38
32
  spec.add_development_dependency 'allocation_stats'
@@ -40,7 +34,7 @@ Gem::Specification.new do |spec|
40
34
  spec.add_development_dependency 'bundler', '~> 1.11'
41
35
  spec.add_development_dependency 'pry'
42
36
  spec.add_development_dependency 'pry-nav'
43
- spec.add_development_dependency 'rake', '~> 10.0'
37
+ spec.add_development_dependency 'rake', '12.3.3'
44
38
  spec.add_development_dependency 'rake-compiler'
45
39
  spec.add_development_dependency 'rspec'
46
40
  spec.add_development_dependency 'rubocop', '0.59.0'
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: splitclient-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.1.2
4
+ version: 7.1.4.pre.rc3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Split Software
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-06-15 00:00:00.000000000 Z
11
+ date: 2020-08-26 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: digest-murmurhash
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 1.1.1
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 1.1.1
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: allocation_stats
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -84,16 +98,16 @@ dependencies:
84
98
  name: rake
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
- - - "~>"
101
+ - - '='
88
102
  - !ruby/object:Gem::Version
89
- version: '10.0'
103
+ version: 12.3.3
90
104
  type: :development
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
- - - "~>"
108
+ - - '='
95
109
  - !ruby/object:Gem::Version
96
- version: '10.0'
110
+ version: 12.3.3
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: rake-compiler
99
113
  requirement: !ruby/object:Gem::Requirement
@@ -308,8 +322,7 @@ description: Ruby client for using split SDK.
308
322
  email:
309
323
  - pato@split.io
310
324
  executables: []
311
- extensions:
312
- - ext/murmurhash/extconf.rb
325
+ extensions: []
313
326
  extra_rdoc_files: []
314
327
  files:
315
328
  - ".github/pull_request_template.md"
@@ -324,10 +337,6 @@ files:
324
337
  - LICENSE
325
338
  - README.md
326
339
  - Rakefile
327
- - ext/murmurhash/3_x86_32.c
328
- - ext/murmurhash/extconf.rb
329
- - ext/murmurhash/murmurhash.c
330
- - ext/murmurhash/murmurhash.h
331
340
  - gemfiles/faraday_after_0.13.gemfile
332
341
  - gemfiles/faraday_before_0.13.gemfile
333
342
  - lib/murmurhash/base.rb
@@ -435,7 +444,7 @@ files:
435
444
  - tasks/irb.rake
436
445
  homepage: https://github.com/splitio/ruby-client
437
446
  licenses:
438
- - Apache 2.0
447
+ - Apache-2.0
439
448
  metadata: {}
440
449
  post_install_message:
441
450
  rdoc_options: []
@@ -448,9 +457,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
448
457
  version: '0'
449
458
  required_rubygems_version: !ruby/object:Gem::Requirement
450
459
  requirements:
451
- - - ">="
460
+ - - ">"
452
461
  - !ruby/object:Gem::Version
453
- version: '0'
462
+ version: 1.3.1
454
463
  requirements: []
455
464
  rubygems_version: 3.0.6
456
465
  signing_key:
@@ -1,88 +0,0 @@
1
- /*
2
- * MurmurHash3_x86_32 (C) Austin Appleby
3
- */
4
-
5
- #include "murmurhash.h"
6
-
7
- uint32_t
8
- murmur_hash_process3_x86_32(const char * key, uint32_t len, uint32_t seed)
9
- {
10
- const uint8_t * data = (const uint8_t*)key;
11
- const int nblocks = len / 4;
12
- int i;
13
-
14
- uint32_t h1 = seed;
15
-
16
- const uint32_t c1 = 0xcc9e2d51;
17
- const uint32_t c2 = 0x1b873593;
18
-
19
- //----------
20
- // body
21
-
22
- const uint32_t * blocks = (const uint32_t *)(data + nblocks*4);
23
-
24
- for(i = -nblocks; i; i++)
25
- {
26
- uint32_t k1 = getblock32(blocks,i);
27
-
28
- k1 *= c1;
29
- k1 = ROTL32(k1,15);
30
- k1 *= c2;
31
-
32
- h1 ^= k1;
33
- h1 = ROTL32(h1,13);
34
- h1 = h1*5+0xe6546b64;
35
- }
36
-
37
- //----------
38
- // tail
39
-
40
- const uint8_t * tail = (const uint8_t*)(data + nblocks*4);
41
-
42
- uint32_t k1 = 0;
43
-
44
- switch(len & 3)
45
- {
46
- case 3: k1 ^= tail[2] << 16;
47
- case 2: k1 ^= tail[1] << 8;
48
- case 1: k1 ^= tail[0];
49
- k1 *= c1; k1 = ROTL32(k1,15); k1 *= c2; h1 ^= k1;
50
- };
51
-
52
- //----------
53
- // finalization
54
-
55
- h1 ^= len;
56
-
57
- h1 = fmix32(h1);
58
-
59
- return h1;
60
- }
61
-
62
- VALUE
63
- murmur3_x86_32_finish(VALUE self)
64
- {
65
- uint8_t digest[4];
66
- uint32_t h;
67
-
68
- h = _murmur_finish32(self, murmur_hash_process3_x86_32);
69
- assign_by_endian_32(digest, h);
70
- return rb_str_new((const char*) digest, 4);
71
- }
72
-
73
- VALUE
74
- murmur3_x86_32_s_digest(int argc, VALUE *argv, VALUE klass)
75
- {
76
- uint8_t digest[4];
77
- uint32_t h;
78
-
79
- h = _murmur_s_digest32(argc, argv, klass, murmur_hash_process3_x86_32);
80
- assign_by_endian_32(digest, h);
81
- return rb_str_new((const char*) digest, 4);
82
- }
83
-
84
- VALUE
85
- murmur3_x86_32_s_rawdigest(int argc, VALUE *argv, VALUE klass)
86
- {
87
- return ULL2NUM(_murmur_s_digest32(argc, argv, klass, murmur_hash_process3_x86_32));
88
- }
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'mkmf'
4
-
5
- create_makefile('murmurhash/murmurhash')
@@ -1,251 +0,0 @@
1
- #include "murmurhash.h"
2
-
3
- ID id_DEFAULT_SEED;
4
- ID iv_seed;
5
- ID iv_buffer;
6
-
7
-
8
- inline uint32_t rotl32 ( uint32_t x, int8_t r )
9
- {
10
- return (x << r) | (x >> (32 - r));
11
- }
12
- inline uint64_t rotl64 ( uint64_t x, int8_t r )
13
- {
14
- return (x << r) | (x >> (64 - r));
15
- }
16
-
17
- FORCE_INLINE uint32_t getblock32 ( const uint32_t * p, int i )
18
- {
19
- return p[i];
20
- }
21
-
22
- FORCE_INLINE uint64_t getblock64 ( const uint64_t * p, int i )
23
- {
24
- return p[i];
25
- }
26
-
27
- FORCE_INLINE uint32_t fmix32 ( uint32_t h )
28
- {
29
- h ^= h >> 16;
30
- h *= 0x85ebca6b;
31
- h ^= h >> 13;
32
- h *= 0xc2b2ae35;
33
- h ^= h >> 16;
34
-
35
- return h;
36
- }
37
-
38
- FORCE_INLINE uint64_t fmix64 ( uint64_t k )
39
- {
40
- k ^= k >> 33;
41
- k *= BIG_CONSTANT(0xff51afd7ed558ccd);
42
- k ^= k >> 33;
43
- k *= BIG_CONSTANT(0xc4ceb9fe1a85ec53);
44
- k ^= k >> 33;
45
-
46
- return k;
47
- }
48
-
49
- void
50
- assign_by_endian_32(uint8_t *digest, uint32_t h)
51
- {
52
- if (BIGENDIAN_P()) {
53
- digest[0] = h >> 24;
54
- digest[1] = h >> 16;
55
- digest[2] = h >> 8;
56
- digest[3] = h;
57
- }
58
- else {
59
- digest[3] = h >> 24;
60
- digest[2] = h >> 16;
61
- digest[1] = h >> 8;
62
- digest[0] = h;
63
- }
64
- }
65
-
66
- void
67
- assign_by_endian_64(uint8_t *digest, uint64_t h)
68
- {
69
- if (BIGENDIAN_P()) {
70
- digest[0] = h >> 56;
71
- digest[1] = h >> 48;
72
- digest[2] = h >> 40;
73
- digest[3] = h >> 32;
74
- digest[4] = h >> 24;
75
- digest[5] = h >> 16;
76
- digest[6] = h >> 8;
77
- digest[7] = h;
78
- }
79
- else {
80
- digest[7] = h >> 56;
81
- digest[6] = h >> 48;
82
- digest[5] = h >> 40;
83
- digest[4] = h >> 32;
84
- digest[3] = h >> 24;
85
- digest[2] = h >> 16;
86
- digest[1] = h >> 8;
87
- digest[0] = h;
88
- }
89
- }
90
-
91
- void
92
- assign_by_endian_128(uint8_t *digest, void *out)
93
- {
94
- int i;
95
-
96
- if (BIGENDIAN_P()) {
97
- for (i = 0; i < 4; i++) {
98
- digest[(i*4) ] = ((uint32_t*)out)[i] >> 24;
99
- digest[(i*4)+1] = ((uint32_t*)out)[i] >> 16;
100
- digest[(i*4)+2] = ((uint32_t*)out)[i] >> 8;
101
- digest[(i*4)+3] = ((uint32_t*)out)[i];
102
- }
103
- }
104
- else {
105
- for (i = 0; i < 4; i++) {
106
- digest[16-(i*4)-1] = ((uint32_t*)out)[i] >> 24;
107
- digest[16-(i*4)-2] = ((uint32_t*)out)[i] >> 16;
108
- digest[16-(i*4)-3] = ((uint32_t*)out)[i] >> 8;
109
- digest[16-(i*4)-4] = ((uint32_t*)out)[i];
110
- }
111
- }
112
- }
113
-
114
- static uint32_t
115
- rstring2uint32_t(VALUE str)
116
- {
117
- long len = RSTRING_LEN(str);
118
- if (UINT32_MAX < len) {
119
- rb_raise(rb_eRangeError, "String length=%ld will overflow from long to uint32_t", len);
120
- }
121
- return (uint32_t)len;
122
- }
123
-
124
- uint32_t
125
- _murmur_finish32(VALUE self, uint32_t (*process)(const char*, uint32_t, uint32_t))
126
- {
127
- const char *seed = RSTRING_PTR(rb_ivar_get(self, iv_seed));
128
- VALUE buffer = rb_ivar_get(self, iv_buffer);
129
- return process(RSTRING_PTR(buffer), rstring2uint32_t(buffer), *(uint32_t*)seed);
130
- }
131
-
132
- uint64_t
133
- _murmur_finish64(VALUE self, uint64_t (*process)(const char*, uint32_t, uint64_t))
134
- {
135
- const char *seed = RSTRING_PTR(rb_ivar_get(self, iv_seed));
136
- VALUE buffer = rb_ivar_get(self, iv_buffer);
137
- return process(RSTRING_PTR(buffer), rstring2uint32_t(buffer), *(uint64_t*)seed);
138
- }
139
-
140
- void
141
- _murmur_finish128(VALUE self, void *out, void (*process)(const char*, uint32_t, uint32_t, void*))
142
- {
143
- const char *seed = RSTRING_PTR(rb_ivar_get(self, iv_seed));
144
- VALUE buffer = rb_ivar_get(self, iv_buffer);
145
- process(RSTRING_PTR(buffer), rstring2uint32_t(buffer), *(uint32_t*)seed, out);
146
- }
147
-
148
- uint32_t
149
- _murmur_s_digest32(int argc, VALUE *argv, VALUE klass, uint32_t (*process)(const char *, uint32_t, uint32_t))
150
- {
151
- VALUE str;
152
- const char *seed;
153
-
154
- if (argc < 1)
155
- rb_raise(rb_eArgError, "no data given");
156
-
157
- str = *argv;
158
-
159
- StringValue(str);
160
-
161
- if (1 < argc) {
162
- StringValue(argv[1]);
163
- if (RSTRING_LEN(argv[1]) != 4) {
164
- rb_raise(rb_eArgError, "seed string should be 4 length");
165
- }
166
- seed = RSTRING_PTR(argv[1]);
167
- } else {
168
- seed = RSTRING_PTR(rb_const_get(klass, id_DEFAULT_SEED));
169
- }
170
-
171
- return process(RSTRING_PTR(str), rstring2uint32_t(str), *(uint32_t*)seed);
172
- }
173
-
174
- uint64_t
175
- _murmur_s_digest64(int argc, VALUE *argv, VALUE klass, uint64_t (*process)(const char *, uint32_t, uint64_t))
176
- {
177
- VALUE str;
178
- const char *seed;
179
-
180
- if (argc < 1)
181
- rb_raise(rb_eArgError, "no data given");
182
-
183
- str = *argv;
184
-
185
- StringValue(str);
186
-
187
- if (1 < argc) {
188
- StringValue(argv[1]);
189
- if (RSTRING_LEN(argv[1]) != 8) {
190
- rb_raise(rb_eArgError, "seed string should be 8 length");
191
- }
192
- seed = RSTRING_PTR(argv[1]);
193
- } else {
194
- seed = RSTRING_PTR(rb_const_get(klass, id_DEFAULT_SEED));
195
- }
196
-
197
- return process(RSTRING_PTR(str), rstring2uint32_t(str), *(uint64_t*)seed);
198
- }
199
-
200
- void
201
- _murmur_s_digest128(int argc, VALUE *argv, VALUE klass, void *out, void (*process)(const char *, uint32_t, uint32_t, void *))
202
- {
203
- VALUE str;
204
- const char *seed;
205
- int seed_length = 4;
206
-
207
- if (argc < 1)
208
- rb_raise(rb_eArgError, "no data given");
209
-
210
- str = *argv;
211
-
212
- StringValue(str);
213
-
214
- if (1 < argc) {
215
- StringValue(argv[1]);
216
- if (RSTRING_LEN(argv[1]) != seed_length) {
217
- rb_raise(rb_eArgError, "seed string should be %d length", seed_length);
218
- }
219
- seed = RSTRING_PTR(argv[1]);
220
- } else {
221
- seed = RSTRING_PTR(rb_const_get(klass, id_DEFAULT_SEED));
222
- }
223
-
224
- process(RSTRING_PTR(str), rstring2uint32_t(str), *(uint32_t*)seed, out);
225
- }
226
-
227
-
228
- void
229
- Init_murmurhash(void)
230
- {
231
- VALUE cDigest_MurmurHash1,
232
- cDigest_MurmurHash2,
233
- cDigest_MurmurHash2A,
234
- cDigest_MurmurHash64A,
235
- cDigest_MurmurHash64B,
236
- cDigest_MurmurHashNeutral2,
237
- cDigest_MurmurHashAligned2,
238
- cDigest_MurmurHash3_x86_32,
239
- cDigest_MurmurHash3_x86_128,
240
- cDigest_MurmurHash3_x64_128;
241
-
242
- id_DEFAULT_SEED = rb_intern("DEFAULT_SEED");
243
- iv_seed = rb_intern("@seed");
244
- iv_buffer = rb_intern("@buffer");
245
-
246
-
247
- cDigest_MurmurHash3_x86_32 = rb_path2class("Digest::MurmurHashMRI3_x86_32");
248
- rb_define_singleton_method(cDigest_MurmurHash3_x86_32, "digest", murmur3_x86_32_s_digest, -1);
249
- rb_define_singleton_method(cDigest_MurmurHash3_x86_32, "rawdigest", murmur3_x86_32_s_rawdigest, -1);
250
- rb_define_private_method(cDigest_MurmurHash3_x86_32, "finish", murmur3_x86_32_finish, 0);
251
- }
@@ -1,94 +0,0 @@
1
- #ifndef MURMURHASH_INCLUDED
2
- # define MURMURHASH_INCLUDED
3
-
4
- #include "ruby.h"
5
-
6
- // Microsoft Visual Studio
7
-
8
- #if defined(_MSC_VER)
9
- #define FORCE_INLINE __forceinline
10
- #include <stdlib.h>
11
- #define ROTL32(x,y) _rotl(x,y)
12
- #define ROTL64(x,y) _rotl64(x,y)
13
- #define BIG_CONSTANT(x) (x)
14
- #else // defined(_MSC_VER)
15
- #define FORCE_INLINE inline __attribute__((always_inline))
16
- #define ROTL32(x,y) rotl32(x,y)
17
- #define ROTL64(x,y) rotl64(x,y)
18
- #define BIG_CONSTANT(x) (x##LLU)
19
- #endif // !defined(_MSC_VER)
20
-
21
- #ifdef DYNAMIC_ENDIAN
22
- /* for universal binary of NEXTSTEP and MacOS X */
23
- /* useless since autoconf 2.63? */
24
- static int
25
- is_bigendian(void)
26
- {
27
- static int init = 0;
28
- static int endian_value;
29
- char *p;
30
-
31
- if (init) return endian_value;
32
- init = 1;
33
- p = (char*)&init;
34
- return endian_value = p[0] ? 0 : 1;
35
- }
36
- # define BIGENDIAN_P() (is_bigendian())
37
- #elif defined(WORDS_BIGENDIAN)
38
- # define BIGENDIAN_P() 1
39
- #else
40
- # define BIGENDIAN_P() 0
41
- #endif
42
-
43
- #define MURMURHASH_MAGIC 0x5bd1e995
44
- #define MURMURHASH_MAGIC64A BIG_CONSTANT(0xc6a4a7935bd1e995)
45
-
46
- void assign_by_endian_32(uint8_t *digest, uint32_t h);
47
- void assign_by_endian_64(uint8_t *digest, uint64_t h);
48
- void assign_by_endian_128(uint8_t*, void*);
49
-
50
- uint32_t rotl32(uint32_t, int8_t);
51
- uint64_t rotl64(uint64_t, int8_t);
52
- uint32_t getblock32(const uint32_t*, int);
53
- uint64_t getblock64(const uint64_t*, int);
54
- uint32_t fmix32(uint32_t);
55
- uint64_t fmix64(uint64_t);
56
- uint32_t _murmur_finish32(VALUE, uint32_t (*)(const char*, uint32_t, uint32_t));
57
- uint64_t _murmur_finish64(VALUE, uint64_t (*)(const char*, uint32_t, uint64_t));
58
- void _murmur_finish128(VALUE, void*, void (*)(const char*, uint32_t, uint32_t, void*));
59
- uint32_t _murmur_s_digest32(int, VALUE*, VALUE, uint32_t (*)(const char*, uint32_t, uint32_t));
60
- uint64_t _murmur_s_digest64(int, VALUE*, VALUE, uint64_t (*)(const char*, uint32_t, uint64_t));
61
- void _murmur_s_digest128(int, VALUE*, VALUE, void*, void (*)(const char*, uint32_t, uint32_t, void*));
62
-
63
- VALUE murmur1_finish(VALUE);
64
- VALUE murmur1_s_digest(int, VALUE*, VALUE);
65
- VALUE murmur1_s_rawdigest(int, VALUE*, VALUE);
66
- VALUE murmur2_finish(VALUE);
67
- VALUE murmur2_s_digest(int, VALUE*, VALUE);
68
- VALUE murmur2_s_rawdigest(int, VALUE*, VALUE);
69
- VALUE murmur2a_finish(VALUE);
70
- VALUE murmur2a_s_digest(int, VALUE*, VALUE);
71
- VALUE murmur2a_s_rawdigest(int, VALUE*, VALUE);
72
- VALUE murmur64a_finish(VALUE);
73
- VALUE murmur64a_s_digest(int, VALUE*, VALUE);
74
- VALUE murmur64a_s_rawdigest(int, VALUE*, VALUE);
75
- VALUE murmur64b_finish(VALUE);
76
- VALUE murmur64b_s_digest(int, VALUE*, VALUE);
77
- VALUE murmur64b_s_rawdigest(int, VALUE*, VALUE);
78
- VALUE murmur_neutral2_finish(VALUE);
79
- VALUE murmur_neutral2_s_digest(int, VALUE*, VALUE);
80
- VALUE murmur_neutral2_s_rawdigest(int, VALUE*, VALUE);
81
- VALUE murmur_aligned2_finish(VALUE);
82
- VALUE murmur_aligned2_s_digest(int, VALUE*, VALUE);
83
- VALUE murmur_aligned2_s_rawdigest(int, VALUE*, VALUE);
84
- VALUE murmur3_x86_32_finish(VALUE);
85
- VALUE murmur3_x86_32_s_digest(int, VALUE*, VALUE);
86
- VALUE murmur3_x86_32_s_rawdigest(int, VALUE*, VALUE);
87
- VALUE murmur3_x86_128_finish(VALUE);
88
- VALUE murmur3_x86_128_s_digest(int, VALUE*, VALUE);
89
- VALUE murmur3_x86_128_s_rawdigest(int, VALUE*, VALUE);
90
- VALUE murmur3_x64_128_finish(VALUE);
91
- VALUE murmur3_x64_128_s_digest(int, VALUE*, VALUE);
92
- VALUE murmur3_x64_128_s_rawdigest(int, VALUE*, VALUE);
93
-
94
- #endif /* ifndef MURMURHASH_INCLUDED */