google_hash 0.8.0 → 0.8.1

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/README CHANGED
@@ -86,7 +86,7 @@ c = GoogleHashSparseIntToInt.new # :int => :int
86
86
 
87
87
  Here's the full list of availables:
88
88
 
89
- >> Object.constants.each{|k k if k =~ /google/i }
89
+ >> puts Object.constants.select{|k| k =~ /google/i}.sort; nil
90
90
 
91
91
  GoogleHashDenseLongToLong
92
92
  GoogleHashSparseLongToLong
@@ -113,7 +113,7 @@ GoogleHashSparseRubyToInt
113
113
  GoogleHashDenseRubyToRuby
114
114
  GoogleHashSparseRubyToRuby
115
115
 
116
- (long is "better" than int on 64 bit systems only)
116
+ (long is "better" than int on 64 bit systems only, on 32 bit it's the same)
117
117
 
118
118
  and how to use them:
119
119
 
@@ -128,7 +128,7 @@ Use them like "normal" hashes, the method names try to map well.
128
128
 
129
129
  If you have a desired use case that's not covered, let me know and I might well be able to code it up for you and add it.
130
130
 
131
- ex: currently it uses longs internally instead of ints--if you want ints or chars or what not, let me know.
131
+ ex: currently it uses longs internally instead of ints--if you want ints or strings added, let me know.
132
132
 
133
133
  if you want it to remember insertion order, I could do that, too, or native "store away" strings/bignums, whatever.
134
134
 
@@ -148,4 +148,4 @@ Related:
148
148
 
149
149
  judy http://groups.google.com/group/ruby-talk-google/browse_thread/thread/05ed587925526a7f/314375891d12b672?lnk=raot
150
150
 
151
- NArray gem : provides "native" type arrays (and X-Dimensional arrays--all in native memory, so also saves memory as this gem does)
151
+ NArray gem : provides "native" type arrays (and X-Dimensional arrays--all in native memory, so also saves memory as this gem does)
data/Rakefile CHANGED
@@ -1,6 +1,6 @@
1
1
  # to actually build it locally, run extconf.rb in /ext, then make
2
2
 
3
- require 'jeweler'
3
+ require 'jeweler' # 1.8.4 also libxml2-dev package on linux and libxslt-dev
4
4
  Jeweler::Tasks.new do |gemspec|
5
5
  gemspec.name = "google_hash"
6
6
  gemspec.summary = "Ruby wrappers to the google hash library"
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.8.0
1
+ 0.8.1
data/changelog CHANGED
@@ -1,3 +1,6 @@
1
+ 0.8.1:
2
+ work with OS X newer compilers
3
+
1
4
  0.8.0:
2
5
  add a delete method for the Sparse** classes
3
6
  actually delete the hashmaps when the object is collected by Ruby, instead of leaking
@@ -20,6 +20,7 @@ Dir.chdir 'sparsehash-1.8.1' do
20
20
  end
21
21
 
22
22
  $CFLAGS += " -I./local_installed/include "
23
+ $CPPFLAGS += " -I./local_installed/include "
23
24
 
24
25
  if RUBY_VERSION < '1.9'
25
26
  # appears to link using gcc on 1.8 [mingw at least]
@@ -106,4 +107,11 @@ end
106
107
  template = ERB.new(File.read('template/main.cpp.erb'))
107
108
  File.write 'main.cpp', template.result(binding)
108
109
 
110
+ Config::CONFIG['CPP'] = "g++ -E" # else cannot check for c++ headers? huh wuh?
111
+ have_header('tr1/functional')
112
+
113
+ if have_header('functional') && OS.x?
114
+ $CPPFLAGS += " -std=c++11 -stdlib=libc++ " # LLVM, no idea what I'm doing here...
115
+ end
116
+
109
117
  create_makefile('google_hash')
@@ -1,17 +1,25 @@
1
1
  #include <iostream>
2
2
  #include <google/<%= type %>_hash_map>
3
3
  #include <ruby.h>
4
- #include <tr1/functional>
5
4
 
6
- // much code stolen shamelessly from lourens' cb gem
5
+ #if defined(HAVE_TR1_FUNCTIONAL)
6
+ #include <tr1/functional>
7
+ using std::tr1::hash;
8
+ #elif defined(HAVE_FUNCTIONAL)
9
+ #include <functional>
10
+ using std::hash; // llvm gets here [mac]
11
+ #else
12
+ // punt!
13
+ using __gnu_cxx::hash;
14
+ #endif
15
+
16
+ // much code stolen shamelessly from lourens' cb gem...
7
17
 
8
18
  using google::<%= type %>_hash_map; // namespace where class lives by default
9
- using std::cout;
10
- using std::endl;
19
+
11
20
  <% if OS.posix? %>
12
- #include <ext/hash_set>
21
+ #include <ext/hash_set> // ??
13
22
  <% end %>
14
- using std::tr1::hash; // or __gnu_cxx::hash, or maybe tr1::hash, depending on your OS
15
23
 
16
24
  extern "C" {
17
25
 
@@ -0,0 +1,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.0"
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-02-19"
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
+ "README",
18
+ "TODO",
19
+ "changelog"
20
+ ]
21
+ s.files = [
22
+ "README",
23
+ "Rakefile",
24
+ "TODO",
25
+ "VERSION",
26
+ "changelog",
27
+ "ext/clean.bat",
28
+ "ext/extconf.rb",
29
+ "ext/go.bat",
30
+ "ext/sparsehash-1.8.1/AUTHORS",
31
+ "ext/sparsehash-1.8.1/COPYING",
32
+ "ext/sparsehash-1.8.1/ChangeLog",
33
+ "ext/sparsehash-1.8.1/INSTALL",
34
+ "ext/sparsehash-1.8.1/Makefile.am",
35
+ "ext/sparsehash-1.8.1/Makefile.in",
36
+ "ext/sparsehash-1.8.1/NEWS",
37
+ "ext/sparsehash-1.8.1/README",
38
+ "ext/sparsehash-1.8.1/README_windows.txt",
39
+ "ext/sparsehash-1.8.1/TODO",
40
+ "ext/sparsehash-1.8.1/aclocal.m4",
41
+ "ext/sparsehash-1.8.1/compile",
42
+ "ext/sparsehash-1.8.1/config.guess",
43
+ "ext/sparsehash-1.8.1/config.sub",
44
+ "ext/sparsehash-1.8.1/configure",
45
+ "ext/sparsehash-1.8.1/configure.ac",
46
+ "ext/sparsehash-1.8.1/depcomp",
47
+ "ext/sparsehash-1.8.1/doc/dense_hash_map.html",
48
+ "ext/sparsehash-1.8.1/doc/dense_hash_set.html",
49
+ "ext/sparsehash-1.8.1/doc/designstyle.css",
50
+ "ext/sparsehash-1.8.1/doc/implementation.html",
51
+ "ext/sparsehash-1.8.1/doc/index.html",
52
+ "ext/sparsehash-1.8.1/doc/performance.html",
53
+ "ext/sparsehash-1.8.1/doc/sparse_hash_map.html",
54
+ "ext/sparsehash-1.8.1/doc/sparse_hash_set.html",
55
+ "ext/sparsehash-1.8.1/doc/sparsetable.html",
56
+ "ext/sparsehash-1.8.1/experimental/Makefile",
57
+ "ext/sparsehash-1.8.1/experimental/README",
58
+ "ext/sparsehash-1.8.1/experimental/example.c",
59
+ "ext/sparsehash-1.8.1/experimental/libchash.c",
60
+ "ext/sparsehash-1.8.1/experimental/libchash.h",
61
+ "ext/sparsehash-1.8.1/google-sparsehash.sln",
62
+ "ext/sparsehash-1.8.1/install-sh",
63
+ "ext/sparsehash-1.8.1/m4/acx_pthread.m4",
64
+ "ext/sparsehash-1.8.1/m4/google_namespace.m4",
65
+ "ext/sparsehash-1.8.1/m4/namespaces.m4",
66
+ "ext/sparsehash-1.8.1/m4/stl_hash.m4",
67
+ "ext/sparsehash-1.8.1/m4/stl_hash_fun.m4",
68
+ "ext/sparsehash-1.8.1/m4/stl_namespace.m4",
69
+ "ext/sparsehash-1.8.1/missing",
70
+ "ext/sparsehash-1.8.1/mkinstalldirs",
71
+ "ext/sparsehash-1.8.1/packages/deb.sh",
72
+ "ext/sparsehash-1.8.1/packages/deb/README",
73
+ "ext/sparsehash-1.8.1/packages/deb/changelog",
74
+ "ext/sparsehash-1.8.1/packages/deb/compat",
75
+ "ext/sparsehash-1.8.1/packages/deb/control",
76
+ "ext/sparsehash-1.8.1/packages/deb/copyright",
77
+ "ext/sparsehash-1.8.1/packages/deb/docs",
78
+ "ext/sparsehash-1.8.1/packages/deb/rules",
79
+ "ext/sparsehash-1.8.1/packages/deb/sparsehash.dirs",
80
+ "ext/sparsehash-1.8.1/packages/deb/sparsehash.install",
81
+ "ext/sparsehash-1.8.1/packages/rpm.sh",
82
+ "ext/sparsehash-1.8.1/packages/rpm/rpm.spec",
83
+ "ext/sparsehash-1.8.1/src/config.h.in",
84
+ "ext/sparsehash-1.8.1/src/config.h.include",
85
+ "ext/sparsehash-1.8.1/src/google/dense_hash_map",
86
+ "ext/sparsehash-1.8.1/src/google/dense_hash_set",
87
+ "ext/sparsehash-1.8.1/src/google/sparse_hash_map",
88
+ "ext/sparsehash-1.8.1/src/google/sparse_hash_set",
89
+ "ext/sparsehash-1.8.1/src/google/sparsehash/densehashtable.h",
90
+ "ext/sparsehash-1.8.1/src/google/sparsehash/hashtable-common.h",
91
+ "ext/sparsehash-1.8.1/src/google/sparsehash/libc_allocator_with_realloc.h",
92
+ "ext/sparsehash-1.8.1/src/google/sparsehash/sparsehashtable.h",
93
+ "ext/sparsehash-1.8.1/src/google/sparsetable",
94
+ "ext/sparsehash-1.8.1/src/google/type_traits.h",
95
+ "ext/sparsehash-1.8.1/src/hash_test_interface.h",
96
+ "ext/sparsehash-1.8.1/src/hashtable_test.cc",
97
+ "ext/sparsehash-1.8.1/src/libc_allocator_with_realloc_test.cc",
98
+ "ext/sparsehash-1.8.1/src/simple_test.cc",
99
+ "ext/sparsehash-1.8.1/src/sparsetable_unittest.cc",
100
+ "ext/sparsehash-1.8.1/src/testutil.h",
101
+ "ext/sparsehash-1.8.1/src/time_hash_map.cc",
102
+ "ext/sparsehash-1.8.1/src/type_traits_unittest.cc",
103
+ "ext/sparsehash-1.8.1/src/windows/config.h",
104
+ "ext/sparsehash-1.8.1/src/windows/google/sparsehash/sparseconfig.h",
105
+ "ext/sparsehash-1.8.1/src/windows/port.cc",
106
+ "ext/sparsehash-1.8.1/src/windows/port.h",
107
+ "ext/sparsehash-1.8.1/vsprojects/hashtable_test/hashtable_test.vcproj",
108
+ "ext/sparsehash-1.8.1/vsprojects/simple_test/simple_test.vcproj",
109
+ "ext/sparsehash-1.8.1/vsprojects/sparsetable_unittest/sparsetable_unittest.vcproj",
110
+ "ext/sparsehash-1.8.1/vsprojects/time_hash_map/time_hash_map.vcproj",
111
+ "ext/sparsehash-1.8.1/vsprojects/type_traits_unittest/type_traits_unittest.vcproj",
112
+ "ext/spec.bat",
113
+ "ext/template/google_hash.cpp.erb",
114
+ "ext/template/main.cpp.erb",
115
+ "results.txt",
116
+ "spec/bench_gc.rb",
117
+ "spec/benchmark.rb",
118
+ "spec/scale.rb",
119
+ "spec/spec.google_hash.rb",
120
+ "to_build_locally_run_ext_go_bat"
121
+ ]
122
+ s.homepage = "http://github.com/rdp/ruby_google_hash"
123
+ s.require_paths = ["lib"]
124
+ s.rubygems_version = "1.8.24"
125
+ s.summary = "Ruby wrappers to the google hash library"
126
+
127
+ if s.respond_to? :specification_version then
128
+ s.specification_version = 3
129
+
130
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
131
+ s.add_runtime_dependency(%q<sane>, [">= 0"])
132
+ s.add_development_dependency(%q<hitimes>, [">= 0"])
133
+ else
134
+ s.add_dependency(%q<sane>, [">= 0"])
135
+ s.add_dependency(%q<hitimes>, [">= 0"])
136
+ end
137
+ else
138
+ s.add_dependency(%q<sane>, [">= 0"])
139
+ s.add_dependency(%q<hitimes>, [">= 0"])
140
+ end
141
+ end
142
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google_hash
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.8.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-03 00:00:00.000000000 Z
12
+ date: 2014-02-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sane
@@ -146,6 +146,7 @@ files:
146
146
  - ext/spec.bat
147
147
  - ext/template/google_hash.cpp.erb
148
148
  - ext/template/main.cpp.erb
149
+ - google_hash.gemspec
149
150
  - results.txt
150
151
  - spec/bench_gc.rb
151
152
  - spec/benchmark.rb