google_hash 0.8.2 → 0.8.3
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.
- data/ChangeLog.txt +15 -0
- data/README +13 -4
- data/TODO +12 -6
- data/VERSION +1 -1
- data/ext/clean.bat +0 -0
- data/ext/clean.sh +0 -0
- data/ext/extconf.rb +9 -9
- data/ext/go.bat +0 -0
- data/ext/sparsehash-2.0.2/config.guess +0 -0
- data/ext/sparsehash-2.0.2/config.sub +0 -0
- data/ext/sparsehash-2.0.2/configure +0 -0
- data/ext/sparsehash-2.0.2/depcomp +0 -0
- data/ext/sparsehash-2.0.2/install-sh +0 -0
- data/ext/sparsehash-2.0.2/missing +0 -0
- data/ext/sparsehash-2.0.2/packages/deb.sh +0 -0
- data/ext/sparsehash-2.0.2/packages/deb/rules +0 -0
- data/ext/sparsehash-2.0.2/packages/rpm.sh +0 -0
- data/ext/sparsehash-2.0.2/sparsehash.sln +0 -0
- data/ext/sparsehash-2.0.2/vsprojects/hashtable_test/hashtable_test.vcproj +0 -0
- data/ext/sparsehash-2.0.2/vsprojects/libc_allocator_with_realloc_test/libc_allocator_with_realloc_test.vcproj +0 -0
- data/ext/sparsehash-2.0.2/vsprojects/simple_test/simple_test.vcproj +0 -0
- data/ext/sparsehash-2.0.2/vsprojects/sparsetable_unittest/sparsetable_unittest.vcproj +0 -0
- data/ext/sparsehash-2.0.2/vsprojects/time_hash_map/time_hash_map.vcproj +0 -0
- data/ext/sparsehash-2.0.2/vsprojects/type_traits_unittest/type_traits_unittest.vcproj +0 -0
- data/ext/spec.bat +0 -0
- data/ext/template/google_hash.cpp.erb +8 -11
- data/google_hash.gemspec +159 -142
- data/spec/bench_gc.rb +16 -14
- data/spec/benchmark.rb +7 -6
- data/spec/spec.google_hash.rb +23 -23
- metadata +3 -7
- data/changelog +0 -11
- data/ext/sparsehash-2.0.2/Makefile +0 -1336
- data/ext/sparsehash-2.0.2/config.status +0 -1238
- data/ext/sparsehash-2.0.2/src/config.h +0 -132
data/ChangeLog.txt
CHANGED
|
@@ -1,2 +1,17 @@
|
|
|
1
|
+
0.8.3
|
|
2
|
+
add #delete method to DenseHash
|
|
3
|
+
|
|
1
4
|
0.8.2
|
|
2
5
|
hopefully building for os x mavericks'ish gcc's now
|
|
6
|
+
|
|
7
|
+
0.8.1:
|
|
8
|
+
work with OS X newer compilers
|
|
9
|
+
|
|
10
|
+
0.8.0:
|
|
11
|
+
add a delete method for the Sparse** classes
|
|
12
|
+
actually delete the hashmaps when the object is collected by Ruby, instead of leaking
|
|
13
|
+
hopefully work with more versions of GCC
|
|
14
|
+
|
|
15
|
+
0.7.0:
|
|
16
|
+
fix building in linux with newer GCC's, fix building in windows with broken system command (?)
|
|
17
|
+
bump internal google_hash version to 0.8.2
|
data/README
CHANGED
|
@@ -3,9 +3,16 @@ The "google_hash" gem.
|
|
|
3
3
|
Its goal. To boldly be faster than any ruby hash has before (cue star trek TNG theme...).
|
|
4
4
|
|
|
5
5
|
Well, really the goal is a better hash for Ruby, either one that is faster or more space efficient than ruby's default.
|
|
6
|
-
To attempt to accomplish this, this library wraps the google hash sparse and dense hashes [1], which
|
|
7
|
-
|
|
8
|
-
for even better performance
|
|
6
|
+
To attempt to accomplish this, this library wraps the google hash sparse and dense hashes [1], which may perform better
|
|
7
|
+
for your use case [make sure to benchmark before and after!].
|
|
8
|
+
It also creates some "specialized" hashes, for instance, those that take an integer for their key, for even better performance
|
|
9
|
+
and decreased "garbage collected" RAM use, which can significantely speed up certain apps.
|
|
10
|
+
|
|
11
|
+
# how to run this benchmark:
|
|
12
|
+
|
|
13
|
+
$ cd ext && ruby extconf.rb && make
|
|
14
|
+
$ cd ../spec
|
|
15
|
+
$ ruby benchmark.rb
|
|
9
16
|
|
|
10
17
|
ruby 1.9.3p194 (2012-04-20 revision 35410) [i686-linux]
|
|
11
18
|
inserting 400000 objects
|
|
@@ -76,7 +83,7 @@ for the case of the Sparse version.
|
|
|
76
83
|
|
|
77
84
|
== Installation ==
|
|
78
85
|
|
|
79
|
-
gem install google_hash (if on
|
|
86
|
+
gem install google_hash (if on windows, you'll also need the devkit installed).
|
|
80
87
|
|
|
81
88
|
== usage ==
|
|
82
89
|
|
|
@@ -135,6 +142,8 @@ if you want it to remember insertion order, I could do that, too, or native "sto
|
|
|
135
142
|
Could also add vectors, vector(pairs), priority queues, floats, native bignums, other more complex types, if anybody wants me to.
|
|
136
143
|
|
|
137
144
|
This is meant to be one more tool in the rubyists toolbelt when trying to optimize speed-wise, and plans to expand to more types, but at least with this release it has a #each method.
|
|
145
|
+
|
|
146
|
+
Could add #sum methods, etc. for the numeric types, for instance.
|
|
138
147
|
|
|
139
148
|
Enjoy.
|
|
140
149
|
|
data/TODO
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
= maybe =
|
|
2
|
+
can you use GoogleHashDenseDouble *any way*?
|
|
3
|
+
I think there's a spec that calls this out LOL
|
|
4
|
+
|
|
5
|
+
fix it being able to store those larger numbers [on demand] [failing specs]
|
|
6
|
+
on demand
|
|
7
|
+
|
|
8
|
+
the spec file itself lists various todo's
|
|
9
|
+
|
|
10
|
+
auto-serialize [hmm...they can already do this in ruby tho...]
|
|
11
|
+
|
|
12
|
+
could be faster [?]:
|
|
2
13
|
|
|
3
14
|
http://code.google.com/p/ulib/wiki/AlignedHashingPerformance
|
|
4
|
-
|
|
5
|
-
some specs fail [?]
|
|
6
|
-
|
|
7
|
-
faster install, yikes!
|
|
8
|
-
single file for C code...remove unit test junk from sparsehash code?
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.8.
|
|
1
|
+
0.8.3
|
data/ext/clean.bat
CHANGED
|
File without changes
|
data/ext/clean.sh
CHANGED
|
File without changes
|
data/ext/extconf.rb
CHANGED
|
@@ -13,7 +13,7 @@ Dir.chdir 'sparsehash-2.0.2' do
|
|
|
13
13
|
configure = "sh configure --prefix=#{dir}"
|
|
14
14
|
puts configure
|
|
15
15
|
system configure
|
|
16
|
-
system "make"
|
|
16
|
+
system "make #{ARGV[0]}" # allow ruby extconf.rb -j 2 for parallel/faster builds
|
|
17
17
|
system "make install"
|
|
18
18
|
end
|
|
19
19
|
end
|
|
@@ -29,28 +29,28 @@ end
|
|
|
29
29
|
# create our files...
|
|
30
30
|
|
|
31
31
|
if OS.bits == 32
|
|
32
|
-
unreachable_int = 31
|
|
33
|
-
unreachable_long = 31
|
|
32
|
+
unreachable_int = "1<<31"
|
|
33
|
+
unreachable_long = "1<<31"
|
|
34
34
|
else
|
|
35
|
-
unreachable_int = 31
|
|
36
|
-
unreachable_long = 63
|
|
35
|
+
unreachable_int = "1<<31"
|
|
36
|
+
unreachable_long = "(long) 1<<63" # TODO NaN here instead or something? land mine otherwise? hmm...
|
|
37
37
|
end
|
|
38
38
|
|
|
39
39
|
ruby_key = {:convert_keys_from_ruby => "", :convert_keys_to_ruby => "", :key_type => "VALUE", :english_key_type => "ruby",
|
|
40
|
-
:extra_hash_params => ", hashrb, eqrb", :unreachable_key => "current_instance"}
|
|
40
|
+
:extra_hash_params => ", hashrb, eqrb", :unreachable_key => "current_instance"} # TODO unreachable -> NULL instead?
|
|
41
41
|
|
|
42
42
|
int_key = {:assert_key_type => 'T_FIXNUM', :convert_keys_from_ruby => "FIX2INT",
|
|
43
|
-
:convert_keys_to_ruby => "INT2FIX", :key_type => "int", :unreachable_key => "
|
|
43
|
+
:convert_keys_to_ruby => "INT2FIX", :key_type => "int", :unreachable_key => "#{unreachable_int}"}
|
|
44
44
|
|
|
45
45
|
# "long" is useful on 64 bit...since it can handle a wider range of incoming int's
|
|
46
46
|
|
|
47
47
|
long_key = {:assert_key_type => 'T_FIXNUM', :convert_keys_from_ruby => "FIX2LONG",
|
|
48
|
-
:convert_keys_to_ruby => "LONG2FIX", :key_type => "long", :unreachable_key => "
|
|
48
|
+
:convert_keys_to_ruby => "LONG2FIX", :key_type => "long", :unreachable_key => "#{unreachable_long}"}
|
|
49
49
|
|
|
50
50
|
# currently "big numbers" we handle by storing them as a double
|
|
51
51
|
# TODO floats [does ruby do real doubles underneath?] too
|
|
52
52
|
bignum_as_double_key = {:assert_key_type => ['T_BIGNUM', 'T_FIXNUM'], :convert_keys_from_ruby => "rb_big2dbl",
|
|
53
|
-
:convert_keys_to_ruby => "rb_dbl2big", :key_type => "double", :unreachable_key => "
|
|
53
|
+
:convert_keys_to_ruby => "rb_dbl2big", :key_type => "double", :unreachable_key => "#{unreachable_long}", # LODO is this a bignum value though? LODO TEST this key on 64 bit!
|
|
54
54
|
#:extra_hash_params => ", hashdouble, eqdouble", # these methods provided natively these days?
|
|
55
55
|
:extra_set_code => "if(TYPE(set_this) == T_FIXNUM)\nset_this = rb_int2big(FIX2INT(set_this));",
|
|
56
56
|
:extra_get_code => "if(TYPE(get_this) == T_FIXNUM) \n get_this = rb_int2big(FIX2INT(get_this));"
|
data/ext/go.bat
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/ext/spec.bat
CHANGED
|
File without changes
|
|
@@ -190,12 +190,11 @@ callback_alloc( VALUE klass )
|
|
|
190
190
|
|
|
191
191
|
cbs->hash_map = new <%= type %>_hash_map< <%= key_type %>, <%= value_type %> <%= extra_hash_params %> >();
|
|
192
192
|
<% if type == 'dense' %>
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
<% if type == 'sparse' %>
|
|
193
|
+
// needs both empty key and deleted keys [and different] for deletes...
|
|
194
|
+
cbs->hash_map->set_empty_key(<%= unreachable_key %>);
|
|
195
|
+
// in th eory could also call set_deleted_key "anytime" ...
|
|
196
|
+
cbs->hash_map->set_deleted_key((<%= unreachable_key %>)-1); // hope this is also typically unreachable from ruby land [?]
|
|
197
|
+
<% elsif type == 'sparse' %>
|
|
199
198
|
cbs->hash_map->set_deleted_key(<%= unreachable_key %>);
|
|
200
199
|
<% end %>
|
|
201
200
|
|
|
@@ -239,6 +238,7 @@ static VALUE rb_ghash_set(VALUE cb, VALUE set_this, VALUE to_this) {
|
|
|
239
238
|
|
|
240
239
|
static VALUE rb_ghash_get(VALUE cb, VALUE get_this, int just_check_for_presence, int delete_it) {
|
|
241
240
|
// TODO optionally not type check assert anymore [if it slows down computationally, that is...]
|
|
241
|
+
<%= options[:extra_get_code] %>
|
|
242
242
|
<% if assert_key_type %>
|
|
243
243
|
if(!(TYPE(get_this) == <%= assert_key_type %>)) {
|
|
244
244
|
<%= "if(!(TYPE(get_this) == #{assert_key_type2}))" if assert_key_type2 %>
|
|
@@ -246,7 +246,6 @@ static VALUE rb_ghash_get(VALUE cb, VALUE get_this, int just_check_for_presence,
|
|
|
246
246
|
}
|
|
247
247
|
<% end %>
|
|
248
248
|
RCallback* cbs = GetCallbackStruct(cb);
|
|
249
|
-
<%= options[:extra_get_code] %>
|
|
250
249
|
|
|
251
250
|
<%= type %>_hash_map< <%= key_type %>, <%= value_type %> <%= extra_hash_params %> >::iterator out = cbs->hash_map->find(<%= convert_keys_from_ruby %>(get_this));
|
|
252
251
|
|
|
@@ -356,10 +355,8 @@ void init_<%= type %>_<%= english_key_type %>_to_<%= english_value_type %>() {
|
|
|
356
355
|
rb_define_method(rb_cGoogleHashLocal, "values", RUBY_METHOD_FUNC(rb_ghash_values), 0);
|
|
357
356
|
rb_define_method(rb_cGoogleHashLocal, "keys", RUBY_METHOD_FUNC(rb_ghash_keys), 0);
|
|
358
357
|
rb_define_method(rb_cGoogleHashLocal, "has_key?", RUBY_METHOD_FUNC(rb_ghash_get_present), 1);
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
rb_define_method(rb_cGoogleHashLocal, "clear", RUBY_METHOD_FUNC(rb_ghash_clear), 0);
|
|
362
|
-
<% end %>
|
|
358
|
+
rb_define_method(rb_cGoogleHashLocal, "delete", RUBY_METHOD_FUNC(rb_ghash_delete), 1);
|
|
359
|
+
rb_define_method(rb_cGoogleHashLocal, "clear", RUBY_METHOD_FUNC(rb_ghash_clear), 0);
|
|
363
360
|
rb_define_method(rb_cGoogleHashLocal, "key?", RUBY_METHOD_FUNC(rb_ghash_get_present), 1);
|
|
364
361
|
rb_define_method(rb_cGoogleHashLocal, "member?", RUBY_METHOD_FUNC(rb_ghash_get_present), 1);
|
|
365
362
|
rb_define_method(rb_cGoogleHashLocal, "include?", RUBY_METHOD_FUNC(rb_ghash_get_present), 1);
|
data/google_hash.gemspec
CHANGED
|
@@ -1,142 +1,159 @@
|
|
|
1
|
-
# Generated by jeweler
|
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
|
3
|
-
# Instead, edit Jeweler::Tasks in
|
|
4
|
-
# -*- encoding: utf-8 -*-
|
|
5
|
-
|
|
6
|
-
Gem::Specification.new do |s|
|
|
7
|
-
s.name = "google_hash"
|
|
8
|
-
s.version = "0.8.
|
|
9
|
-
|
|
10
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
11
|
-
s.authors = ["rogerdpack"]
|
|
12
|
-
s.date = "2014-
|
|
13
|
-
s.description = "Ruby wrappers to the google hash library"
|
|
14
|
-
s.email = "rogerdpack@gmail.com"
|
|
15
|
-
s.extensions = ["ext/extconf.rb"]
|
|
16
|
-
s.extra_rdoc_files = [
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
]
|
|
21
|
-
s.files = [
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"ext/clean.bat",
|
|
28
|
-
"ext/
|
|
29
|
-
"ext/
|
|
30
|
-
"ext/
|
|
31
|
-
"ext/sparsehash-
|
|
32
|
-
"ext/sparsehash-
|
|
33
|
-
"ext/sparsehash-
|
|
34
|
-
"ext/sparsehash-
|
|
35
|
-
"ext/sparsehash-
|
|
36
|
-
"ext/sparsehash-
|
|
37
|
-
"ext/sparsehash-
|
|
38
|
-
"ext/sparsehash-
|
|
39
|
-
"ext/sparsehash-
|
|
40
|
-
"ext/sparsehash-
|
|
41
|
-
"ext/sparsehash-
|
|
42
|
-
"ext/sparsehash-
|
|
43
|
-
"ext/sparsehash-
|
|
44
|
-
"ext/sparsehash-
|
|
45
|
-
"ext/sparsehash-
|
|
46
|
-
"ext/sparsehash-
|
|
47
|
-
"ext/sparsehash-
|
|
48
|
-
"ext/sparsehash-
|
|
49
|
-
"ext/sparsehash-
|
|
50
|
-
"ext/sparsehash-
|
|
51
|
-
"ext/sparsehash-
|
|
52
|
-
"ext/sparsehash-
|
|
53
|
-
"ext/sparsehash-
|
|
54
|
-
"ext/sparsehash-
|
|
55
|
-
"ext/sparsehash-
|
|
56
|
-
"ext/sparsehash-
|
|
57
|
-
"ext/sparsehash-
|
|
58
|
-
"ext/sparsehash-
|
|
59
|
-
"ext/sparsehash-
|
|
60
|
-
"ext/sparsehash-
|
|
61
|
-
"ext/sparsehash-
|
|
62
|
-
"ext/sparsehash-
|
|
63
|
-
"ext/sparsehash-
|
|
64
|
-
"ext/sparsehash-
|
|
65
|
-
"ext/sparsehash-
|
|
66
|
-
"ext/sparsehash-
|
|
67
|
-
"ext/sparsehash-
|
|
68
|
-
"ext/sparsehash-
|
|
69
|
-
"ext/sparsehash-
|
|
70
|
-
"ext/sparsehash-
|
|
71
|
-
"ext/sparsehash-
|
|
72
|
-
"ext/sparsehash-
|
|
73
|
-
"ext/sparsehash-
|
|
74
|
-
"ext/sparsehash-
|
|
75
|
-
"ext/sparsehash-
|
|
76
|
-
"ext/sparsehash-
|
|
77
|
-
"ext/sparsehash-
|
|
78
|
-
"ext/sparsehash-
|
|
79
|
-
"ext/sparsehash-
|
|
80
|
-
"ext/sparsehash-
|
|
81
|
-
"ext/sparsehash-
|
|
82
|
-
"ext/sparsehash-
|
|
83
|
-
"ext/sparsehash-
|
|
84
|
-
"ext/sparsehash-
|
|
85
|
-
"ext/sparsehash-
|
|
86
|
-
"ext/sparsehash-
|
|
87
|
-
"ext/sparsehash-
|
|
88
|
-
"ext/sparsehash-
|
|
89
|
-
"ext/sparsehash-
|
|
90
|
-
"ext/sparsehash-
|
|
91
|
-
"ext/sparsehash-
|
|
92
|
-
"ext/sparsehash-
|
|
93
|
-
"ext/sparsehash-
|
|
94
|
-
"ext/sparsehash-
|
|
95
|
-
"ext/sparsehash-
|
|
96
|
-
"ext/sparsehash-
|
|
97
|
-
"ext/sparsehash-
|
|
98
|
-
"ext/sparsehash-
|
|
99
|
-
"ext/sparsehash-
|
|
100
|
-
"ext/sparsehash-
|
|
101
|
-
"ext/sparsehash-
|
|
102
|
-
"ext/sparsehash-
|
|
103
|
-
"ext/sparsehash-
|
|
104
|
-
"ext/sparsehash-
|
|
105
|
-
"ext/sparsehash-
|
|
106
|
-
"ext/sparsehash-
|
|
107
|
-
"ext/sparsehash-
|
|
108
|
-
"ext/sparsehash-
|
|
109
|
-
"ext/sparsehash-
|
|
110
|
-
"ext/sparsehash-
|
|
111
|
-
"ext/sparsehash-
|
|
112
|
-
"ext/
|
|
113
|
-
"ext/
|
|
114
|
-
"ext/
|
|
115
|
-
"
|
|
116
|
-
"
|
|
117
|
-
"
|
|
118
|
-
"
|
|
119
|
-
"
|
|
120
|
-
"
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
1
|
+
# Generated by jeweler
|
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
|
4
|
+
# -*- encoding: utf-8 -*-
|
|
5
|
+
|
|
6
|
+
Gem::Specification.new do |s|
|
|
7
|
+
s.name = "google_hash"
|
|
8
|
+
s.version = "0.8.2"
|
|
9
|
+
|
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
11
|
+
s.authors = ["rogerdpack"]
|
|
12
|
+
s.date = "2014-05-26"
|
|
13
|
+
s.description = "Ruby wrappers to the google hash library"
|
|
14
|
+
s.email = "rogerdpack@gmail.com"
|
|
15
|
+
s.extensions = ["ext/extconf.rb"]
|
|
16
|
+
s.extra_rdoc_files = [
|
|
17
|
+
"ChangeLog.txt",
|
|
18
|
+
"README",
|
|
19
|
+
"TODO"
|
|
20
|
+
]
|
|
21
|
+
s.files = [
|
|
22
|
+
"ChangeLog.txt",
|
|
23
|
+
"README",
|
|
24
|
+
"Rakefile",
|
|
25
|
+
"TODO",
|
|
26
|
+
"VERSION",
|
|
27
|
+
"ext/clean.bat",
|
|
28
|
+
"ext/clean.sh",
|
|
29
|
+
"ext/extconf.rb",
|
|
30
|
+
"ext/go.bat",
|
|
31
|
+
"ext/sparsehash-2.0.2/AUTHORS",
|
|
32
|
+
"ext/sparsehash-2.0.2/COPYING",
|
|
33
|
+
"ext/sparsehash-2.0.2/ChangeLog",
|
|
34
|
+
"ext/sparsehash-2.0.2/INSTALL",
|
|
35
|
+
"ext/sparsehash-2.0.2/Makefile.am",
|
|
36
|
+
"ext/sparsehash-2.0.2/Makefile.in",
|
|
37
|
+
"ext/sparsehash-2.0.2/NEWS",
|
|
38
|
+
"ext/sparsehash-2.0.2/README",
|
|
39
|
+
"ext/sparsehash-2.0.2/README_windows.txt",
|
|
40
|
+
"ext/sparsehash-2.0.2/TODO",
|
|
41
|
+
"ext/sparsehash-2.0.2/aclocal.m4",
|
|
42
|
+
"ext/sparsehash-2.0.2/allocator.patch",
|
|
43
|
+
"ext/sparsehash-2.0.2/config.guess",
|
|
44
|
+
"ext/sparsehash-2.0.2/config.sub",
|
|
45
|
+
"ext/sparsehash-2.0.2/configure",
|
|
46
|
+
"ext/sparsehash-2.0.2/configure.ac",
|
|
47
|
+
"ext/sparsehash-2.0.2/depcomp",
|
|
48
|
+
"ext/sparsehash-2.0.2/doc/dense_hash_map.html",
|
|
49
|
+
"ext/sparsehash-2.0.2/doc/dense_hash_set.html",
|
|
50
|
+
"ext/sparsehash-2.0.2/doc/designstyle.css",
|
|
51
|
+
"ext/sparsehash-2.0.2/doc/implementation.html",
|
|
52
|
+
"ext/sparsehash-2.0.2/doc/index.html",
|
|
53
|
+
"ext/sparsehash-2.0.2/doc/performance.html",
|
|
54
|
+
"ext/sparsehash-2.0.2/doc/sparse_hash_map.html",
|
|
55
|
+
"ext/sparsehash-2.0.2/doc/sparse_hash_set.html",
|
|
56
|
+
"ext/sparsehash-2.0.2/doc/sparsetable.html",
|
|
57
|
+
"ext/sparsehash-2.0.2/experimental/Makefile",
|
|
58
|
+
"ext/sparsehash-2.0.2/experimental/README",
|
|
59
|
+
"ext/sparsehash-2.0.2/experimental/example.c",
|
|
60
|
+
"ext/sparsehash-2.0.2/experimental/libchash.c",
|
|
61
|
+
"ext/sparsehash-2.0.2/experimental/libchash.h",
|
|
62
|
+
"ext/sparsehash-2.0.2/install-sh",
|
|
63
|
+
"ext/sparsehash-2.0.2/m4/acx_pthread.m4",
|
|
64
|
+
"ext/sparsehash-2.0.2/m4/google_namespace.m4",
|
|
65
|
+
"ext/sparsehash-2.0.2/m4/namespaces.m4",
|
|
66
|
+
"ext/sparsehash-2.0.2/m4/stl_hash.m4",
|
|
67
|
+
"ext/sparsehash-2.0.2/m4/stl_hash_fun.m4",
|
|
68
|
+
"ext/sparsehash-2.0.2/missing",
|
|
69
|
+
"ext/sparsehash-2.0.2/packages/deb.sh",
|
|
70
|
+
"ext/sparsehash-2.0.2/packages/deb/README",
|
|
71
|
+
"ext/sparsehash-2.0.2/packages/deb/changelog",
|
|
72
|
+
"ext/sparsehash-2.0.2/packages/deb/compat",
|
|
73
|
+
"ext/sparsehash-2.0.2/packages/deb/control",
|
|
74
|
+
"ext/sparsehash-2.0.2/packages/deb/copyright",
|
|
75
|
+
"ext/sparsehash-2.0.2/packages/deb/docs",
|
|
76
|
+
"ext/sparsehash-2.0.2/packages/deb/rules",
|
|
77
|
+
"ext/sparsehash-2.0.2/packages/deb/sparsehash.dirs",
|
|
78
|
+
"ext/sparsehash-2.0.2/packages/deb/sparsehash.install",
|
|
79
|
+
"ext/sparsehash-2.0.2/packages/rpm.sh",
|
|
80
|
+
"ext/sparsehash-2.0.2/packages/rpm/rpm.spec",
|
|
81
|
+
"ext/sparsehash-2.0.2/sparsehash.sln",
|
|
82
|
+
"ext/sparsehash-2.0.2/src/config.h.in",
|
|
83
|
+
"ext/sparsehash-2.0.2/src/config.h.include",
|
|
84
|
+
"ext/sparsehash-2.0.2/src/google/dense_hash_map",
|
|
85
|
+
"ext/sparsehash-2.0.2/src/google/dense_hash_set",
|
|
86
|
+
"ext/sparsehash-2.0.2/src/google/sparse_hash_map",
|
|
87
|
+
"ext/sparsehash-2.0.2/src/google/sparse_hash_set",
|
|
88
|
+
"ext/sparsehash-2.0.2/src/google/sparsehash/densehashtable.h",
|
|
89
|
+
"ext/sparsehash-2.0.2/src/google/sparsehash/hashtable-common.h",
|
|
90
|
+
"ext/sparsehash-2.0.2/src/google/sparsehash/libc_allocator_with_realloc.h",
|
|
91
|
+
"ext/sparsehash-2.0.2/src/google/sparsehash/sparsehashtable.h",
|
|
92
|
+
"ext/sparsehash-2.0.2/src/google/sparsetable",
|
|
93
|
+
"ext/sparsehash-2.0.2/src/google/template_util.h",
|
|
94
|
+
"ext/sparsehash-2.0.2/src/google/type_traits.h",
|
|
95
|
+
"ext/sparsehash-2.0.2/src/hash_test_interface.h",
|
|
96
|
+
"ext/sparsehash-2.0.2/src/hashtable_test.cc",
|
|
97
|
+
"ext/sparsehash-2.0.2/src/libc_allocator_with_realloc_test.cc",
|
|
98
|
+
"ext/sparsehash-2.0.2/src/simple_compat_test.cc",
|
|
99
|
+
"ext/sparsehash-2.0.2/src/simple_test.cc",
|
|
100
|
+
"ext/sparsehash-2.0.2/src/sparsehash/dense_hash_map",
|
|
101
|
+
"ext/sparsehash-2.0.2/src/sparsehash/dense_hash_set",
|
|
102
|
+
"ext/sparsehash-2.0.2/src/sparsehash/internal/densehashtable.h",
|
|
103
|
+
"ext/sparsehash-2.0.2/src/sparsehash/internal/hashtable-common.h",
|
|
104
|
+
"ext/sparsehash-2.0.2/src/sparsehash/internal/libc_allocator_with_realloc.h",
|
|
105
|
+
"ext/sparsehash-2.0.2/src/sparsehash/internal/sparsehashtable.h",
|
|
106
|
+
"ext/sparsehash-2.0.2/src/sparsehash/sparse_hash_map",
|
|
107
|
+
"ext/sparsehash-2.0.2/src/sparsehash/sparse_hash_set",
|
|
108
|
+
"ext/sparsehash-2.0.2/src/sparsehash/sparsetable",
|
|
109
|
+
"ext/sparsehash-2.0.2/src/sparsehash/template_util.h",
|
|
110
|
+
"ext/sparsehash-2.0.2/src/sparsehash/type_traits.h",
|
|
111
|
+
"ext/sparsehash-2.0.2/src/sparsetable_unittest.cc",
|
|
112
|
+
"ext/sparsehash-2.0.2/src/stamp-h1",
|
|
113
|
+
"ext/sparsehash-2.0.2/src/template_util_unittest.cc",
|
|
114
|
+
"ext/sparsehash-2.0.2/src/testutil.h",
|
|
115
|
+
"ext/sparsehash-2.0.2/src/time_hash_map.cc",
|
|
116
|
+
"ext/sparsehash-2.0.2/src/type_traits_unittest.cc",
|
|
117
|
+
"ext/sparsehash-2.0.2/src/windows/config.h",
|
|
118
|
+
"ext/sparsehash-2.0.2/src/windows/google/sparsehash/sparseconfig.h",
|
|
119
|
+
"ext/sparsehash-2.0.2/src/windows/port.cc",
|
|
120
|
+
"ext/sparsehash-2.0.2/src/windows/port.h",
|
|
121
|
+
"ext/sparsehash-2.0.2/src/windows/sparsehash/internal/sparseconfig.h",
|
|
122
|
+
"ext/sparsehash-2.0.2/vsprojects/hashtable_test/hashtable_test.vcproj",
|
|
123
|
+
"ext/sparsehash-2.0.2/vsprojects/libc_allocator_with_realloc_test/libc_allocator_with_realloc_test.vcproj",
|
|
124
|
+
"ext/sparsehash-2.0.2/vsprojects/simple_test/simple_test.vcproj",
|
|
125
|
+
"ext/sparsehash-2.0.2/vsprojects/sparsetable_unittest/sparsetable_unittest.vcproj",
|
|
126
|
+
"ext/sparsehash-2.0.2/vsprojects/time_hash_map/time_hash_map.vcproj",
|
|
127
|
+
"ext/sparsehash-2.0.2/vsprojects/type_traits_unittest/type_traits_unittest.vcproj",
|
|
128
|
+
"ext/spec.bat",
|
|
129
|
+
"ext/template/google_hash.cpp.erb",
|
|
130
|
+
"ext/template/main.cpp.erb",
|
|
131
|
+
"google_hash.gemspec",
|
|
132
|
+
"results.txt",
|
|
133
|
+
"spec/bench_gc.rb",
|
|
134
|
+
"spec/benchmark.rb",
|
|
135
|
+
"spec/scale.rb",
|
|
136
|
+
"spec/spec.google_hash.rb",
|
|
137
|
+
"to_build_locally_run_ext_go_bat"
|
|
138
|
+
]
|
|
139
|
+
s.homepage = "http://github.com/rdp/ruby_google_hash"
|
|
140
|
+
s.require_paths = ["lib"]
|
|
141
|
+
s.rubygems_version = "1.8.23"
|
|
142
|
+
s.summary = "Ruby wrappers to the google hash library"
|
|
143
|
+
|
|
144
|
+
if s.respond_to? :specification_version then
|
|
145
|
+
s.specification_version = 3
|
|
146
|
+
|
|
147
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
|
148
|
+
s.add_runtime_dependency(%q<sane>, [">= 0"])
|
|
149
|
+
s.add_development_dependency(%q<hitimes>, [">= 0"])
|
|
150
|
+
else
|
|
151
|
+
s.add_dependency(%q<sane>, [">= 0"])
|
|
152
|
+
s.add_dependency(%q<hitimes>, [">= 0"])
|
|
153
|
+
end
|
|
154
|
+
else
|
|
155
|
+
s.add_dependency(%q<sane>, [">= 0"])
|
|
156
|
+
s.add_dependency(%q<hitimes>, [">= 0"])
|
|
157
|
+
end
|
|
158
|
+
end
|
|
159
|
+
|