sereal 0.0.16 → 0.0.17
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 +4 -4
- data/ext/sereal/buffer.h +3 -19
- data/ext/sereal/decode.c +7 -2
- data/ext/sereal/encode.c +1 -1
- data/ext/sereal/extconf.rb +2 -0
- data/ext/sereal/sereal.h +3 -1
- metadata +16 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d8a56a6cb7a2ba50f8301e8f4d86ed041e86b72c
|
4
|
+
data.tar.gz: 19a41dd12c2323163ad7b2020fe77b6fbe7dcd88
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5f876f0f313862a4fc5ebc71953e0fe0a734d244912314ac0363b045aa845b29ca56b8b82ccee28ed46da727112490f9327e890f591c0e4b883a8a87e695080e
|
7
|
+
data.tar.gz: b611d10133aaef4f6a5e9a69ba02249b3f97013a5de53237b38078a4e61028665aae044e23e2af6793942be52a7e2a8ace26596f0536ffb30db50ef489f966cc
|
data/ext/sereal/buffer.h
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
#include "sereal.h"
|
2
2
|
#include <errno.h>
|
3
|
-
|
3
|
+
#include <sys/types.h>
|
4
|
+
#include <sys/uio.h>
|
5
|
+
#include <unistd.h>
|
4
6
|
static inline void s_free_data_if_not_mine(sereal_t *s) {
|
5
7
|
if (!(s->flags & __NOT_MINE)) {
|
6
8
|
if (s->data)
|
@@ -190,21 +192,3 @@ static inline void s_set_flag_at_pos(sereal_t *s, u32 pos, u8 flag) {
|
|
190
192
|
u8 *p = s_get_p_at_pos(s,pos,0);
|
191
193
|
*p |= flag;
|
192
194
|
}
|
193
|
-
|
194
|
-
static void b_dump(u8 *p, u32 len, u32 pos) {
|
195
|
-
u32 i;
|
196
|
-
|
197
|
-
fprintf(stderr,"\n-----------\n");
|
198
|
-
for (i = 0; i < len; i++) {
|
199
|
-
if (i == pos)
|
200
|
-
fprintf(stderr," [%c %d] ",p[i],p[i]);
|
201
|
-
else
|
202
|
-
fprintf(stderr," (%c %d) ",p[i],p[i]);
|
203
|
-
}
|
204
|
-
fprintf(stderr,"\n-----------\n");
|
205
|
-
}
|
206
|
-
|
207
|
-
static void s_dump(sereal_t *s) {
|
208
|
-
E("[ pos: %d, size: %d, rsize: %d ]\n",s->pos,s->size,s->rsize);
|
209
|
-
b_dump(s->data,s->size,s->pos);
|
210
|
-
}
|
data/ext/sereal/decode.c
CHANGED
@@ -127,6 +127,7 @@ static VALUE s_read_rb_string_bang(sereal_t *s,u8 t) {
|
|
127
127
|
}
|
128
128
|
#undef RETURN_STRING
|
129
129
|
s_raise(s,rb_eTypeError, "undefined string type %d",t);
|
130
|
+
return Qnil;
|
130
131
|
}
|
131
132
|
|
132
133
|
static VALUE s_read_next_rb_string_bang(sereal_t *s) {
|
@@ -173,6 +174,7 @@ static VALUE s_read_pad(sereal_t *s, u8 tag) {
|
|
173
174
|
|
174
175
|
static VALUE s_read_extend(sereal_t *s, u8 tag) {
|
175
176
|
s_raise(s,rb_eArgError,"extend tags are not supported");
|
177
|
+
return Qnil;
|
176
178
|
}
|
177
179
|
|
178
180
|
static VALUE s_read_ref(sereal_t *s, u8 tag) {
|
@@ -180,7 +182,7 @@ static VALUE s_read_ref(sereal_t *s, u8 tag) {
|
|
180
182
|
s_raise(s,rb_eArgError,"there are no references stored");
|
181
183
|
u64 off = s_get_varint_bang(s);
|
182
184
|
VALUE object = rb_hash_lookup(s->tracked,INT2FIX(off + s->hdr_end));
|
183
|
-
SD(s,"reading reference from offset: %
|
185
|
+
SD(s,"reading reference from offset: %" PRIu64 ", id: %d",off + s->hdr_end,FIX2INT(rb_obj_id(object)));
|
184
186
|
return object;
|
185
187
|
}
|
186
188
|
|
@@ -338,7 +340,7 @@ again:
|
|
338
340
|
return Qnil;
|
339
341
|
}
|
340
342
|
if (size < __MIN_SIZE)
|
341
|
-
s_raise(s,rb_eTypeError,"size(%d) is less then min packet size %d, offset: %
|
343
|
+
s_raise(s,rb_eTypeError,"size(%d) is less then min packet size %d, offset: %" PRIu64,size,__MIN_SIZE,offset);
|
342
344
|
|
343
345
|
s->flags |= __NOT_MINE;
|
344
346
|
s->data = (u8 *) RSTRING_PTR(payload) + offset;
|
@@ -351,6 +353,9 @@ again:
|
|
351
353
|
|
352
354
|
u8 version = s_get_u8_bang(s);
|
353
355
|
u8 suffix = s_get_varint_bang(s);
|
356
|
+
if (suffix > 0)
|
357
|
+
s_raise(s,rb_eTypeError,"HEADER-SUFFIX-SIZE is not supported yet");
|
358
|
+
|
354
359
|
u8 is_compressed;
|
355
360
|
|
356
361
|
if ((version & SRL_PROTOCOL_ENCODING_MASK) == SRL_PROTOCOL_ENCODING_SNAPPY) {
|
data/ext/sereal/encode.c
CHANGED
@@ -433,7 +433,7 @@ method_sereal_encode(VALUE self, VALUE args) {
|
|
433
433
|
s->size = compressed_len + s_header_len + compressed_len_varint + un_compressed_len_varint;
|
434
434
|
s->pos = s->size;
|
435
435
|
}
|
436
|
-
VALUE ret = rb_str_new(s->data,s->size);
|
436
|
+
VALUE ret = rb_str_new((char *) s->data,s->size);
|
437
437
|
s_destroy(s);
|
438
438
|
return ret;
|
439
439
|
}
|
data/ext/sereal/extconf.rb
CHANGED
@@ -2,6 +2,8 @@ require 'mkmf'
|
|
2
2
|
|
3
3
|
have_func("rb_intern_str", ["ruby.h"])
|
4
4
|
have_func("rb_sym_to_s", ["ruby.h"])
|
5
|
+
have_func("rb_hash_clear", ["ruby.h"])
|
6
|
+
$CFLAGS << ' -Wall -Wno-unknown-warning-option -Wno-variadic-macros -Wno-gnu-zero-variadic-macro-arguments -Wno-declaration-after-statement -Wno-c99-extensions -O3 '
|
5
7
|
|
6
8
|
extension_name = 'sereal'
|
7
9
|
dir_config(extension_name)
|
data/ext/sereal/sereal.h
CHANGED
@@ -112,7 +112,9 @@ extern VALUE SerealPerlObject;
|
|
112
112
|
#ifndef HAVE_RB_SYM_TO_S
|
113
113
|
#define rb_sym_to_s(object) rb_funcall(object,rb_intern("to_s"),0)
|
114
114
|
#endif
|
115
|
-
|
115
|
+
#ifndef HAVE_RB_HASH_CLEAR
|
116
|
+
#define rb_hash_clear(object) rb_funcall(object,rb_intern("clear"),0)
|
117
|
+
#endif
|
116
118
|
#define __RAW 0
|
117
119
|
#define __SNAPPY 1
|
118
120
|
#define __SNAPPY_INCR 2
|
metadata
CHANGED
@@ -1,27 +1,27 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sereal
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.17
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Borislav Nikolov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-10-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake-compiler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
description: Sereal encoder/decoder (https://github.com/Sereal/Sereal)
|
@@ -33,44 +33,44 @@ extensions:
|
|
33
33
|
extra_rdoc_files:
|
34
34
|
- ext/sereal/sereal.c
|
35
35
|
files:
|
36
|
-
- bin/rsrl
|
37
|
-
- ext/sereal/buffer.h
|
38
36
|
- ext/sereal/decode.c
|
39
|
-
- ext/sereal/decode.h
|
40
37
|
- ext/sereal/encode.c
|
38
|
+
- ext/sereal/sereal.c
|
39
|
+
- ext/sereal/snappy/csnappy_compress.c
|
40
|
+
- ext/sereal/snappy/csnappy_decompress.c
|
41
|
+
- ext/sereal/buffer.h
|
42
|
+
- ext/sereal/decode.h
|
41
43
|
- ext/sereal/encode.h
|
42
|
-
- ext/sereal/extconf.rb
|
43
44
|
- ext/sereal/proto.h
|
44
|
-
- ext/sereal/sereal.c
|
45
45
|
- ext/sereal/sereal.h
|
46
46
|
- ext/sereal/snappy/csnappy.h
|
47
47
|
- ext/sereal/snappy/csnappy_compat.h
|
48
|
-
- ext/sereal/snappy/csnappy_compress.c
|
49
|
-
- ext/sereal/snappy/csnappy_decompress.c
|
50
48
|
- ext/sereal/snappy/csnappy_internal.h
|
51
49
|
- ext/sereal/snappy/csnappy_internal_userspace.h
|
50
|
+
- ext/sereal/extconf.rb
|
51
|
+
- bin/rsrl
|
52
52
|
homepage: https://github.com/Sereal/Sereal
|
53
53
|
licenses: []
|
54
54
|
metadata: {}
|
55
55
|
post_install_message:
|
56
56
|
rdoc_options:
|
57
|
-
-
|
58
|
-
-
|
57
|
+
- --exclude
|
58
|
+
- .*\.so
|
59
59
|
require_paths:
|
60
60
|
- lib
|
61
61
|
required_ruby_version: !ruby/object:Gem::Requirement
|
62
62
|
requirements:
|
63
|
-
- -
|
63
|
+
- - '>='
|
64
64
|
- !ruby/object:Gem::Version
|
65
65
|
version: '0'
|
66
66
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
67
67
|
requirements:
|
68
|
-
- -
|
68
|
+
- - '>='
|
69
69
|
- !ruby/object:Gem::Version
|
70
70
|
version: '0'
|
71
71
|
requirements: []
|
72
72
|
rubyforge_project:
|
73
|
-
rubygems_version: 2.
|
73
|
+
rubygems_version: 2.0.14
|
74
74
|
signing_key:
|
75
75
|
specification_version: 4
|
76
76
|
summary: Sereal encoder/decoder
|