google_hash 0.8.2 → 0.8.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
|