google_hash 0.8.1 → 0.8.2
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog.txt +2 -0
- data/VERSION +1 -1
- data/ext/clean.bat +0 -0
- data/ext/clean.sh +4 -0
- data/ext/extconf.rb +4 -5
- data/ext/go.bat +0 -0
- data/ext/sparsehash-2.0.2/AUTHORS +2 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/COPYING +0 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/ChangeLog +60 -0
- data/ext/sparsehash-2.0.2/INSTALL +365 -0
- data/ext/sparsehash-2.0.2/Makefile +1336 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/Makefile.am +97 -40
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/Makefile.in +538 -256
- data/ext/sparsehash-2.0.2/NEWS +188 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/README +4 -10
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/README_windows.txt +3 -3
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/TODO +0 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/aclocal.m4 +266 -166
- data/ext/sparsehash-2.0.2/allocator.patch +31 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/config.guess +235 -234
- data/ext/sparsehash-2.0.2/config.status +1238 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/config.sub +198 -64
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/configure +1118 -1000
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/configure.ac +4 -5
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/depcomp +136 -36
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/doc/dense_hash_map.html +182 -67
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/doc/dense_hash_set.html +173 -74
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/doc/designstyle.css +0 -6
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/doc/implementation.html +0 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/doc/index.html +4 -5
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/doc/performance.html +1 -1
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/doc/sparse_hash_map.html +190 -58
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/doc/sparse_hash_set.html +180 -65
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/doc/sparsetable.html +1 -1
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/experimental/Makefile +0 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/experimental/README +0 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/experimental/example.c +1 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/experimental/libchash.c +1 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/experimental/libchash.h +1 -0
- data/ext/sparsehash-2.0.2/install-sh +520 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/m4/acx_pthread.m4 +34 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/m4/google_namespace.m4 +0 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/m4/namespaces.m4 +0 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/m4/stl_hash.m4 +0 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/m4/stl_hash_fun.m4 +0 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/missing +60 -44
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/packages/deb.sh +0 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/packages/deb/README +0 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/packages/deb/changelog +42 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/packages/deb/compat +0 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/packages/deb/control +1 -1
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/packages/deb/copyright +5 -4
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/packages/deb/docs +0 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/packages/deb/rules +0 -0
- data/ext/sparsehash-2.0.2/packages/deb/sparsehash.dirs +5 -0
- data/ext/sparsehash-2.0.2/packages/deb/sparsehash.install +6 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/packages/rpm.sh +1 -1
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/packages/rpm/rpm.spec +5 -3
- data/ext/{sparsehash-1.8.1/google-sparsehash.sln → sparsehash-2.0.2/sparsehash.sln} +0 -0
- data/ext/sparsehash-2.0.2/src/config.h +132 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/src/config.h.in +0 -3
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/src/config.h.include +0 -1
- data/ext/sparsehash-2.0.2/src/google/dense_hash_map +34 -0
- data/ext/sparsehash-2.0.2/src/google/dense_hash_set +34 -0
- data/ext/sparsehash-2.0.2/src/google/sparse_hash_map +34 -0
- data/ext/sparsehash-2.0.2/src/google/sparse_hash_set +34 -0
- data/ext/sparsehash-2.0.2/src/google/sparsehash/densehashtable.h +34 -0
- data/ext/sparsehash-2.0.2/src/google/sparsehash/hashtable-common.h +34 -0
- data/ext/sparsehash-2.0.2/src/google/sparsehash/libc_allocator_with_realloc.h +34 -0
- data/ext/sparsehash-2.0.2/src/google/sparsehash/sparsehashtable.h +34 -0
- data/ext/sparsehash-2.0.2/src/google/sparsetable +34 -0
- data/ext/sparsehash-2.0.2/src/google/template_util.h +34 -0
- data/ext/sparsehash-2.0.2/src/google/type_traits.h +34 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/src/hash_test_interface.h +64 -37
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/src/hashtable_test.cc +415 -141
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/src/libc_allocator_with_realloc_test.cc +16 -23
- data/ext/sparsehash-2.0.2/src/simple_compat_test.cc +106 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/src/simple_test.cc +8 -5
- data/ext/{sparsehash-1.8.1/src/google → sparsehash-2.0.2/src/sparsehash}/dense_hash_map +80 -37
- data/ext/{sparsehash-1.8.1/src/google → sparsehash-2.0.2/src/sparsehash}/dense_hash_set +64 -34
- data/ext/{sparsehash-1.8.1/src/google/sparsehash → sparsehash-2.0.2/src/sparsehash/internal}/densehashtable.h +247 -173
- data/ext/sparsehash-2.0.2/src/sparsehash/internal/hashtable-common.h +381 -0
- data/ext/{sparsehash-1.8.1/src/google/sparsehash → sparsehash-2.0.2/src/sparsehash/internal}/libc_allocator_with_realloc.h +5 -7
- data/ext/{sparsehash-1.8.1/src/google/sparsehash → sparsehash-2.0.2/src/sparsehash/internal}/sparsehashtable.h +154 -93
- data/ext/{sparsehash-1.8.1/src/google → sparsehash-2.0.2/src/sparsehash}/sparse_hash_map +96 -36
- data/ext/{sparsehash-1.8.1/src/google → sparsehash-2.0.2/src/sparsehash}/sparse_hash_set +85 -32
- data/ext/{sparsehash-1.8.1/src/google → sparsehash-2.0.2/src/sparsehash}/sparsetable +520 -258
- data/ext/sparsehash-2.0.2/src/sparsehash/template_util.h +134 -0
- data/ext/{sparsehash-1.8.1/src/google → sparsehash-2.0.2/src/sparsehash}/type_traits.h +153 -35
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/src/sparsetable_unittest.cc +108 -22
- data/ext/sparsehash-2.0.2/src/stamp-h1 +1 -0
- data/ext/sparsehash-2.0.2/src/template_util_unittest.cc +134 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/src/testutil.h +16 -1
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/src/time_hash_map.cc +259 -94
- data/ext/sparsehash-2.0.2/src/type_traits_unittest.cc +636 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/src/windows/config.h +4 -4
- data/ext/sparsehash-2.0.2/src/windows/google/sparsehash/sparseconfig.h +49 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/src/windows/port.cc +1 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/src/windows/port.h +4 -13
- data/ext/sparsehash-2.0.2/src/windows/sparsehash/internal/sparseconfig.h +49 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/vsprojects/hashtable_test/hashtable_test.vcproj +11 -11
- data/ext/sparsehash-2.0.2/vsprojects/libc_allocator_with_realloc_test/libc_allocator_with_realloc_test.vcproj +161 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/vsprojects/simple_test/simple_test.vcproj +10 -10
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/vsprojects/sparsetable_unittest/sparsetable_unittest.vcproj +4 -4
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/vsprojects/time_hash_map/time_hash_map.vcproj +10 -10
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/vsprojects/type_traits_unittest/type_traits_unittest.vcproj +3 -3
- data/ext/spec.bat +0 -0
- data/ext/template/google_hash.cpp.erb +6 -5
- metadata +106 -86
- data/ext/sparsehash-1.8.1/AUTHORS +0 -2
- data/ext/sparsehash-1.8.1/INSTALL +0 -236
- data/ext/sparsehash-1.8.1/NEWS +0 -71
- data/ext/sparsehash-1.8.1/compile +0 -99
- data/ext/sparsehash-1.8.1/install-sh +0 -323
- data/ext/sparsehash-1.8.1/m4/stl_namespace.m4 +0 -25
- data/ext/sparsehash-1.8.1/mkinstalldirs +0 -158
- data/ext/sparsehash-1.8.1/packages/deb/sparsehash.dirs +0 -2
- data/ext/sparsehash-1.8.1/packages/deb/sparsehash.install +0 -2
- data/ext/sparsehash-1.8.1/src/google/sparsehash/hashtable-common.h +0 -178
- data/ext/sparsehash-1.8.1/src/type_traits_unittest.cc +0 -502
- data/ext/sparsehash-1.8.1/src/windows/google/sparsehash/sparseconfig.h +0 -32
@@ -0,0 +1,188 @@
|
|
1
|
+
== 23 Ferbruary 2012 ==
|
2
|
+
|
3
|
+
A backwards incompatibility arose from flattening the include headers
|
4
|
+
structure for the <google> folder.
|
5
|
+
|
6
|
+
This is now fixed in 2.0.2. You only need to upgrade if you had previously
|
7
|
+
included files from the <google/sparsehash> folder.
|
8
|
+
|
9
|
+
== 1 February 2012 ==
|
10
|
+
|
11
|
+
A minor bug related to the namespace switch from google to sparsehash
|
12
|
+
stopped the build from working when perftools is also installed.
|
13
|
+
|
14
|
+
This is now fixed in 2.0.1. You only need to upgrade if you have perftools
|
15
|
+
installed.
|
16
|
+
|
17
|
+
== 31 January 2012 ==
|
18
|
+
|
19
|
+
I've just released sparsehash 2.0.
|
20
|
+
|
21
|
+
The `google-sparsehash` project has been renamed to `sparsehash`. I
|
22
|
+
(csilvers) am stepping down as maintainer, to be replaced by the team
|
23
|
+
of Donovan Hide and Geoff Pike. Welcome to the team, Donovan and
|
24
|
+
Geoff! Donovan has been an active contributor to sparsehash bug
|
25
|
+
reports and discussions in the past, and Geoff has been closely
|
26
|
+
involved with sparsehash inside Google (in addition to writing the
|
27
|
+
[http://code.google.com/p/cityhash CityHash hash function]). The two
|
28
|
+
of them together should be a formidable force. For good.
|
29
|
+
|
30
|
+
I bumped the major version number up to 2 to reflect the new community
|
31
|
+
ownership of the project. All the
|
32
|
+
[http://sparsehash.googlecode.com/svn/tags/sparsehash-2.0/ChangeLog changes]
|
33
|
+
are related to the renaming.
|
34
|
+
|
35
|
+
The only functional change from sparsehash 1.12 is that I've renamed
|
36
|
+
the `google/` include-directory to be `sparsehash/` instead. New code
|
37
|
+
should `#include <sparsehash/sparse_hash_map>`/etc. I've kept the old
|
38
|
+
names around as forwarding headers to the new, so `#include
|
39
|
+
<google/sparse_hash_map>` will continue to work.
|
40
|
+
|
41
|
+
Note that the classes and functions remain in the `google` C++
|
42
|
+
namespace (I didn't change that to `sparsehash` as well); I think
|
43
|
+
that's a trickier transition, and can happen in a future release.
|
44
|
+
|
45
|
+
|
46
|
+
=== 18 January 2011 ===
|
47
|
+
|
48
|
+
The `google-sparsehash` Google Code page has been renamed to
|
49
|
+
`sparsehash`, in preparation for the project being renamed to
|
50
|
+
`sparsehash`. In the coming weeks, I'll be stepping down as
|
51
|
+
maintainer for the sparsehash project, and as part of that Google is
|
52
|
+
relinquishing ownership of the project; it will now be entirely
|
53
|
+
community run. The name change reflects that shift.
|
54
|
+
|
55
|
+
|
56
|
+
=== 20 December 2011 ===
|
57
|
+
|
58
|
+
I've just released sparsehash 1.12. This release features improved
|
59
|
+
I/O (serialization) support. Support is finally added to serialize
|
60
|
+
and unserialize `dense_hash_map`/`set`, paralleling the existing code
|
61
|
+
for `sparse_hash_map`/`set`. In addition, the serialization API has
|
62
|
+
gotten simpler, with a single `serialize()` method to write to disk,
|
63
|
+
and an `unserialize()` method to read from disk. Finally, support has
|
64
|
+
gotten more generic, with built-in support for both C `FILE*`s and C++
|
65
|
+
streams, and an extension mechanism to support arbitrary sources and
|
66
|
+
sinks.
|
67
|
+
|
68
|
+
There are also more minor changes, including minor bugfixes, an
|
69
|
+
improved deleted-key test, and a minor addition to the `sparsetable`
|
70
|
+
API. See the [http://google-sparsehash.googlecode.com/svn/tags/sparsehash-1.12/ChangeLog ChangeLog]
|
71
|
+
for full details.
|
72
|
+
|
73
|
+
=== 23 June 2011 ===
|
74
|
+
|
75
|
+
I've just released sparsehash 1.11. The major user-visible change is
|
76
|
+
that the default behavior is improved -- using the hash_map/set is
|
77
|
+
faster -- for hashtables where the key is a pointer. We now notice
|
78
|
+
that case and ignore the low 2-3 bits (which are almost always 0 for
|
79
|
+
pointers) when hashing.
|
80
|
+
|
81
|
+
Another user-visible change is we've removed the tests for whether the
|
82
|
+
STL (vector, pair, etc) is defined in the 'std' namespace. gcc 2.95
|
83
|
+
is the most recent compiler I know of to put STL types and functions
|
84
|
+
in the global namespace. If you need to use such an old compiler, do
|
85
|
+
not update to the latest sparsehash release.
|
86
|
+
|
87
|
+
We've also changed the internal tools we use to integrate
|
88
|
+
Googler-supplied patches to sparsehash into the opensource release.
|
89
|
+
These new tools should result in more frequent updates with better
|
90
|
+
change descriptions. They will also result in future ChangeLog
|
91
|
+
entries being much more verbose (for better or for worse).
|
92
|
+
|
93
|
+
A full list of changes is described in
|
94
|
+
[http://google-sparsehash.googlecode.com/svn/tags/sparsehash-1.11/ChangeLog ChangeLog].
|
95
|
+
|
96
|
+
=== 21 January 2011 ===
|
97
|
+
|
98
|
+
I've just released sparsehash 1.10. This fixes a performance
|
99
|
+
regression in sparsehash 1.8, where sparse_hash_map would copy
|
100
|
+
hashtable keys by value even when the key was explicitly a reference.
|
101
|
+
It also fixes compiler warnings from MSVC 10, which uses some c++0x
|
102
|
+
features that did not interact well with sparsehash.
|
103
|
+
|
104
|
+
There is no reason to upgrade unless you use references for your
|
105
|
+
hashtable keys, or compile with MSVC 10. A full list of changes is
|
106
|
+
described in
|
107
|
+
[http://google-sparsehash.googlecode.com/svn/tags/sparsehash-1.10/ChangeLog ChangeLog].
|
108
|
+
|
109
|
+
|
110
|
+
=== 24 September 2010 ===
|
111
|
+
|
112
|
+
I've just released sparsehash 1.9. This fixes a size regression in
|
113
|
+
sparsehash 1.8, where the new allocator would take up space in
|
114
|
+
`sparse_hash_map`, doubling the sparse_hash_map overhead (from 1-2
|
115
|
+
bits per bucket to 3 or so). All users are encouraged to upgrade.
|
116
|
+
|
117
|
+
This change also marks enums as being Plain Old Data, which can speed
|
118
|
+
up hashtables with enum keys and/or values. A full list of changes is
|
119
|
+
described in
|
120
|
+
[http://google-sparsehash.googlecode.com/svn/tags/sparsehash-1.9/ChangeLog ChangeLog].
|
121
|
+
|
122
|
+
=== 29 July 2010 ===
|
123
|
+
|
124
|
+
I've just released sparsehash 1.8. This includes improved support for
|
125
|
+
`Allocator`, including supporting the allocator constructor arg and
|
126
|
+
`get_allocator()` access method.
|
127
|
+
|
128
|
+
To work around a bug in gcc 4.0.x, I've renamed the static variables
|
129
|
+
`HT_OCCUPANCY_FLT` and `HT_SHRINK_FLT` to `HT_OCCUPANCY_PCT` and
|
130
|
+
`HT_SHRINK_PCT`, and changed their type from float to int. This
|
131
|
+
should not be a user-visible change, since these variables are only
|
132
|
+
used in the internal hashtable classes (sparsehash clients should use
|
133
|
+
`max_load_factor()` and `min_load_factor()` instead of modifying these
|
134
|
+
static variables), but if you do access these constants, you will need
|
135
|
+
to change your code.
|
136
|
+
|
137
|
+
Internally, the biggest change is a revamp of the test suite. It now
|
138
|
+
has more complete coverage, and a more capable timing tester. There
|
139
|
+
are other, more minor changes as well. A full list of changes is
|
140
|
+
described in the
|
141
|
+
[http://google-sparsehash.googlecode.com/svn/tags/sparsehash-1.8/ChangeLog ChangeLog].
|
142
|
+
|
143
|
+
=== 31 March 2010 ===
|
144
|
+
|
145
|
+
I've just released sparsehash 1.7. The major news here is the
|
146
|
+
addition of `Allocator` support. Previously, these hashtable classes
|
147
|
+
would just ignore the `Allocator` template parameter. They now
|
148
|
+
respect it, and even inherit `size_type`, `pointer`, etc. from the
|
149
|
+
allocator class. By default, they use a special allocator we provide
|
150
|
+
that uses libc `malloc` and `free` to allocate. The hash classes
|
151
|
+
notice when this special allocator is being used, and use `realloc`
|
152
|
+
when it can. This means that the default allocator is significantly
|
153
|
+
faster than custom allocators are likely to be (since realloc-like
|
154
|
+
functionality is not supported by STL allocators).
|
155
|
+
|
156
|
+
There are a few more minor changes as well. A full list of changes is
|
157
|
+
described in the
|
158
|
+
[http://google-sparsehash.googlecode.com/svn/tags/sparsehash-1.7/ChangeLog ChangeLog].
|
159
|
+
|
160
|
+
=== 11 January 2010 ===
|
161
|
+
|
162
|
+
I've just released sparsehash 1.6. The API has widened a bit with the
|
163
|
+
addition of `deleted_key()` and `empty_key()`, which let you query
|
164
|
+
what values these keys have. A few rather obscure bugs have been
|
165
|
+
fixed (such as an error when copying one hashtable into another when
|
166
|
+
the empty_keys differ). A full list of changes is described in the
|
167
|
+
[http://google-sparsehash.googlecode.com/svn/tags/sparsehash-1.6/ChangeLog ChangeLog].
|
168
|
+
|
169
|
+
=== 9 May 2009 ===
|
170
|
+
|
171
|
+
I've just released sparsehash 1.5.1. Hot on the heels of sparsehash
|
172
|
+
1.5, this release fixes a longstanding bug in the sparsehash code,
|
173
|
+
where `equal_range` would always return an empty range. It now works
|
174
|
+
as documented. All sparsehash users are encouraged to upgrade.
|
175
|
+
|
176
|
+
=== 7 May 2009 ===
|
177
|
+
|
178
|
+
I've just released sparsehash 1.5. This release introduces tr1
|
179
|
+
compatibility: I've added `rehash`, `begin(i)`, and other methods that
|
180
|
+
are expected to be part of the `unordered_map` API once `tr1` in
|
181
|
+
introduced. This allows `sparse_hash_map`, `dense_hash_map`,
|
182
|
+
`sparse_hash_set`, and `dense_hash_set` to be (almost) drop-in
|
183
|
+
replacements for `unordered_map` and `unordered_set`.
|
184
|
+
|
185
|
+
There is no need to upgrade unless you need this functionality, or
|
186
|
+
need one of the other, more minor, changes described in the
|
187
|
+
[http://google-sparsehash.googlecode.com/svn/tags/sparsehash-1.5/ChangeLog ChangeLog].
|
188
|
+
|
@@ -15,7 +15,7 @@ COMPILING
|
|
15
15
|
To compile test applications with these classes, run ./configure
|
16
16
|
followed by make. To install these header files on your system, run
|
17
17
|
'make install'. (On Windows, the instructions are different; see
|
18
|
-
|
18
|
+
README_windows.txt.) See INSTALL for more details.
|
19
19
|
|
20
20
|
This code should work on any modern C++ system. It has been tested on
|
21
21
|
Linux (Ubuntu, Fedora, RedHat, Debian), Solaris 10 x86, FreeBSD 6.0,
|
@@ -26,7 +26,7 @@ USING
|
|
26
26
|
See the html files in the doc directory for small example programs
|
27
27
|
that use these classes. It's enough to just include the header file:
|
28
28
|
|
29
|
-
#include <
|
29
|
+
#include <sparsehash/sparse_hash_map> // or sparse_hash_set, dense_hash_map, ...
|
30
30
|
google::sparse_hash_set<int, int> number_mapper;
|
31
31
|
|
32
32
|
and use the class the way you would other hash-map implementations.
|
@@ -75,16 +75,10 @@ There are also some smaller differences:
|
|
75
75
|
if (...) ht.erase(it);
|
76
76
|
As another consequence, a series of erase() calls can leave your
|
77
77
|
hashtable using more memory than it needs to. The hashtable will
|
78
|
-
automatically compact
|
78
|
+
automatically compact at the next call to insert(), but to
|
79
79
|
manually compact a hashtable, you can call
|
80
80
|
ht.resize(0)
|
81
81
|
|
82
|
-
3) While sparse_hash_map et al. accept an Allocator template argument,
|
83
|
-
they ignore it. They use malloc() and free() for all memory
|
84
|
-
allocations.
|
85
|
-
|
86
|
-
4) sparse_hash_map et al. do not use exceptions.
|
87
|
-
|
88
82
|
I/O
|
89
83
|
---
|
90
84
|
In addition to the normal hash-map operations, sparse_hash_map can
|
@@ -146,4 +140,4 @@ and performance data.
|
|
146
140
|
|
147
141
|
---
|
148
142
|
16 March 2005
|
149
|
-
(Last updated:
|
143
|
+
(Last updated: 12 September 2010)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
This project has been ported to Windows. A working solution file
|
2
2
|
exists in this directory:
|
3
|
-
|
3
|
+
sparsehash.sln
|
4
4
|
|
5
5
|
You can load this solution file into either VC++ 7.1 (Visual Studio
|
6
6
|
2003) or VC++ 8.0 (Visual Studio 2005) -- in the latter case, it will
|
@@ -18,8 +18,8 @@ You may want to change them to Release mode.
|
|
18
18
|
I have little experience with Windows programming, so there may be
|
19
19
|
better ways to set this up than I've done! If you run across any
|
20
20
|
problems, please post to the google-sparsehash Google Group, or report
|
21
|
-
them on the
|
21
|
+
them on the sparsehash Google Code site:
|
22
22
|
http://groups.google.com/group/google-sparsehash
|
23
|
-
http://code.google.com/p/
|
23
|
+
http://code.google.com/p/sparsehash/issues/list
|
24
24
|
|
25
25
|
-- craig
|
File without changes
|
@@ -1,7 +1,7 @@
|
|
1
|
-
# generated automatically by aclocal 1.
|
1
|
+
# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
|
2
2
|
|
3
3
|
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
4
|
-
# 2005 Free Software Foundation, Inc.
|
4
|
+
# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
|
5
5
|
# This file is free software; the Free Software Foundation
|
6
6
|
# gives unlimited permission to copy and/or distribute it,
|
7
7
|
# with or without modifications, as long as this notice is preserved.
|
@@ -11,7 +11,15 @@
|
|
11
11
|
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
12
12
|
# PARTICULAR PURPOSE.
|
13
13
|
|
14
|
-
|
14
|
+
m4_ifndef([AC_AUTOCONF_VERSION],
|
15
|
+
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
16
|
+
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],,
|
17
|
+
[m4_warning([this file was generated for autoconf 2.68.
|
18
|
+
You have another version of autoconf. It may work, but is not guaranteed to.
|
19
|
+
If you have problems, you may need to regenerate the build system entirely.
|
20
|
+
To do so, use the procedure documented by the package, typically `autoreconf'.])])
|
21
|
+
|
22
|
+
# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
|
15
23
|
#
|
16
24
|
# This file is free software; the Free Software Foundation
|
17
25
|
# gives unlimited permission to copy and/or distribute it,
|
@@ -21,14 +29,31 @@
|
|
21
29
|
# ----------------------------
|
22
30
|
# Automake X.Y traces this macro to ensure aclocal.m4 has been
|
23
31
|
# generated from the m4 files accompanying Automake X.Y.
|
24
|
-
|
32
|
+
# (This private macro should not be called outside this file.)
|
33
|
+
AC_DEFUN([AM_AUTOMAKE_VERSION],
|
34
|
+
[am__api_version='1.11'
|
35
|
+
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
|
36
|
+
dnl require some minimum version. Point them to the right macro.
|
37
|
+
m4_if([$1], [1.11.1], [],
|
38
|
+
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
|
39
|
+
])
|
40
|
+
|
41
|
+
# _AM_AUTOCONF_VERSION(VERSION)
|
42
|
+
# -----------------------------
|
43
|
+
# aclocal traces this macro to find the Autoconf version.
|
44
|
+
# This is a private macro too. Using m4_define simplifies
|
45
|
+
# the logic in aclocal, which can simply ignore this definition.
|
46
|
+
m4_define([_AM_AUTOCONF_VERSION], [])
|
25
47
|
|
26
48
|
# AM_SET_CURRENT_AUTOMAKE_VERSION
|
27
49
|
# -------------------------------
|
28
|
-
# Call AM_AUTOMAKE_VERSION so
|
29
|
-
# This function is AC_REQUIREd by
|
50
|
+
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
|
51
|
+
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
|
30
52
|
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
|
31
|
-
|
53
|
+
[AM_AUTOMAKE_VERSION([1.11.1])dnl
|
54
|
+
m4_ifndef([AC_AUTOCONF_VERSION],
|
55
|
+
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
56
|
+
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
|
32
57
|
|
33
58
|
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
|
34
59
|
|
@@ -85,14 +110,14 @@ am_aux_dir=`cd $ac_aux_dir && pwd`
|
|
85
110
|
|
86
111
|
# AM_CONDITIONAL -*- Autoconf -*-
|
87
112
|
|
88
|
-
# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005
|
113
|
+
# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
|
89
114
|
# Free Software Foundation, Inc.
|
90
115
|
#
|
91
116
|
# This file is free software; the Free Software Foundation
|
92
117
|
# gives unlimited permission to copy and/or distribute it,
|
93
118
|
# with or without modifications, as long as this notice is preserved.
|
94
119
|
|
95
|
-
# serial
|
120
|
+
# serial 9
|
96
121
|
|
97
122
|
# AM_CONDITIONAL(NAME, SHELL-CONDITION)
|
98
123
|
# -------------------------------------
|
@@ -101,8 +126,11 @@ AC_DEFUN([AM_CONDITIONAL],
|
|
101
126
|
[AC_PREREQ(2.52)dnl
|
102
127
|
ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
|
103
128
|
[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
|
104
|
-
AC_SUBST([$1_TRUE])
|
105
|
-
AC_SUBST([$1_FALSE])
|
129
|
+
AC_SUBST([$1_TRUE])dnl
|
130
|
+
AC_SUBST([$1_FALSE])dnl
|
131
|
+
_AM_SUBST_NOTMAKE([$1_TRUE])dnl
|
132
|
+
_AM_SUBST_NOTMAKE([$1_FALSE])dnl
|
133
|
+
m4_define([_AM_COND_VALUE_$1], [$2])dnl
|
106
134
|
if $2; then
|
107
135
|
$1_TRUE=
|
108
136
|
$1_FALSE='#'
|
@@ -116,15 +144,14 @@ AC_CONFIG_COMMANDS_PRE(
|
|
116
144
|
Usually this means the macro was only invoked conditionally.]])
|
117
145
|
fi])])
|
118
146
|
|
119
|
-
|
120
|
-
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
147
|
+
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
|
121
148
|
# Free Software Foundation, Inc.
|
122
149
|
#
|
123
150
|
# This file is free software; the Free Software Foundation
|
124
151
|
# gives unlimited permission to copy and/or distribute it,
|
125
152
|
# with or without modifications, as long as this notice is preserved.
|
126
153
|
|
127
|
-
# serial
|
154
|
+
# serial 10
|
128
155
|
|
129
156
|
# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
|
130
157
|
# written in clear, in which case automake, when reading aclocal.m4,
|
@@ -152,6 +179,7 @@ AC_REQUIRE([AM_DEP_TRACK])dnl
|
|
152
179
|
ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
|
153
180
|
[$1], CXX, [depcc="$CXX" am_compiler_list=],
|
154
181
|
[$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
|
182
|
+
[$1], UPC, [depcc="$UPC" am_compiler_list=],
|
155
183
|
[$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
|
156
184
|
[depcc="$$1" am_compiler_list=])
|
157
185
|
|
@@ -180,6 +208,16 @@ AC_CACHE_CHECK([dependency style of $depcc],
|
|
180
208
|
if test "$am_compiler_list" = ""; then
|
181
209
|
am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
|
182
210
|
fi
|
211
|
+
am__universal=false
|
212
|
+
m4_case([$1], [CC],
|
213
|
+
[case " $depcc " in #(
|
214
|
+
*\ -arch\ *\ -arch\ *) am__universal=true ;;
|
215
|
+
esac],
|
216
|
+
[CXX],
|
217
|
+
[case " $depcc " in #(
|
218
|
+
*\ -arch\ *\ -arch\ *) am__universal=true ;;
|
219
|
+
esac])
|
220
|
+
|
183
221
|
for depmode in $am_compiler_list; do
|
184
222
|
# Setup a source with many dependencies, because some compilers
|
185
223
|
# like to wrap large dependency lists on column 80 (with \), and
|
@@ -197,7 +235,17 @@ AC_CACHE_CHECK([dependency style of $depcc],
|
|
197
235
|
done
|
198
236
|
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
|
199
237
|
|
238
|
+
# We check with `-c' and `-o' for the sake of the "dashmstdout"
|
239
|
+
# mode. It turns out that the SunPro C++ compiler does not properly
|
240
|
+
# handle `-M -o', and we need to detect this. Also, some Intel
|
241
|
+
# versions had trouble with output in subdirs
|
242
|
+
am__obj=sub/conftest.${OBJEXT-o}
|
243
|
+
am__minus_obj="-o $am__obj"
|
200
244
|
case $depmode in
|
245
|
+
gcc)
|
246
|
+
# This depmode causes a compiler race in universal mode.
|
247
|
+
test "$am__universal" = false || continue
|
248
|
+
;;
|
201
249
|
nosideeffect)
|
202
250
|
# after this tag, mechanisms are not by side-effect, so they'll
|
203
251
|
# only be used when explicitly requested
|
@@ -207,18 +255,23 @@ AC_CACHE_CHECK([dependency style of $depcc],
|
|
207
255
|
break
|
208
256
|
fi
|
209
257
|
;;
|
258
|
+
msvisualcpp | msvcmsys)
|
259
|
+
# This compiler won't grok `-c -o', but also, the minuso test has
|
260
|
+
# not run yet. These depmodes are late enough in the game, and
|
261
|
+
# so weak that their functioning should not be impacted.
|
262
|
+
am__obj=conftest.${OBJEXT-o}
|
263
|
+
am__minus_obj=
|
264
|
+
;;
|
210
265
|
none) break ;;
|
211
266
|
esac
|
212
|
-
# We check with `-c' and `-o' for the sake of the "dashmstdout"
|
213
|
-
# mode. It turns out that the SunPro C++ compiler does not properly
|
214
|
-
# handle `-M -o', and we need to detect this.
|
215
267
|
if depmode=$depmode \
|
216
|
-
source=sub/conftest.c object
|
268
|
+
source=sub/conftest.c object=$am__obj \
|
217
269
|
depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
|
218
|
-
$SHELL ./depcomp $depcc -c
|
270
|
+
$SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
|
219
271
|
>/dev/null 2>conftest.err &&
|
272
|
+
grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
|
220
273
|
grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
|
221
|
-
grep
|
274
|
+
grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
|
222
275
|
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
|
223
276
|
# icc doesn't choke on unknown options, it will just issue warnings
|
224
277
|
# or remarks (even with -Werror). So we grep stderr for any message
|
@@ -269,61 +322,74 @@ if test "x$enable_dependency_tracking" != xno; then
|
|
269
322
|
AMDEPBACKSLASH='\'
|
270
323
|
fi
|
271
324
|
AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
|
272
|
-
AC_SUBST([AMDEPBACKSLASH])
|
325
|
+
AC_SUBST([AMDEPBACKSLASH])dnl
|
326
|
+
_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
|
273
327
|
])
|
274
328
|
|
275
329
|
# Generate code to set up dependency tracking. -*- Autoconf -*-
|
276
330
|
|
277
|
-
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
331
|
+
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
|
278
332
|
# Free Software Foundation, Inc.
|
279
333
|
#
|
280
334
|
# This file is free software; the Free Software Foundation
|
281
335
|
# gives unlimited permission to copy and/or distribute it,
|
282
336
|
# with or without modifications, as long as this notice is preserved.
|
283
337
|
|
284
|
-
#serial
|
338
|
+
#serial 5
|
285
339
|
|
286
340
|
# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
287
341
|
# ------------------------------
|
288
342
|
AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
|
289
|
-
[
|
290
|
-
#
|
291
|
-
|
292
|
-
#
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
#
|
324
|
-
|
343
|
+
[{
|
344
|
+
# Autoconf 2.62 quotes --file arguments for eval, but not when files
|
345
|
+
# are listed without --file. Let's play safe and only enable the eval
|
346
|
+
# if we detect the quoting.
|
347
|
+
case $CONFIG_FILES in
|
348
|
+
*\'*) eval set x "$CONFIG_FILES" ;;
|
349
|
+
*) set x $CONFIG_FILES ;;
|
350
|
+
esac
|
351
|
+
shift
|
352
|
+
for mf
|
353
|
+
do
|
354
|
+
# Strip MF so we end up with the name of the file.
|
355
|
+
mf=`echo "$mf" | sed -e 's/:.*$//'`
|
356
|
+
# Check whether this is an Automake generated Makefile or not.
|
357
|
+
# We used to match only the files named `Makefile.in', but
|
358
|
+
# some people rename them; so instead we look at the file content.
|
359
|
+
# Grep'ing the first line is not enough: some people post-process
|
360
|
+
# each Makefile.in and add a new line on top of each file to say so.
|
361
|
+
# Grep'ing the whole file is not good either: AIX grep has a line
|
362
|
+
# limit of 2048, but all sed's we know have understand at least 4000.
|
363
|
+
if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
|
364
|
+
dirpart=`AS_DIRNAME("$mf")`
|
365
|
+
else
|
366
|
+
continue
|
367
|
+
fi
|
368
|
+
# Extract the definition of DEPDIR, am__include, and am__quote
|
369
|
+
# from the Makefile without running `make'.
|
370
|
+
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
|
371
|
+
test -z "$DEPDIR" && continue
|
372
|
+
am__include=`sed -n 's/^am__include = //p' < "$mf"`
|
373
|
+
test -z "am__include" && continue
|
374
|
+
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
|
375
|
+
# When using ansi2knr, U may be empty or an underscore; expand it
|
376
|
+
U=`sed -n 's/^U = //p' < "$mf"`
|
377
|
+
# Find all dependency output files, they are included files with
|
378
|
+
# $(DEPDIR) in their names. We invoke sed twice because it is the
|
379
|
+
# simplest approach to changing $(DEPDIR) to its actual value in the
|
380
|
+
# expansion.
|
381
|
+
for file in `sed -n "
|
382
|
+
s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
|
383
|
+
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
|
384
|
+
# Make sure the directory exists.
|
385
|
+
test -f "$dirpart/$file" && continue
|
386
|
+
fdir=`AS_DIRNAME(["$file"])`
|
387
|
+
AS_MKDIR_P([$dirpart/$fdir])
|
388
|
+
# echo "creating $dirpart/$file"
|
389
|
+
echo '# dummy' > "$dirpart/$file"
|
390
|
+
done
|
325
391
|
done
|
326
|
-
|
392
|
+
}
|
327
393
|
])# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
328
394
|
|
329
395
|
|
@@ -354,14 +420,14 @@ AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
|
|
354
420
|
|
355
421
|
# Do all the work for Automake. -*- Autoconf -*-
|
356
422
|
|
357
|
-
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
358
|
-
# Free Software Foundation, Inc.
|
423
|
+
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
424
|
+
# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
|
359
425
|
#
|
360
426
|
# This file is free software; the Free Software Foundation
|
361
427
|
# gives unlimited permission to copy and/or distribute it,
|
362
428
|
# with or without modifications, as long as this notice is preserved.
|
363
429
|
|
364
|
-
# serial
|
430
|
+
# serial 16
|
365
431
|
|
366
432
|
# This macro actually does too much. Some checks are only needed if
|
367
433
|
# your package does certain things. But this isn't really a big deal.
|
@@ -378,16 +444,20 @@ AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
|
|
378
444
|
# arguments mandatory, and then we can depend on a new Autoconf
|
379
445
|
# release and drop the old call support.
|
380
446
|
AC_DEFUN([AM_INIT_AUTOMAKE],
|
381
|
-
[AC_PREREQ([2.
|
447
|
+
[AC_PREREQ([2.62])dnl
|
382
448
|
dnl Autoconf wants to disallow AM_ names. We explicitly allow
|
383
449
|
dnl the ones we care about.
|
384
450
|
m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
|
385
451
|
AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
|
386
452
|
AC_REQUIRE([AC_PROG_INSTALL])dnl
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
453
|
+
if test "`cd $srcdir && pwd`" != "`pwd`"; then
|
454
|
+
# Use -I$(srcdir) only when $(srcdir) != ., so that make's output
|
455
|
+
# is not polluted with repeated "-I."
|
456
|
+
AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
|
457
|
+
# test to see if srcdir already configured
|
458
|
+
if test -f $srcdir/config.status; then
|
459
|
+
AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
|
460
|
+
fi
|
391
461
|
fi
|
392
462
|
|
393
463
|
# test whether we have cygpath
|
@@ -407,6 +477,9 @@ m4_ifval([$2],
|
|
407
477
|
AC_SUBST([PACKAGE], [$1])dnl
|
408
478
|
AC_SUBST([VERSION], [$2])],
|
409
479
|
[_AM_SET_OPTIONS([$1])dnl
|
480
|
+
dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
|
481
|
+
m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
|
482
|
+
[m4_fatal([AC_INIT should be called with package and version arguments])])dnl
|
410
483
|
AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
|
411
484
|
AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
|
412
485
|
|
@@ -422,8 +495,8 @@ AM_MISSING_PROG(AUTOCONF, autoconf)
|
|
422
495
|
AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
|
423
496
|
AM_MISSING_PROG(AUTOHEADER, autoheader)
|
424
497
|
AM_MISSING_PROG(MAKEINFO, makeinfo)
|
425
|
-
AM_PROG_INSTALL_SH
|
426
|
-
AM_PROG_INSTALL_STRIP
|
498
|
+
AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
|
499
|
+
AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
|
427
500
|
AC_REQUIRE([AM_PROG_MKDIR_P])dnl
|
428
501
|
# We need awk for the "check" target. The system "awk" is bad on
|
429
502
|
# some platforms.
|
@@ -431,20 +504,37 @@ AC_REQUIRE([AC_PROG_AWK])dnl
|
|
431
504
|
AC_REQUIRE([AC_PROG_MAKE_SET])dnl
|
432
505
|
AC_REQUIRE([AM_SET_LEADING_DOT])dnl
|
433
506
|
_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
|
434
|
-
|
435
|
-
|
507
|
+
[_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
|
508
|
+
[_AM_PROG_TAR([v7])])])
|
436
509
|
_AM_IF_OPTION([no-dependencies],,
|
437
510
|
[AC_PROVIDE_IFELSE([AC_PROG_CC],
|
438
|
-
|
439
|
-
|
440
|
-
|
511
|
+
[_AM_DEPENDENCIES(CC)],
|
512
|
+
[define([AC_PROG_CC],
|
513
|
+
defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
|
441
514
|
AC_PROVIDE_IFELSE([AC_PROG_CXX],
|
442
|
-
|
443
|
-
|
444
|
-
|
515
|
+
[_AM_DEPENDENCIES(CXX)],
|
516
|
+
[define([AC_PROG_CXX],
|
517
|
+
defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
|
518
|
+
AC_PROVIDE_IFELSE([AC_PROG_OBJC],
|
519
|
+
[_AM_DEPENDENCIES(OBJC)],
|
520
|
+
[define([AC_PROG_OBJC],
|
521
|
+
defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
|
445
522
|
])
|
523
|
+
_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
|
524
|
+
dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
|
525
|
+
dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro
|
526
|
+
dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
|
527
|
+
AC_CONFIG_COMMANDS_PRE(dnl
|
528
|
+
[m4_provide_if([_AM_COMPILER_EXEEXT],
|
529
|
+
[AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
|
446
530
|
])
|
447
531
|
|
532
|
+
dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
|
533
|
+
dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
|
534
|
+
dnl mangled by Autoconf and run in a shell conditional statement.
|
535
|
+
m4_define([_AC_COMPILER_EXEEXT],
|
536
|
+
m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
|
537
|
+
|
448
538
|
|
449
539
|
# When config.status generates a header, we must update the stamp-h file.
|
450
540
|
# This file resides in the same directory as the config header
|
@@ -455,18 +545,19 @@ AC_PROVIDE_IFELSE([AC_PROG_CXX],
|
|
455
545
|
# our stamp files there.
|
456
546
|
AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
|
457
547
|
[# Compute $1's index in $config_headers.
|
548
|
+
_am_arg=$1
|
458
549
|
_am_stamp_count=1
|
459
550
|
for _am_header in $config_headers :; do
|
460
551
|
case $_am_header in
|
461
|
-
$
|
552
|
+
$_am_arg | $_am_arg:* )
|
462
553
|
break ;;
|
463
554
|
* )
|
464
555
|
_am_stamp_count=`expr $_am_stamp_count + 1` ;;
|
465
556
|
esac
|
466
557
|
done
|
467
|
-
echo "timestamp for $
|
558
|
+
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
|
468
559
|
|
469
|
-
# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
|
560
|
+
# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc.
|
470
561
|
#
|
471
562
|
# This file is free software; the Free Software Foundation
|
472
563
|
# gives unlimited permission to copy and/or distribute it,
|
@@ -477,7 +568,14 @@ echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
|
|
477
568
|
# Define $install_sh.
|
478
569
|
AC_DEFUN([AM_PROG_INSTALL_SH],
|
479
570
|
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
480
|
-
|
571
|
+
if test x"${install_sh}" != xset; then
|
572
|
+
case $am_aux_dir in
|
573
|
+
*\ * | *\ *)
|
574
|
+
install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
|
575
|
+
*)
|
576
|
+
install_sh="\${SHELL} $am_aux_dir/install-sh"
|
577
|
+
esac
|
578
|
+
fi
|
481
579
|
AC_SUBST(install_sh)])
|
482
580
|
|
483
581
|
# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
|
@@ -503,13 +601,13 @@ AC_SUBST([am__leading_dot])])
|
|
503
601
|
|
504
602
|
# Check to see how 'make' treats includes. -*- Autoconf -*-
|
505
603
|
|
506
|
-
# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
|
604
|
+
# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc.
|
507
605
|
#
|
508
606
|
# This file is free software; the Free Software Foundation
|
509
607
|
# gives unlimited permission to copy and/or distribute it,
|
510
608
|
# with or without modifications, as long as this notice is preserved.
|
511
609
|
|
512
|
-
# serial
|
610
|
+
# serial 4
|
513
611
|
|
514
612
|
# AM_MAKE_INCLUDE()
|
515
613
|
# -----------------
|
@@ -518,7 +616,7 @@ AC_DEFUN([AM_MAKE_INCLUDE],
|
|
518
616
|
[am_make=${MAKE-make}
|
519
617
|
cat > confinc << 'END'
|
520
618
|
am__doit:
|
521
|
-
@echo
|
619
|
+
@echo this is the am__doit target
|
522
620
|
.PHONY: am__doit
|
523
621
|
END
|
524
622
|
# If we don't find an include directive, just comment out the code.
|
@@ -528,24 +626,24 @@ am__quote=
|
|
528
626
|
_am_result=none
|
529
627
|
# First try GNU make style include.
|
530
628
|
echo "include confinc" > confmf
|
531
|
-
#
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
|
537
|
-
|
538
|
-
|
539
|
-
_am_result=GNU
|
540
|
-
fi
|
629
|
+
# Ignore all kinds of additional output from `make'.
|
630
|
+
case `$am_make -s -f confmf 2> /dev/null` in #(
|
631
|
+
*the\ am__doit\ target*)
|
632
|
+
am__include=include
|
633
|
+
am__quote=
|
634
|
+
_am_result=GNU
|
635
|
+
;;
|
636
|
+
esac
|
541
637
|
# Now try BSD make style include.
|
542
638
|
if test "$am__include" = "#"; then
|
543
639
|
echo '.include "confinc"' > confmf
|
544
|
-
|
545
|
-
|
546
|
-
|
547
|
-
|
548
|
-
|
640
|
+
case `$am_make -s -f confmf 2> /dev/null` in #(
|
641
|
+
*the\ am__doit\ target*)
|
642
|
+
am__include=.include
|
643
|
+
am__quote="\""
|
644
|
+
_am_result=BSD
|
645
|
+
;;
|
646
|
+
esac
|
549
647
|
fi
|
550
648
|
AC_SUBST([am__include])
|
551
649
|
AC_SUBST([am__quote])
|
@@ -555,14 +653,14 @@ rm -f confinc confmf
|
|
555
653
|
|
556
654
|
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
|
557
655
|
|
558
|
-
# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005
|
656
|
+
# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
|
559
657
|
# Free Software Foundation, Inc.
|
560
658
|
#
|
561
659
|
# This file is free software; the Free Software Foundation
|
562
660
|
# gives unlimited permission to copy and/or distribute it,
|
563
661
|
# with or without modifications, as long as this notice is preserved.
|
564
662
|
|
565
|
-
# serial
|
663
|
+
# serial 6
|
566
664
|
|
567
665
|
# AM_MISSING_PROG(NAME, PROGRAM)
|
568
666
|
# ------------------------------
|
@@ -578,7 +676,15 @@ AC_SUBST($1)])
|
|
578
676
|
# If it does, set am_missing_run to use it, otherwise, to nothing.
|
579
677
|
AC_DEFUN([AM_MISSING_HAS_RUN],
|
580
678
|
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
581
|
-
|
679
|
+
AC_REQUIRE_AUX_FILE([missing])dnl
|
680
|
+
if test x"${MISSING+set}" != xset; then
|
681
|
+
case $am_aux_dir in
|
682
|
+
*\ * | *\ *)
|
683
|
+
MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
|
684
|
+
*)
|
685
|
+
MISSING="\${SHELL} $am_aux_dir/missing" ;;
|
686
|
+
esac
|
687
|
+
fi
|
582
688
|
# Use eval to expand $SHELL
|
583
689
|
if eval "$MISSING --run true"; then
|
584
690
|
am_missing_run="$MISSING --run "
|
@@ -588,7 +694,7 @@ else
|
|
588
694
|
fi
|
589
695
|
])
|
590
696
|
|
591
|
-
# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
|
697
|
+
# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
|
592
698
|
#
|
593
699
|
# This file is free software; the Free Software Foundation
|
594
700
|
# gives unlimited permission to copy and/or distribute it,
|
@@ -596,70 +702,33 @@ fi
|
|
596
702
|
|
597
703
|
# AM_PROG_MKDIR_P
|
598
704
|
# ---------------
|
599
|
-
# Check
|
600
|
-
#
|
601
|
-
# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories
|
602
|
-
# created by `make install' are always world readable, even if the
|
603
|
-
# installer happens to have an overly restrictive umask (e.g. 077).
|
604
|
-
# This was a mistake. There are at least two reasons why we must not
|
605
|
-
# use `-m 0755':
|
606
|
-
# - it causes special bits like SGID to be ignored,
|
607
|
-
# - it may be too restrictive (some setups expect 775 directories).
|
608
|
-
#
|
609
|
-
# Do not use -m 0755 and let people choose whatever they expect by
|
610
|
-
# setting umask.
|
611
|
-
#
|
612
|
-
# We cannot accept any implementation of `mkdir' that recognizes `-p'.
|
613
|
-
# Some implementations (such as Solaris 8's) are not thread-safe: if a
|
614
|
-
# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c'
|
615
|
-
# concurrently, both version can detect that a/ is missing, but only
|
616
|
-
# one can create it and the other will error out. Consequently we
|
617
|
-
# restrict ourselves to GNU make (using the --version option ensures
|
618
|
-
# this.)
|
705
|
+
# Check for `mkdir -p'.
|
619
706
|
AC_DEFUN([AM_PROG_MKDIR_P],
|
620
|
-
[
|
621
|
-
|
622
|
-
|
623
|
-
|
624
|
-
|
625
|
-
|
626
|
-
|
627
|
-
|
628
|
-
|
629
|
-
|
630
|
-
|
631
|
-
|
632
|
-
|
633
|
-
|
634
|
-
|
635
|
-
mkdir_p='mkdir -p --'
|
636
|
-
else
|
637
|
-
# On NextStep and OpenStep, the `mkdir' command does not
|
638
|
-
# recognize any option. It will interpret all options as
|
639
|
-
# directories to create, and then abort because `.' already
|
640
|
-
# exists.
|
641
|
-
for d in ./-p ./--version;
|
642
|
-
do
|
643
|
-
test -d $d && rmdir $d
|
644
|
-
done
|
645
|
-
# $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
|
646
|
-
if test -f "$ac_aux_dir/mkinstalldirs"; then
|
647
|
-
mkdir_p='$(mkinstalldirs)'
|
648
|
-
else
|
649
|
-
mkdir_p='$(install_sh) -d'
|
650
|
-
fi
|
651
|
-
fi
|
652
|
-
AC_SUBST([mkdir_p])])
|
707
|
+
[AC_PREREQ([2.60])dnl
|
708
|
+
AC_REQUIRE([AC_PROG_MKDIR_P])dnl
|
709
|
+
dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P,
|
710
|
+
dnl while keeping a definition of mkdir_p for backward compatibility.
|
711
|
+
dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
|
712
|
+
dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
|
713
|
+
dnl Makefile.ins that do not define MKDIR_P, so we do our own
|
714
|
+
dnl adjustment using top_builddir (which is defined more often than
|
715
|
+
dnl MKDIR_P).
|
716
|
+
AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
|
717
|
+
case $mkdir_p in
|
718
|
+
[[\\/$]]* | ?:[[\\/]]*) ;;
|
719
|
+
*/*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
|
720
|
+
esac
|
721
|
+
])
|
653
722
|
|
654
723
|
# Helper functions for option handling. -*- Autoconf -*-
|
655
724
|
|
656
|
-
# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
|
725
|
+
# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc.
|
657
726
|
#
|
658
727
|
# This file is free software; the Free Software Foundation
|
659
728
|
# gives unlimited permission to copy and/or distribute it,
|
660
729
|
# with or without modifications, as long as this notice is preserved.
|
661
730
|
|
662
|
-
# serial
|
731
|
+
# serial 4
|
663
732
|
|
664
733
|
# _AM_MANGLE_OPTION(NAME)
|
665
734
|
# -----------------------
|
@@ -676,7 +745,7 @@ AC_DEFUN([_AM_SET_OPTION],
|
|
676
745
|
# ----------------------------------
|
677
746
|
# OPTIONS is a space-separated list of Automake options.
|
678
747
|
AC_DEFUN([_AM_SET_OPTIONS],
|
679
|
-
[
|
748
|
+
[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
|
680
749
|
|
681
750
|
# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
|
682
751
|
# -------------------------------------------
|
@@ -686,14 +755,14 @@ AC_DEFUN([_AM_IF_OPTION],
|
|
686
755
|
|
687
756
|
# Check to make sure that the build environment is sane. -*- Autoconf -*-
|
688
757
|
|
689
|
-
# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
|
758
|
+
# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
|
690
759
|
# Free Software Foundation, Inc.
|
691
760
|
#
|
692
761
|
# This file is free software; the Free Software Foundation
|
693
762
|
# gives unlimited permission to copy and/or distribute it,
|
694
763
|
# with or without modifications, as long as this notice is preserved.
|
695
764
|
|
696
|
-
# serial
|
765
|
+
# serial 5
|
697
766
|
|
698
767
|
# AM_SANITY_CHECK
|
699
768
|
# ---------------
|
@@ -702,16 +771,29 @@ AC_DEFUN([AM_SANITY_CHECK],
|
|
702
771
|
# Just in case
|
703
772
|
sleep 1
|
704
773
|
echo timestamp > conftest.file
|
774
|
+
# Reject unsafe characters in $srcdir or the absolute working directory
|
775
|
+
# name. Accept space and tab only in the latter.
|
776
|
+
am_lf='
|
777
|
+
'
|
778
|
+
case `pwd` in
|
779
|
+
*[[\\\"\#\$\&\'\`$am_lf]]*)
|
780
|
+
AC_MSG_ERROR([unsafe absolute working directory name]);;
|
781
|
+
esac
|
782
|
+
case $srcdir in
|
783
|
+
*[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
|
784
|
+
AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
|
785
|
+
esac
|
786
|
+
|
705
787
|
# Do `set' in a subshell so we don't clobber the current shell's
|
706
788
|
# arguments. Must try -L first in case configure is actually a
|
707
789
|
# symlink; some systems play weird games with the mod time of symlinks
|
708
790
|
# (eg FreeBSD returns the mod time of the symlink's containing
|
709
791
|
# directory).
|
710
792
|
if (
|
711
|
-
set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
|
793
|
+
set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
|
712
794
|
if test "$[*]" = "X"; then
|
713
795
|
# -L didn't work.
|
714
|
-
set X `ls -t $srcdir/configure conftest.file`
|
796
|
+
set X `ls -t "$srcdir/configure" conftest.file`
|
715
797
|
fi
|
716
798
|
rm -f conftest.file
|
717
799
|
if test "$[*]" != "X $srcdir/configure conftest.file" \
|
@@ -761,9 +843,28 @@ dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
|
|
761
843
|
if test "$cross_compiling" != no; then
|
762
844
|
AC_CHECK_TOOL([STRIP], [strip], :)
|
763
845
|
fi
|
764
|
-
INSTALL_STRIP_PROGRAM="\$
|
846
|
+
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
|
765
847
|
AC_SUBST([INSTALL_STRIP_PROGRAM])])
|
766
848
|
|
849
|
+
# Copyright (C) 2006, 2008 Free Software Foundation, Inc.
|
850
|
+
#
|
851
|
+
# This file is free software; the Free Software Foundation
|
852
|
+
# gives unlimited permission to copy and/or distribute it,
|
853
|
+
# with or without modifications, as long as this notice is preserved.
|
854
|
+
|
855
|
+
# serial 2
|
856
|
+
|
857
|
+
# _AM_SUBST_NOTMAKE(VARIABLE)
|
858
|
+
# ---------------------------
|
859
|
+
# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
|
860
|
+
# This macro is traced by Automake.
|
861
|
+
AC_DEFUN([_AM_SUBST_NOTMAKE])
|
862
|
+
|
863
|
+
# AM_SUBST_NOTMAKE(VARIABLE)
|
864
|
+
# ---------------------------
|
865
|
+
# Public sister of _AM_SUBST_NOTMAKE.
|
866
|
+
AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
|
867
|
+
|
767
868
|
# Check how to create a tarball. -*- Autoconf -*-
|
768
869
|
|
769
870
|
# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
|
@@ -865,4 +966,3 @@ m4_include([m4/google_namespace.m4])
|
|
865
966
|
m4_include([m4/namespaces.m4])
|
866
967
|
m4_include([m4/stl_hash.m4])
|
867
968
|
m4_include([m4/stl_hash_fun.m4])
|
868
|
-
m4_include([m4/stl_namespace.m4])
|