rdp / google_hash

wrapper for google's hash functions, for ruby
BSD 3-Clause "New" or "Revised" License
92 stars 16 forks source link

Native extension fails to build on OS X Mavericks #24

Closed mmmmmrob closed 9 years ago

mmmmmrob commented 10 years ago

I started taking a look at google_hash earlier on OS X Mavericks (10.9) and found a couple of issues.

First build failure I come across is

"dense_double_to_double.cpp:2:10: fatal error: 'google/dense_hash_map' file not found"

This was fixed by doing a 'brew install google-sparsehash' though I don't know if that was a good idea as I think that's installed a newer version than google_hash would build itself. That clears the issue above anyway.

The problem then becomes

"dense_double_to_double.cpp:4:10: fatal error: 'tr1/functional' file not found"

This appears to be an issue with C++ versions and the XCode 5 compiler (from a cursory google of the error).

Happy to provide full gem output and help with debugging.

rob

rdp commented 10 years ago

What version of gcc?

On Mon, Dec 30, 2013 at 3:15 PM, mmmmmrob notifications@github.com wrote:

I started taking a look at google_hash earlier on OS X Mavericks (10.9) and found a couple of issues.

First build failure I come across is

"dense_double_to_double.cpp:2:10: fatal error: 'google/dense_hash_map' file not found"

This was fixed by doing a 'brew install google-sparsehash' though I don't know if that was a good idea as I think that's installed a newer version than google_hash would build itself. That clears the issue above anyway.

The problem then becomes

"dense_double_to_double.cpp:4:10: fatal error: 'tr1/functional' file not found"

This appears to be an issue with C++ versions and the XCode 5 compiler (from a cursory google of the error).

Happy to provide full gem output and help with debugging.

rob

— Reply to this email directly or view it on GitHubhttps://github.com/rdp/google_hash/issues/24 .

mmmmmrob commented 10 years ago

» gcc -v Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn) Target: x86_64-apple-darwin13.0.0 Thread model: posix

rdp commented 10 years ago

so...this may be llvm masquerading as gcc? ok made an attempt, could you try with git master please (cd into ext, then ruby extconf.rb && make)

mmmmmrob commented 10 years ago

This still fails on OSX 10.9.1. The issue doesn't seem to be OSX specific per se, just that OSX has a newer libc++ that doesn't contain the tr1 experimental types.

compiling dense_double_to_double.cpp dense_double_to_double.cpp:6:11: fatal error: 'tr1/functional' file not found

include <tr1/functional>

      ^

1 error generated. make: *\ [dense_double_to_double.o] Error 1

This discussion of how libmemcached resolved the issue seems helpful https://bugs.launchpad.net/libmemcached/+bug/1216521

rdp commented 10 years ago

that's using git master?

rdp commented 10 years ago

I only ask because...I added a check for tr1/functional to extconf.rb so...maybe give me full output and also the mkmf.log if it is? (or ideally a patch that makes it work for your system). I can't test it easily...

bridiver commented 10 years ago

+1

WattsInABox commented 10 years ago

:+1:

bridiver commented 10 years ago

latest version I can successfully install is 0.6.2. The repo doesn't contain a valid gemspec to build from master

bridiver commented 10 years ago

build still fails with master

g++ -I. -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/x86_64-darwin10.7.0 -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/ruby/backward -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1 -I. -DHAVE_FUNCTIONAL -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I./local_installed/include -std=c++11 -stdlib=libc++ -fno-common -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long -fno-common -pipe -I./local_installed/include -o dense_double_to_double.o -c dense_double_to_double.cpp dense_double_to_double.cpp:13:8: error: use of undeclared identifier '__gnu_cxx' using __gnu_cxx::hash; ^ In file included from dense_double_to_double.cpp:21: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/ext/hash_set:202:2: warning: Use of the header <ext/hash_set> is deprecated. Migrate to [-W#warnings]

warning Use of the header <ext/hash_set> is deprecated. Migrate to

^ dense_double_to_double.cpp:50:8: error: unknown type name 'hash' extern hash inthash; ^ dense_double_to_double.cpp:50:12: error: expected unqualified-id extern hash inthash; ^ dense_double_to_double.cpp:56:12: error: use of undeclared identifier 'inthash' return inthash((int)foo);

rdp commented 10 years ago

is a mkmf.log file generated?

On Wed, Feb 19, 2014 at 10:43 AM, Brian Johnson notifications@github.comwrote:

build still fails with master

g++ -I. -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/x86_64-darwin10.7.0 -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/ruby/backward -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1 -I. -DHAVE_FUNCTIONAL -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I./local_installed/include -std=c++11 -stdlib=libc++ -fno-common -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long -fno-common -pipe -I./local_installed/include -o dense_double_to_double.o -c dense_double_to_double.cpp dense_double_to_double.cpp:13:8: error: use of undeclared identifier '__gnu_cxx' using __gnu_cxx::hash; ^ In file included from dense_double_to_double.cpp:21: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/ext/hash_set:202:2: warning: Use of the header is deprecated. Migrate to [-W#warnings]

warning Use of the header is deprecated. Migrate to

^ dense_double_to_double.cpp:50:8: error: unknown type name 'hash' extern hash inthash; ^ dense_double_to_double.cpp:50:12: error: expected unqualified-id extern hash inthash; ^ dense_double_to_double.cpp:56:12: error: use of undeclared identifier 'inthash' return inthash((int)foo);

Reply to this email directly or view it on GitHubhttps://github.com/rdp/google_hash/issues/24#issuecomment-35526127 .

bridiver commented 10 years ago

have_header: checking for tr1/functional... -------------------- no

"gcc -o conftest -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/x86_64-darwin10.7.0 -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/ruby/backward -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1 -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I./local_installed/include -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long -fno-common -pipe -I./localinstalled/include conftest.c -L. -L/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/lib -L. -L/usr/local/lib -lruby.1.9.1-static -lpthread -ldl -lobjc " checked program was: /* begin / 1: #include "ruby.h" 2: 3: int main() {return 0;} /_ end */

"g++ -E -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/x86_64-darwin10.7.0 -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/ruby/backward -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1 -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I./local_installed/include -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long -fno-common -pipe -I./local_installed/include conftest.c -o conftest.i" clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated conftest.c:3:10: fatal error: 'tr1/functional' file not found

include <tr1/functional>

     ^

1 error generated. checked program was: /* begin / 1: #include "ruby.h" 2: 3: #include <tr1/functional> / end */


have_header: checking for functional... -------------------- yes

"g++ -E -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/x86_64-darwin10.7.0 -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/ruby/backward -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1 -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I./local_installed/include -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long -fno-common -pipe -I./localinstalled/include conftest.c -o conftest.i" clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated checked program was: /* begin / 1: #include "ruby.h" 2: 3: #include /_ end */


On Feb 19, 2014, at 11:18 AM, Roger Pack notifications@github.com wrote:

is a mkmf.log file generated?

On Wed, Feb 19, 2014 at 10:43 AM, Brian Johnson notifications@github.comwrote:

build still fails with master

g++ -I. -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/x86_64-darwin10.7.0 -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/ruby/backward -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1 -I. -DHAVE_FUNCTIONAL -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I./local_installed/include -std=c++11 -stdlib=libc++ -fno-common -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long -fno-common -pipe -I./local_installed/include -o dense_double_to_double.o -c dense_double_to_double.cpp dense_double_to_double.cpp:13:8: error: use of undeclared identifier '__gnu_cxx' using __gnu_cxx::hash; ^ In file included from dense_double_to_double.cpp:21: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/ext/hash_set:202:2: warning: Use of the header is deprecated. Migrate to [-W#warnings]

warning Use of the header is deprecated. Migrate to

^ dense_double_to_double.cpp:50:8: error: unknown type name 'hash' extern hash inthash; ^ dense_double_to_double.cpp:50:12: error: expected unqualified-id extern hash inthash; ^ dense_double_to_double.cpp:56:12: error: use of undeclared identifier 'inthash' return inthash((int)foo);

Reply to this email directly or view it on GitHubhttps://github.com/rdp/google_hash/issues/24#issuecomment-35526127 .

— Reply to this email directly or view it on GitHub.

rdp commented 10 years ago

ok try with git master again? (I kind of expect it to fail still, but think it might be helpful/give us a clue/step in the right direction). Thank you for your help.

On Wed, Feb 19, 2014 at 11:21 AM, Brian Johnson notifications@github.comwrote:

have_header: checking for tr1/functional... -------------------- no

"gcc -o conftest -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/x86_64-darwin10.7.0 -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/ruby/backward -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1 -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I./local_installed/include -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long -fno-common -pipe -I./localinstalled/include conftest.c -L. -L/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/lib -L. -L/usr/local/lib -lruby.1.9.1-static -lpthread -ldl -lobjc " checked program was: /* begin / 1: #include "ruby.h" 2: 3: int main() {return 0;} /_ end */

"g++ -E -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/x86_64-darwin10.7.0 -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/ruby/backward -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1 -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I./local_installed/include -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long -fno-common -pipe -I./local_installed/include conftest.c -o conftest.i" clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated conftest.c:3:10: fatal error: 'tr1/functional' file not found

include <tr1/functional>

^ 1 error generated. checked program was: /* begin / 1: #include "ruby.h" 2: 3: #include <tr1/functional> / end */


have_header: checking for functional... -------------------- yes

"g++ -E -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/x86_64-darwin10.7.0 -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/ruby/backward -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1 -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I./local_installed/include -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long -fno-common -pipe -I./localinstalled/include conftest.c -o conftest.i" clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated checked program was: /* begin / 1: #include "ruby.h" 2: 3: #include /_ end */


On Feb 19, 2014, at 11:18 AM, Roger Pack notifications@github.com wrote:

is a mkmf.log file generated?

On Wed, Feb 19, 2014 at 10:43 AM, Brian Johnson < notifications@github.com>wrote:

build still fails with master

g++ -I.

-I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/x86_64-darwin10.7.0

-I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/ruby/backward

-I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1 -I. -DHAVE_FUNCTIONAL -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I./local_installed/include -std=c++11 -stdlib=libc++ -fno-common -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long -fno-common -pipe -I./local_installed/include -o dense_double_to_double.o -c dense_double_to_double.cpp dense_double_to_double.cpp:13:8: error: use of undeclared identifier '__gnu_cxx' using __gnu_cxx::hash; ^ In file included from dense_double_to_double.cpp:21:

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/ext/hash_set:202:2:

warning: Use of the header is deprecated. Migrate to [-W#warnings]

warning Use of the header is deprecated. Migrate to

^ dense_double_to_double.cpp:50:8: error: unknown type name 'hash' extern hash inthash; ^ dense_double_to_double.cpp:50:12: error: expected unqualified-id extern hash inthash; ^ dense_double_to_double.cpp:56:12: error: use of undeclared identifier 'inthash' return inthash((int)foo);

Reply to this email directly or view it on GitHub< https://github.com/rdp/google_hash/issues/24#issuecomment-35526127> .

Reply to this email directly or view it on GitHub.

Reply to this email directly or view it on GitHubhttps://github.com/rdp/google_hash/issues/24#issuecomment-35530355 .

bridiver commented 10 years ago

checking for tr1/functional... no checking for functional... yes creating Makefile g++ -I. -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/x86_64-darwin10.7.0 -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/ruby/backward -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1 -I. -DHAVE_FUNCTIONAL -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I./local_installed/include -std=c++11 -stdlib=libc++ -fno-common -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long -fno-common -pipe -I./local_installed/include -o dense_double_to_double.o -c dense_double_to_double.cpp dense_double_to_double.cpp:10:13: error: no member named 'tr1' in namespace 'std' using std::tr1::hash; // ?? llvm...


In file included from dense_double_to_double.cpp:21:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/ext/hash_set:202:2: warning: Use of the header <ext/hash_set> is deprecated. Migrate to <unordered_set> [-W#warnings]
#warning Use of the header <ext/hash_set> is deprecated.  Migrate to <unordered_set>
 ^
dense_double_to_double.cpp:50:8: error: unknown type name 'hash'
extern hash<int> inthash;
       ^
dense_double_to_double.cpp:50:12: error: expected unqualified-id
extern hash<int> inthash;
           ^
dense_double_to_double.cpp:56:12: error: use of undeclared identifier 'inthash'
    return inthash((int)foo);
           ^
dense_double_to_double.cpp:89:35: warning: shift count >= width of type [-Wshift-count-overflow]
           cbs->hash_map->set_empty_key(1<<63);

On Feb 19, 2014, at 11:55 AM, Roger Pack notifications@github.com wrote:

> ok try with git master again? (I kind of expect it to fail still, but
> think it might be helpful/give us a clue/step in the right direction).
> Thank you for your help.
> 
> On Wed, Feb 19, 2014 at 11:21 AM, Brian Johnson notifications@github.comwrote:
> 
> > have_header: checking for tr1/functional... -------------------- no
> > 
> > "gcc -o conftest
> > -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/x86_64-darwin10.7.0
> > -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/ruby/backward
> > -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1 -I.
> > -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I./local_installed/include -O3 -ggdb
> > -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith
> > -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32
> > -Wno-long-long -fno-common -pipe -I./local_installed/include conftest.c -L.
> > -L/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/lib -L. -L/usr/local/lib
> > -lruby.1.9.1-static -lpthread -ldl -lobjc "
> > checked program was:
> > /\* begin _/
> > 1: #include "ruby.h"
> > 2:
> > 3: int main() {return 0;}
> > /_ end */
> > 
> > "g++ -E
> > -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/x86_64-darwin10.7.0
> > -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/ruby/backward
> > -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1 -I.
> > -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I./local_installed/include -O3 -ggdb
> > -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith
> > -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32
> > -Wno-long-long -fno-common -pipe -I./local_installed/include conftest.c -o
> > conftest.i"
> > clang: warning: treating 'c' input as 'c++' when in C++ mode, this
> > behavior is deprecated
> > conftest.c:3:10: fatal error: 'tr1/functional' file not found
> > #include <tr1/functional>
> > ^
> > 1 error generated.
> > checked program was:
> > /\* begin _/
> > 1: #include "ruby.h"
> > 2:
> > 3: #include <tr1/functional>
> > /_ end */
> > 
> > ---
> > 
> > have_header: checking for functional... -------------------- yes
> > 
> > "g++ -E
> > -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/x86_64-darwin10.7.0
> > -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/ruby/backward
> > -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1 -I.
> > -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I./local_installed/include -O3 -ggdb
> > -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith
> > -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32
> > -Wno-long-long -fno-common -pipe -I./local_installed/include conftest.c -o
> > conftest.i"
> > clang: warning: treating 'c' input as 'c++' when in C++ mode, this
> > behavior is deprecated
> > checked program was:
> > /\* begin _/
> > 1: #include "ruby.h"
> > 2:
> > 3: #include <functional>
> > /_ end */
> > 
> > ---
> > 
> > On Feb 19, 2014, at 11:18 AM, Roger Pack notifications@github.com
> > wrote:
> > 
> > > is a mkmf.log file generated?
> > > 
> > > On Wed, Feb 19, 2014 at 10:43 AM, Brian Johnson <
> > > notifications@github.com>wrote:
> > > 
> > > > build still fails with master
> > > > 
> > > > g++ -I.
> > > > 
> > > > -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/x86_64-darwin10.7.0
> > > > 
> > > > -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/ruby/backward
> > > > 
> > > > -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1 -I.
> > > > -DHAVE_FUNCTIONAL -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE
> > > > -I./local_installed/include -std=c++11 -stdlib=libc++ -fno-common -O3
> > > > -ggdb
> > > > -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith
> > > > -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32
> > > > -Wno-long-long -fno-common -pipe -I./local_installed/include -o
> > > > dense_double_to_double.o -c dense_double_to_double.cpp
> > > > dense_double_to_double.cpp:13:8: error: use of undeclared identifier
> > > > '__gnu_cxx'
> > > > using __gnu_cxx::hash;
> > > > ^
> > > > In file included from dense_double_to_double.cpp:21:
> > > > 
> > > > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/ext/hash_set:202:2:
> > > > 
> > > > warning: Use of the header is deprecated. Migrate to [-W#warnings]
> > > > #warning Use of the header is deprecated. Migrate to
> > > > ^
> > > > dense_double_to_double.cpp:50:8: error: unknown type name 'hash'
> > > > extern hash inthash;
> > > > ^
> > > > dense_double_to_double.cpp:50:12: error: expected unqualified-id
> > > > extern hash inthash;
> > > > ^
> > > > dense_double_to_double.cpp:56:12: error: use of undeclared identifier
> > > > 'inthash'
> > > > return inthash((int)foo);
> > > > 
> > > > ## 
> > > > 
> > > > Reply to this email directly or view it on GitHub<
> > > > https://github.com/rdp/google_hash/issues/24#issuecomment-35526127>
> > > > .
> > > > 
> > > > ## 
> > > > 
> > > > Reply to this email directly or view it on GitHub.
> > 
> > ## 
> > 
> > Reply to this email directly or view it on GitHubhttps://github.com/rdp/google_hash/issues/24#issuecomment-35530355
> > .
> > 
> > —
> > Reply to this email directly or view it on GitHub.
rdp commented 10 years ago

all righty, now please try git master again...sorry I don't have a newer mac to try this myself on :)

On Wed, Feb 19, 2014 at 11:58 AM, Brian Johnson notifications@github.comwrote:

checking for tr1/functional... no checking for functional... yes creating Makefile g++ -I. -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/x86_64-darwin10.7.0 -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/ruby/backward -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1 -I. -DHAVE_FUNCTIONAL -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I./local_installed/include -std=c++11 -stdlib=libc++ -fno-common -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long -fno-common -pipe -I./local_installed/include -o dense_double_to_double.o -c dense_double_to_double.cpp dense_double_to_double.cpp:10:13: error: no member named 'tr1' in namespace 'std' using std::tr1::hash; // ?? llvm...

In file included from dense_double_to_double.cpp:21:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/ext/hash_set:202:2:
warning: Use of the header <ext/hash_set> is deprecated. Migrate to
<unordered_set> [-W#warnings]
#warning Use of the header <ext/hash_set> is deprecated. Migrate to
<unordered_set>
^
dense_double_to_double.cpp:50:8: error: unknown type name 'hash'
extern hash<int> inthash;
^
dense_double_to_double.cpp:50:12: error: expected unqualified-id
extern hash<int> inthash;
^
dense_double_to_double.cpp:56:12: error: use of undeclared identifier
'inthash'
return inthash((int)foo);
^
dense_double_to_double.cpp:89:35: warning: shift count >= width of type
[-Wshift-count-overflow]
cbs->hash_map->set_empty_key(1<<63);

On Feb 19, 2014, at 11:55 AM, Roger Pack <notifications@github.com>
wrote:

> ok try with git master again? (I kind of expect it to fail still, but
> think it might be helpful/give us a clue/step in the right direction).
> Thank you for your help.
>
>
> On Wed, Feb 19, 2014 at 11:21 AM, Brian Johnson <
notifications@github.com>wrote:
>
> > have_header: checking for tr1/functional... -------------------- no
> >
> > "gcc -o conftest
> >
-I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/x86_64-darwin10.7.0

> >
-I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/ruby/backward

> > -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1 -I.
> > -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I./local_installed/include -O3
-ggdb
> > -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith
> > -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32
> > -Wno-long-long -fno-common -pipe -I./local_installed/include
conftest.c -L.
> > -L/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/lib -L. -L/usr/local/lib
> > -lruby.1.9.1-static -lpthread -ldl -lobjc "
> > checked program was:
> > /* begin */
> > 1: #include "ruby.h"
> > 2:
> > 3: int main() {return 0;}
> > /* end */
> >
> > "g++ -E
> >
-I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/x86_64-darwin10.7.0

> >
-I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/ruby/backward

> > -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1 -I.
> > -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I./local_installed/include -O3
-ggdb
> > -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith
> > -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32
> > -Wno-long-long -fno-common -pipe -I./local_installed/include
conftest.c -o
> > conftest.i"
> > clang: warning: treating 'c' input as 'c++' when in C++ mode, this
> > behavior is deprecated
> > conftest.c:3:10: fatal error: 'tr1/functional' file not found
> > #include <tr1/functional>
> > ^
> > 1 error generated.
> > checked program was:
> > /* begin */
> > 1: #include "ruby.h"
> > 2:
> > 3: #include <tr1/functional>
> > /* end */
> >
> > --------------------
> >
> > have_header: checking for functional... -------------------- yes
> >
> > "g++ -E
> >
-I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/x86_64-darwin10.7.0

> >
-I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/ruby/backward

> > -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1 -I.
> > -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I./local_installed/include -O3
-ggdb
> > -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith
> > -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32
> > -Wno-long-long -fno-common -pipe -I./local_installed/include
conftest.c -o
> > conftest.i"
> > clang: warning: treating 'c' input as 'c++' when in C++ mode, this
> > behavior is deprecated
> > checked program was:
> > /* begin */
> > 1: #include "ruby.h"
> > 2:
> > 3: #include <functional>
> > /* end */
> >
> > --------------------
> >
> >
> > On Feb 19, 2014, at 11:18 AM, Roger Pack <notifications@github.com>
> > wrote:
> >
> > > is a mkmf.log file generated?
> > >
> > >
> > > On Wed, Feb 19, 2014 at 10:43 AM, Brian Johnson <
> > notifications@github.com>wrote:
> > >
> > > > build still fails with master
> > > >
> > > > g++ -I.
> > > >
> >
-I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/x86_64-darwin10.7.0

> >
> > > >
> >
-I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/ruby/backward

> >
> > > > -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1
-I.
> > > > -DHAVE_FUNCTIONAL -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE
> > > > -I./local_installed/include -std=c++11 -stdlib=libc++ -fno-common
-O3
> > -ggdb
> > > > -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith
> > > > -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32
> > > > -Wno-long-long -fno-common -pipe -I./local_installed/include -o
> > > > dense_double_to_double.o -c dense_double_to_double.cpp
> > > > dense_double_to_double.cpp:13:8: error: use of undeclared
identifier
> > > > '__gnu_cxx'
> > > > using __gnu_cxx::hash;
> > > > ^
> > > > In file included from dense_double_to_double.cpp:21:
> > > >
> >
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/ext/hash_set:202:2:

> >
> > > > warning: Use of the header is deprecated. Migrate to [-W#warnings]
> > > > #warning Use of the header is deprecated. Migrate to
> > > > ^
> > > > dense_double_to_double.cpp:50:8: error: unknown type name 'hash'
> > > > extern hash inthash;
> > > > ^
> > > > dense_double_to_double.cpp:50:12: error: expected unqualified-id
> > > > extern hash inthash;
> > > > ^
> > > > dense_double_to_double.cpp:56:12: error: use of undeclared
identifier
> > > > 'inthash'
> > > > return inthash((int)foo);
> > > >
> > > > --
> > > > Reply to this email directly or view it on GitHub<
> > https://github.com/rdp/google_hash/issues/24#issuecomment-35526127>
> > > > .
> > > >
> > > --
> > > Reply to this email directly or view it on GitHub.
> > >
> >
> > --
> > Reply to this email directly or view it on GitHub<
https://github.com/rdp/google_hash/issues/24#issuecomment-35530355>
> > .
> >
> --
> Reply to this email directly or view it on GitHub.
>

--
Reply to this email directly or view it on GitHub<https://github.com/rdp/google_hash/issues/24#issuecomment-35534502>
.
bridiver commented 10 years ago

Ok, looks like it built this time. If you want to push out an updated gem I can try it out. btw - if you include the gemspec in the repo it allows people to use Bundler to automatically build gems from git source.

On Feb 19, 2014, at 12:00 PM, Roger Pack notifications@github.com wrote:

all righty, now please try git master again...sorry I don't have a newer mac to try this myself on :)

On Wed, Feb 19, 2014 at 11:58 AM, Brian Johnson notifications@github.comwrote:

checking for tr1/functional... no checking for functional... yes creating Makefile g++ -I. -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/x86_64-darwin10.7.0 -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/ruby/backward -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1 -I. -DHAVE_FUNCTIONAL -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I./local_installed/include -std=c++11 -stdlib=libc++ -fno-common -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long -fno-common -pipe -I./local_installed/include -o dense_double_to_double.o -c dense_double_to_double.cpp dense_double_to_double.cpp:10:13: error: no member named 'tr1' in namespace 'std' using std::tr1::hash; // ?? llvm...

In file included from dense_double_to_double.cpp:21:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/ext/hash_set:202:2:
warning: Use of the header <ext/hash_set> is deprecated. Migrate to
<unordered_set> [-W#warnings]
#warning Use of the header <ext/hash_set> is deprecated. Migrate to
<unordered_set>
^
dense_double_to_double.cpp:50:8: error: unknown type name 'hash'
extern hash<int> inthash;
^
dense_double_to_double.cpp:50:12: error: expected unqualified-id
extern hash<int> inthash;
^
dense_double_to_double.cpp:56:12: error: use of undeclared identifier
'inthash'
return inthash((int)foo);
^
dense_double_to_double.cpp:89:35: warning: shift count >= width of type
[-Wshift-count-overflow]
cbs->hash_map->set_empty_key(1<<63);

On Feb 19, 2014, at 11:55 AM, Roger Pack <notifications@github.com>
wrote:

> ok try with git master again? (I kind of expect it to fail still, but
> think it might be helpful/give us a clue/step in the right direction).
> Thank you for your help.
>
>
> On Wed, Feb 19, 2014 at 11:21 AM, Brian Johnson <
notifications@github.com>wrote:
>
> > have_header: checking for tr1/functional... -------------------- no
> >
> > "gcc -o conftest
> >
-I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/x86_64-darwin10.7.0

> >
-I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/ruby/backward

> > -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1 -I.
> > -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I./local_installed/include -O3
-ggdb
> > -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith
> > -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32
> > -Wno-long-long -fno-common -pipe -I./local_installed/include
conftest.c -L.
> > -L/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/lib -L. -L/usr/local/lib
> > -lruby.1.9.1-static -lpthread -ldl -lobjc "
> > checked program was:
> > /* begin */
> > 1: #include "ruby.h"
> > 2:
> > 3: int main() {return 0;}
> > /* end */
> >
> > "g++ -E
> >
-I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/x86_64-darwin10.7.0

> >
-I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/ruby/backward

> > -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1 -I.
> > -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I./local_installed/include -O3
-ggdb
> > -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith
> > -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32
> > -Wno-long-long -fno-common -pipe -I./local_installed/include
conftest.c -o
> > conftest.i"
> > clang: warning: treating 'c' input as 'c++' when in C++ mode, this
> > behavior is deprecated
> > conftest.c:3:10: fatal error: 'tr1/functional' file not found
> > #include <tr1/functional>
> > ^
> > 1 error generated.
> > checked program was:
> > /* begin */
> > 1: #include "ruby.h"
> > 2:
> > 3: #include <tr1/functional>
> > /* end */
> >
> > --------------------
> >
> > have_header: checking for functional... -------------------- yes
> >
> > "g++ -E
> >
-I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/x86_64-darwin10.7.0

> >
-I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/ruby/backward

> > -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1 -I.
> > -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I./local_installed/include -O3
-ggdb
> > -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith
> > -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32
> > -Wno-long-long -fno-common -pipe -I./local_installed/include
conftest.c -o
> > conftest.i"
> > clang: warning: treating 'c' input as 'c++' when in C++ mode, this
> > behavior is deprecated
> > checked program was:
> > /* begin */
> > 1: #include "ruby.h"
> > 2:
> > 3: #include <functional>
> > /* end */
> >
> > --------------------
> >
> >
> > On Feb 19, 2014, at 11:18 AM, Roger Pack <notifications@github.com>
> > wrote:
> >
> > > is a mkmf.log file generated?
> > >
> > >
> > > On Wed, Feb 19, 2014 at 10:43 AM, Brian Johnson <
> > notifications@github.com>wrote:
> > >
> > > > build still fails with master
> > > >
> > > > g++ -I.
> > > >
> >
-I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/x86_64-darwin10.7.0

> >
> > > >
> >
-I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/ruby/backward

> >
> > > > -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1
-I.
> > > > -DHAVE_FUNCTIONAL -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE
> > > > -I./local_installed/include -std=c++11 -stdlib=libc++ -fno-common
-O3
> > -ggdb
> > > > -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith
> > > > -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32
> > > > -Wno-long-long -fno-common -pipe -I./local_installed/include -o
> > > > dense_double_to_double.o -c dense_double_to_double.cpp
> > > > dense_double_to_double.cpp:13:8: error: use of undeclared
identifier
> > > > '__gnu_cxx'
> > > > using __gnu_cxx::hash;
> > > > ^
> > > > In file included from dense_double_to_double.cpp:21:
> > > >
> >
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/ext/hash_set:202:2:

> >
> > > > warning: Use of the header is deprecated. Migrate to [-W#warnings]
> > > > #warning Use of the header is deprecated. Migrate to
> > > > ^
> > > > dense_double_to_double.cpp:50:8: error: unknown type name 'hash'
> > > > extern hash inthash;
> > > > ^
> > > > dense_double_to_double.cpp:50:12: error: expected unqualified-id
> > > > extern hash inthash;
> > > > ^
> > > > dense_double_to_double.cpp:56:12: error: use of undeclared
identifier
> > > > 'inthash'
> > > > return inthash((int)foo);
> > > >
> > > > --
> > > > Reply to this email directly or view it on GitHub<
> > https://github.com/rdp/google_hash/issues/24#issuecomment-35526127>
> > > > .
> > > >
> > > --
> > > Reply to this email directly or view it on GitHub.
> > >
> >
> > --
> > Reply to this email directly or view it on GitHub<
https://github.com/rdp/google_hash/issues/24#issuecomment-35530355>
> > .
> >
> --
> Reply to this email directly or view it on GitHub.
>

--
Reply to this email directly or view it on GitHub<https://github.com/rdp/google_hash/issues/24#issuecomment-35534502>
.

—
Reply to this email directly or view it on GitHub.
rdp commented 10 years ago

Ok try 0.8.1 I once created a gem "specific_install" at wthat ould try to auto create gemspecs on the fly if they didn't exist. FWIW :) -roger-

On Wed, Feb 19, 2014 at 12:05 PM, Brian Johnson notifications@github.comwrote:

Ok, looks like it built this time. If you want to push out an updated gem I can try it out. btw - if you include the gemspec in the repo it allows people to use Bundler to automatically build gems from git source.

On Feb 19, 2014, at 12:00 PM, Roger Pack notifications@github.com wrote:

all righty, now please try git master again...sorry I don't have a newer mac to try this myself on :)

On Wed, Feb 19, 2014 at 11:58 AM, Brian Johnson < notifications@github.com>wrote:

checking for tr1/functional... no checking for functional... yes creating Makefile g++ -I.

-I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/x86_64-darwin10.7.0

-I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/ruby/backward

-I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1 -I. -DHAVE_FUNCTIONAL -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I./local_installed/include -std=c++11 -stdlib=libc++ -fno-common -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long -fno-common -pipe -I./local_installed/include -o dense_double_to_double.o -c dense_double_to_double.cpp dense_double_to_double.cpp:10:13: error: no member named 'tr1' in namespace 'std' using std::tr1::hash; // ?? llvm...

In file included from dense_double_to_double.cpp:21:

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/ext/hash_set:202:2:

warning: Use of the header <ext/hash_set> is deprecated. Migrate to
<unordered_set> [-W#warnings]
#warning Use of the header <ext/hash_set> is deprecated. Migrate to
<unordered_set>
^
dense_double_to_double.cpp:50:8: error: unknown type name 'hash'
extern hash<int> inthash;
^
dense_double_to_double.cpp:50:12: error: expected unqualified-id
extern hash<int> inthash;
^
dense_double_to_double.cpp:56:12: error: use of undeclared identifier
'inthash'
return inthash((int)foo);
^
dense_double_to_double.cpp:89:35: warning: shift count >= width of
type
[-Wshift-count-overflow]
cbs->hash_map->set_empty_key(1<<63);

On Feb 19, 2014, at 11:55 AM, Roger Pack <notifications@github.com>
wrote:

> ok try with git master again? (I kind of expect it to fail still,
but
> think it might be helpful/give us a clue/step in the right
direction).
> Thank you for your help.
>
>
> On Wed, Feb 19, 2014 at 11:21 AM, Brian Johnson <
notifications@github.com>wrote:
>
> > have_header: checking for tr1/functional... --------------------
no
> >
> > "gcc -o conftest
> >

-I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/x86_64-darwin10.7.0

> >

-I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/ruby/backward

> > -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1
-I.
> > -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I./local_installed/include -O3
-ggdb
> > -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith
> > -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32
> > -Wno-long-long -fno-common -pipe -I./local_installed/include
conftest.c -L.
> > -L/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/lib -L.
-L/usr/local/lib
> > -lruby.1.9.1-static -lpthread -ldl -lobjc "
> > checked program was:
> > /* begin */
> > 1: #include "ruby.h"
> > 2:
> > 3: int main() {return 0;}
> > /* end */
> >
> > "g++ -E
> >

-I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/x86_64-darwin10.7.0

> >

-I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/ruby/backward

> > -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1
-I.
> > -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I./local_installed/include -O3
-ggdb
> > -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith
> > -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32
> > -Wno-long-long -fno-common -pipe -I./local_installed/include
conftest.c -o
> > conftest.i"
> > clang: warning: treating 'c' input as 'c++' when in C++ mode, this
> > behavior is deprecated
> > conftest.c:3:10: fatal error: 'tr1/functional' file not found
> > #include <tr1/functional>
> > ^
> > 1 error generated.
> > checked program was:
> > /* begin */
> > 1: #include "ruby.h"
> > 2:
> > 3: #include <tr1/functional>
> > /* end */
> >
> > --------------------
> >
> > have_header: checking for functional... -------------------- yes
> >
> > "g++ -E
> >

-I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/x86_64-darwin10.7.0

> >

-I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/ruby/backward

> > -I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1
-I.
> > -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I./local_installed/include -O3
-ggdb
> > -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith
> > -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32
> > -Wno-long-long -fno-common -pipe -I./local_installed/include
conftest.c -o
> > conftest.i"
> > clang: warning: treating 'c' input as 'c++' when in C++ mode, this
> > behavior is deprecated
> > checked program was:
> > /* begin */
> > 1: #include "ruby.h"
> > 2:
> > 3: #include <functional>
> > /* end */
> >
> > --------------------
> >
> >
> > On Feb 19, 2014, at 11:18 AM, Roger Pack <notifications@github.com>

> > wrote:
> >
> > > is a mkmf.log file generated?
> > >
> > >
> > > On Wed, Feb 19, 2014 at 10:43 AM, Brian Johnson <
> > notifications@github.com>wrote:
> > >
> > > > build still fails with master
> > > >
> > > > g++ -I.
> > > >
> >

-I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/x86_64-darwin10.7.0

> >
> > > >
> >

-I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/ruby/backward

> >
> > > >
-I/Users/bjohnson/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1
-I.
> > > > -DHAVE_FUNCTIONAL -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE
> > > > -I./local_installed/include -std=c++11 -stdlib=libc++
-fno-common
-O3
> > -ggdb
> > > > -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith
> > > > -Wwrite-strings -Wno-missing-field-initializers
-Wshorten-64-to-32
> > > > -Wno-long-long -fno-common -pipe -I./local_installed/include
-o
> > > > dense_double_to_double.o -c dense_double_to_double.cpp
> > > > dense_double_to_double.cpp:13:8: error: use of undeclared
identifier
> > > > '__gnu_cxx'
> > > > using __gnu_cxx::hash;
> > > > ^
> > > > In file included from dense_double_to_double.cpp:21:
> > > >
> >

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/ext/hash_set:202:2:

> >
> > > > warning: Use of the header is deprecated. Migrate to
[-W#warnings]
> > > > #warning Use of the header is deprecated. Migrate to
> > > > ^
> > > > dense_double_to_double.cpp:50:8: error: unknown type name
'hash'
> > > > extern hash inthash;
> > > > ^
> > > > dense_double_to_double.cpp:50:12: error: expected
unqualified-id
> > > > extern hash inthash;
> > > > ^
> > > > dense_double_to_double.cpp:56:12: error: use of undeclared
identifier
> > > > 'inthash'
> > > > return inthash((int)foo);
> > > >
> > > > --
> > > > Reply to this email directly or view it on GitHub<
> > https://github.com/rdp/google_hash/issues/24#issuecomment-35526127>

> > > > .
> > > >
> > > --
> > > Reply to this email directly or view it on GitHub.
> > >
> >
> > --
> > Reply to this email directly or view it on GitHub<
https://github.com/rdp/google_hash/issues/24#issuecomment-35530355>
> > .
> >
> --
> Reply to this email directly or view it on GitHub.
>

--
Reply to this email directly or view it on GitHub<
https://github.com/rdp/google_hash/issues/24#issuecomment-35534502>
.

--
Reply to this email directly or view it on GitHub.

Reply to this email directly or view it on GitHubhttps://github.com/rdp/google_hash/issues/24#issuecomment-35535215 .

bridiver commented 10 years ago

Works correctly on OS X now, but it's broken on Centos 5.x. I know 0.6.2 built, I'm going to try 0.7.0 and 0.8.0.

dense_double_to_long.cpp:129: instantiated from here ./local_installed/include/google/sparsehash/hashtable-common.h:65: error: ‘operator()’ is not a member of ‘__gnu_cxx::hash’ *\ [dense_double_to_long.o] Error 1

bridiver commented 10 years ago

0.7.0 is the most recent version that compiles on centos 5.x

rdp commented 10 years ago

OK could you create a separate issue for the centos failure?

On Wed, Feb 19, 2014 at 1:31 PM, Brian Johnson notifications@github.comwrote:

0.7.0 is the most recent version that compiles on centos 5.x

— Reply to this email directly or view it on GitHubhttps://github.com/rdp/google_hash/issues/24#issuecomment-35544859 .

rdp commented 10 years ago

mac issue works now, I think, so closing this one...

WattsInABox commented 10 years ago

This worked for me after your release the other day but now after having to rebuild, I'm getting similar errors again on Mac OS X.

$ ruby extconf.rb
building local copy/version of google sparse/dense hash library
sh configure --prefix=/Users/williamrwatson/development/google_hash/ext/local_installed
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking how to run the C preprocessor... gcc -E
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for memcpy... yes
checking for memmove... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for uint16_t... yes
checking for u_int16_t... yes
checking for __uint16... no
checking for long long... yes
checking sys/resource.h usability... yes
checking sys/resource.h presence... yes
checking for sys/resource.h... yes
checking for unistd.h... (cached) yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking sys/utsname.h usability... yes
checking sys/utsname.h presence... yes
checking for sys/utsname.h... yes
checking how to run the C++ preprocessor... g++ -E
checking google/malloc_extension.h usability... no
checking google/malloc_extension.h presence... no
checking for google/malloc_extension.h... no
checking whether the compiler implements namespaces... yes
checking the location of hash_map... <unordered_map>
checking how to include hash_fun directly... <functional>
checking what namespace STL code is in... std
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/config.h
config.status: executing depfiles commands
[ -d src/google/sparsehash ] || mkdir -p src/google/sparsehash
echo "/*" > src/google/sparsehash/_sparsehash_config
echo " * NOTE: This file is for internal use only." >> src/google/sparsehash/_sparsehash_config
echo " *       Do not use these #defines in your own program!" >> src/google/sparsehash/_sparsehash_config
echo " */" >> src/google/sparsehash/_sparsehash_config
awk '{prevline=currline; currline=$0;} \
            /^#/ {in_second_file = 1;} \
            !in_second_file {if (currline !~ /^ *$/) {inc[currline]=0}}; \
            in_second_file { for (i in inc) { \
                               if (index(currline, i) != 0) { \
                                  print "\n"prevline"\n"currline; \
                                  delete inc[i]; \
                               } \
                             } }' \
    ./src/config.h.include ./src/config.h \
    >> src/google/sparsehash/_sparsehash_config
mv -f src/google/sparsehash/_sparsehash_config src/google/sparsehash/sparseconfig.h
/Applications/Xcode.app/Contents/Developer/usr/bin/make  all-am
if g++ -DHAVE_CONFIG_H -I. -I. -I./src  -I./src  -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -MT type_traits_unittest.o -MD -MP -MF ".deps/type_traits_unittest.Tpo" -c -o type_traits_unittest.o `test -f 'src/type_traits_unittest.cc' || echo './'`src/type_traits_unittest.cc; \
    then mv -f ".deps/type_traits_unittest.Tpo" ".deps/type_traits_unittest.Po"; else rm -f ".deps/type_traits_unittest.Tpo"; exit 1; fi
src/type_traits_unittest.cc:64:7: warning: private field 'n_' is not used [-Wunused-private-field]
  int n_;
      ^
src/type_traits_unittest.cc:74:7: warning: private field 'n_' is not used [-Wunused-private-field]
  int n_;
      ^
src/type_traits_unittest.cc:88:7: warning: private field 'n_' is not used [-Wunused-private-field]
  int n_;
      ^
src/type_traits_unittest.cc:114:7: warning: private field 'n_' is not used [-Wunused-private-field]
  int n_;
      ^
4 warnings generated.
g++ -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2   -o type_traits_unittest  type_traits_unittest.o
if g++ -DHAVE_CONFIG_H -I. -I. -I./src  -I./src  -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -MT libc_allocator_with_realloc_test.o -MD -MP -MF ".deps/libc_allocator_with_realloc_test.Tpo" -c -o libc_allocator_with_realloc_test.o `test -f 'src/libc_allocator_with_realloc_test.cc' || echo './'`src/libc_allocator_with_realloc_test.cc; \
    then mv -f ".deps/libc_allocator_with_realloc_test.Tpo" ".deps/libc_allocator_with_realloc_test.Po"; else rm -f ".deps/libc_allocator_with_realloc_test.Tpo"; exit 1; fi
g++ -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2   -o libc_allocator_with_realloc_test  libc_allocator_with_realloc_test.o
if g++ -DHAVE_CONFIG_H -I. -I. -I./src  -I./src  -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -MT sparsetable_unittest.o -MD -MP -MF ".deps/sparsetable_unittest.Tpo" -c -o sparsetable_unittest.o `test -f 'src/sparsetable_unittest.cc' || echo './'`src/sparsetable_unittest.cc; \
    then mv -f ".deps/sparsetable_unittest.Tpo" ".deps/sparsetable_unittest.Po"; else rm -f ".deps/sparsetable_unittest.Tpo"; exit 1; fi
In file included from src/sparsetable_unittest.cc:50:
./src/google/sparsetable:1087:36: warning: unused parameter 'ptr' [-Wunused-parameter]
    pointer realloc_or_die(pointer ptr, size_type n) {
                                   ^
./src/google/sparsetable:1087:51: warning: unused parameter 'n' [-Wunused-parameter]
    pointer realloc_or_die(pointer ptr, size_type n) {
                                                  ^
2 warnings generated.
g++ -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2   -o sparsetable_unittest  sparsetable_unittest.o
if g++ -DHAVE_CONFIG_H -I. -I. -I./src  -I./src  -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -MT hashtable_test.o -MD -MP -MF ".deps/hashtable_test.Tpo" -c -o hashtable_test.o `test -f 'src/hashtable_test.cc' || echo './'`src/hashtable_test.cc; \
    then mv -f ".deps/hashtable_test.Tpo" ".deps/hashtable_test.Po"; else rm -f ".deps/hashtable_test.Tpo"; exit 1; fi
In file included from src/hashtable_test.cc:63:
./src/google/sparsetable:1087:36: warning: unused parameter 'ptr' [-Wunused-parameter]
    pointer realloc_or_die(pointer ptr, size_type n) {
                                   ^
./src/google/sparsetable:1087:51: warning: unused parameter 'n' [-Wunused-parameter]
    pointer realloc_or_die(pointer ptr, size_type n) {
                                                  ^
In file included from src/hashtable_test.cc:64:
In file included from ./src/hash_test_interface.h:55:
./src/google/sparsehash/densehashtable.h:1061:29: warning: unused parameter 'fp' [-Wunused-parameter]
  bool write_metadata(FILE *fp) {
                            ^
./src/google/sparsehash/densehashtable.h:1066:28: warning: unused parameter 'fp' [-Wunused-parameter]
  bool read_metadata(FILE *fp) {
                           ^
./src/google/sparsehash/densehashtable.h:1118:36: warning: unused parameter 'ptr' [-Wunused-parameter]
    pointer realloc_or_die(pointer ptr, size_type n) {
                                   ^
./src/google/sparsehash/densehashtable.h:1118:51: warning: unused parameter 'n' [-Wunused-parameter]
    pointer realloc_or_die(pointer ptr, size_type n) {
                                                  ^
In file included from src/hashtable_test.cc:64:
./src/hash_test_interface.h:425:50: warning: unused parameter 'k' [-Wunused-parameter]
  void set_empty_key(const typename p::key_type& k) { }
                                                 ^
./src/hash_test_interface.h:528:50: warning: unused parameter 'k' [-Wunused-parameter]
  void set_empty_key(const typename p::key_type& k) { }
                                                 ^
./src/hash_test_interface.h:640:50: warning: unused parameter 'k' [-Wunused-parameter]
  void set_empty_key(const typename p::key_type& k) { }
                                                 ^
./src/hash_test_interface.h:737:58: warning: unused parameter 'fp' [-Wunused-parameter]
  template <typename OUTPUT> bool write_metadata(OUTPUT *fp) { return false; }
                                                         ^
./src/hash_test_interface.h:738:55: warning: unused parameter 'fp' [-Wunused-parameter]
  template <typename INPUT> bool read_metadata(INPUT *fp) { return false; }
                                                      ^
./src/hash_test_interface.h:839:58: warning: unused parameter 'fp' [-Wunused-parameter]
  template <typename OUTPUT> bool write_metadata(OUTPUT *fp) { return false; }
                                                         ^
./src/hash_test_interface.h:840:55: warning: unused parameter 'fp' [-Wunused-parameter]
  template <typename INPUT> bool read_metadata(INPUT *fp) { return false; }
                                                      ^
./src/hash_test_interface.h:964:58: warning: unused parameter 'fp' [-Wunused-parameter]
  template <typename OUTPUT> bool write_metadata(OUTPUT *fp) { return false; }
                                                         ^
./src/hash_test_interface.h:965:55: warning: unused parameter 'fp' [-Wunused-parameter]
  template <typename INPUT> bool read_metadata(INPUT *fp) { return false; }
                                                      ^
In file included from src/hashtable_test.cc:61:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/vector:502:5: error: implicit instantiation of undefined template '__static_assert_test<false>'
    static_assert((is_same<typename allocator_type::value_type, value_type>::value),
    ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__config:490:35: note: expanded from macro 'static_assert'
    typedef __static_assert_check<sizeof(__static_assert_test<(__b)>)> \
                                  ^
./src/google/sparsetable:1230:20: note: in instantiation of template class 'std::__1::vector<google::sparsegroup<std::__1::pair<const int, int>, 48, <anonymous>::Alloc<int, unsigned long,
      18446744073709551615> >, <anonymous>::Alloc<google::sparsegroup<std::__1::pair<const int, int>, 48, <anonymous>::Alloc<std::__1::pair<const int, int>, unsigned long, 18446744073709551615> >,
      unsigned long, 18446744073709551615> >' requested here
  typedef typename group_vector_type::reference GroupsReference;
                   ^
./src/google/sparsehash/sparsehashtable.h:164:20: note: in instantiation of template class 'google::sparsetable<std::__1::pair<const int, int>, 48, <anonymous>::Alloc<int, unsigned long,
      18446744073709551615> >' requested here
  typedef typename sparsetable<V,DEFAULT_GROUP_SIZE,A>::nonempty_iterator
                   ^
./src/hash_test_interface.h:84:27: note: in instantiation of template class 'google::sparse_hashtable_iterator<std::__1::pair<const int, int>, int, <anonymous>::Hasher, google::sparse_hash_map<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher,
      <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >' requested here
  class iterator : public HT::iterator {
                          ^
src/hashtable_test.cc:480:32: note: in instantiation of member class 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int,
      unsigned long, 18446744073709551615> > >::iterator' requested here
  typename TypeParam::iterator i;
                               ^
src/hashtable_test.cc:459:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableIntTest_Typedefs<google::HashtableInterface_SparseHashMap<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::Run' requested here
TYPED_TEST(HashtableIntTest, Typedefs) {
^
./src/testutil.h:160:7: note: expanded from macro 'TYPED_TEST'
      Run();                                                            \
      ^
src/hashtable_test.cc:459:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableIntTest_Typedefs<google::HashtableInterface_SparseHashMap<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::TEST_onetype_HashtableIntTest_Typedefs' requested here
TYPED_TEST(HashtableIntTest, Typedefs) {
^
./src/testutil.h:170:68: note: expanded from macro 'TYPED_TEST'
        TEST_onetype_##superclass##_##testname<superclass##_type1> t;   \
                                                                   ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__config:486:24: note: template is declared here
template <bool> struct __static_assert_test;
                       ^
src/hashtable_test.cc:502:8: error: no viable conversion from 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned
      long, 18446744073709551615> > >::iterator' to 'const google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long,
      18446744073709551615> > >::const_iterator'
  ci = this->ht_.begin();
       ^~~~~~~~~~~~~~~~~
src/hashtable_test.cc:459:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableIntTest_Typedefs<google::HashtableInterface_SparseHashMap<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::Run' requested here
TYPED_TEST(HashtableIntTest, Typedefs) {
^
./src/testutil.h:160:7: note: expanded from macro 'TYPED_TEST'
      Run();                                                            \
      ^
src/hashtable_test.cc:459:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableIntTest_Typedefs<google::HashtableInterface_SparseHashMap<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::TEST_onetype_HashtableIntTest_Typedefs' requested here
TYPED_TEST(HashtableIntTest, Typedefs) {
^
./src/testutil.h:170:68: note: expanded from macro 'TYPED_TEST'
        TEST_onetype_##superclass##_##testname<superclass##_type1> t;   \
                                                                   ^
./src/hash_test_interface.h:107:5: note: candidate constructor
    const_iterator(typename BaseHashtableInterface<HT>::iterator it)
    ^
./src/hash_test_interface.h:96:9: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'google::BaseHashtableInterface<google::sparse_hash_map<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::iterator' to 'const google::BaseHashtableInterface<google::sparse_hash_map<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::const_iterator &' for 1st argument
  class const_iterator : public HT::const_iterator {
        ^
./src/hash_test_interface.h:96:9: note: passing argument to parameter here
src/hashtable_test.cc:504:9: error: no viable conversion from 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned
      long, 18446744073709551615> > >::local_iterator' to 'const google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned
      long, 18446744073709551615> > >::const_local_iterator'
  cli = this->ht_.begin(0);
        ^~~~~~~~~~~~~~~~~~
./src/hash_test_interface.h:137:5: note: candidate constructor
    const_local_iterator(local_iterator it)
    ^
./src/hash_test_interface.h:128:9: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'google::BaseHashtableInterface<google::sparse_hash_map<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::local_iterator' to 'const google::BaseHashtableInterface<google::sparse_hash_map<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::const_local_iterator &' for 1st argument
  class const_local_iterator : public HT::const_local_iterator {
        ^
./src/hash_test_interface.h:128:9: note: passing argument to parameter here
In file included from src/hashtable_test.cc:64:
In file included from ./src/hash_test_interface.h:52:
./src/google/sparsehash/sparsehashtable.h:372:41: error: no matching constructor for initialization of 'iterator' (aka 'sparse_hashtable_iterator<std::__1::pair<const int, int>, int, <anonymous>::Hasher,
      google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615>
      >')
  iterator begin()             { return iterator(this, table.nonempty_begin(),
                                        ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./src/google/sparse_hash_map:152:63: note: in instantiation of member function 'google::sparse_hashtable<std::__1::pair<const int, int>, int, <anonymous>::Hasher, google::sparse_hash_map<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher,
      <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::begin' requested here
  iterator begin()                               { return rep.begin(); }
                                                              ^
./src/hash_test_interface.h:145:25: note: in instantiation of member function 'google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long,
      18446744073709551615> >::begin' requested here
    return iterator(ht_.begin(), this);
                        ^
src/hashtable_test.cc:502:18: note: in instantiation of member function 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int,
      unsigned long, 18446744073709551615> > >::begin' requested here
  ci = this->ht_.begin();
                 ^
src/hashtable_test.cc:459:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableIntTest_Typedefs<google::HashtableInterface_SparseHashMap<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::Run' requested here
TYPED_TEST(HashtableIntTest, Typedefs) {
^
./src/testutil.h:160:7: note: expanded from macro 'TYPED_TEST'
      Run();                                                            \
      ^
src/hashtable_test.cc:459:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableIntTest_Typedefs<google::HashtableInterface_SparseHashMap<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::TEST_onetype_HashtableIntTest_Typedefs' requested here
TYPED_TEST(HashtableIntTest, Typedefs) {
^
./src/testutil.h:170:68: note: expanded from macro 'TYPED_TEST'
        TEST_onetype_##superclass##_##testname<superclass##_type1> t;   \
                                                                   ^
./src/google/sparsehash/sparsehashtable.h:175:3: note: candidate constructor not viable: no known conversion from 'nonempty_iterator' (aka 'two_d_iterator<vector<sparsegroup<value_type, 48,
      value_alloc_type>, vector_alloc> >') to 'st_iterator' (aka 'int') for 2nd argument
  sparse_hashtable_iterator(const sparse_hashtable<V,K,HF,ExK,SetK,EqK,A> *h,
  ^
./src/google/sparsehash/sparsehashtable.h:178:3: note: candidate constructor not viable: requires 0 arguments, but 3 were provided
  sparse_hashtable_iterator() { }      // not ever used internally
  ^
./src/google/sparsehash/sparsehashtable.h:157:8: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 3 were provided
struct sparse_hashtable_iterator {
       ^
In file included from src/hashtable_test.cc:64:
./src/hash_test_interface.h:89:15: error: type 'typename sparse_hash_map<int, int, Hasher, Hasher, Alloc<int, unsigned long, 18446744073709551615> >::iterator' (aka
      'sparse_hashtable_iterator<std::__1::pair<const int, int>, int, <anonymous>::Hasher, google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned
      long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SetKey,
      <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >') is not a direct or virtual base of 'google::BaseHashtableInterface<google::sparse_hash_map<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::iterator'
        : HT::iterator(it), parent_(parent) { }
              ^~~~~~~~
./src/hash_test_interface.h:145:12: note: in instantiation of member function 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher,
      <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::iterator::iterator' requested here
    return iterator(ht_.begin(), this);
           ^
src/hashtable_test.cc:502:18: note: in instantiation of member function 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int,
      unsigned long, 18446744073709551615> > >::begin' requested here
  ci = this->ht_.begin();
                 ^
src/hashtable_test.cc:459:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableIntTest_Typedefs<google::HashtableInterface_SparseHashMap<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::Run' requested here
TYPED_TEST(HashtableIntTest, Typedefs) {
^
./src/testutil.h:160:7: note: expanded from macro 'TYPED_TEST'
      Run();                                                            \
      ^
src/hashtable_test.cc:459:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableIntTest_Typedefs<google::HashtableInterface_SparseHashMap<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::TEST_onetype_HashtableIntTest_Typedefs' requested here
TYPED_TEST(HashtableIntTest, Typedefs) {
^
./src/testutil.h:170:68: note: expanded from macro 'TYPED_TEST'
        TEST_onetype_##superclass##_##testname<superclass##_type1> t;   \
                                                                   ^
In file included from src/hashtable_test.cc:64:
In file included from ./src/hash_test_interface.h:52:
./src/google/sparsehash/sparsehashtable.h:390:14: error: no matching constructor for initialization of 'local_iterator' (aka 'sparse_hashtable_iterator<std::__1::pair<const int, int>, int,
      <anonymous>::Hasher, google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SelectKey,
      google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher, <anonymous>::Alloc<int,
      unsigned long, 18446744073709551615> >')
      return local_iterator(this, table.get_iter(i), table.nonempty_end());
             ^              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./src/google/sparse_hash_map:158:63: note: in instantiation of member function 'google::sparse_hashtable<std::__1::pair<const int, int>, int, <anonymous>::Hasher, google::sparse_hash_map<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher,
      <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::begin' requested here
  local_iterator begin(size_type i)              { return rep.begin(i); }
                                                              ^
./src/hash_test_interface.h:157:31: note: in instantiation of member function 'google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long,
      18446744073709551615> >::begin' requested here
    return local_iterator(ht_.begin(i), this);
                              ^
src/hashtable_test.cc:504:19: note: in instantiation of member function 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int,
      unsigned long, 18446744073709551615> > >::begin' requested here
  cli = this->ht_.begin(0);
                  ^
src/hashtable_test.cc:459:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableIntTest_Typedefs<google::HashtableInterface_SparseHashMap<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::Run' requested here
TYPED_TEST(HashtableIntTest, Typedefs) {
^
./src/testutil.h:160:7: note: expanded from macro 'TYPED_TEST'
      Run();                                                            \
      ^
src/hashtable_test.cc:459:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableIntTest_Typedefs<google::HashtableInterface_SparseHashMap<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::TEST_onetype_HashtableIntTest_Typedefs' requested here
TYPED_TEST(HashtableIntTest, Typedefs) {
^
./src/testutil.h:170:68: note: expanded from macro 'TYPED_TEST'
        TEST_onetype_##superclass##_##testname<superclass##_type1> t;   \
                                                                   ^
./src/google/sparsehash/sparsehashtable.h:175:3: note: candidate constructor not viable: no known conversion from 'nonempty_iterator' (aka 'two_d_iterator<vector<sparsegroup<value_type, 48,
      value_alloc_type>, vector_alloc> >') to 'st_iterator' (aka 'int') for 2nd argument
  sparse_hashtable_iterator(const sparse_hashtable<V,K,HF,ExK,SetK,EqK,A> *h,
  ^
./src/google/sparsehash/sparsehashtable.h:178:3: note: candidate constructor not viable: requires 0 arguments, but 3 were provided
  sparse_hashtable_iterator() { }      // not ever used internally
  ^
./src/google/sparsehash/sparsehashtable.h:157:8: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 3 were provided
struct sparse_hashtable_iterator {
       ^
src/hashtable_test.cc:508:33: error: invalid operands to binary expression ('google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher,
      <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::iterator' and 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher,
      <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::iterator')
  EXPECT_TRUE(this->ht_.begin() == this->ht_.end());
              ~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~~~~
./src/testutil.h:49:9: note: expanded from macro 'EXPECT_TRUE'
  if (!(cond)) {                                        \
        ^
src/hashtable_test.cc:507:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::Run' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
./src/testutil.h:160:7: note: expanded from macro 'TYPED_TEST'
      Run();                                                            \
      ^
src/hashtable_test.cc:507:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::TEST_onetype_HashtableAllTest_NormalIterators' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
./src/testutil.h:170:68: note: expanded from macro 'TYPED_TEST'
        TEST_onetype_##superclass##_##testname<superclass##_type1> t;   \
                                                                   ^
./src/google/sparsehash/libc_allocator_with_realloc.h:108:13: note: candidate template ignored: could not match 'libc_allocator_with_realloc<type-parameter-0-0>' against
      'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::iterator'
inline bool operator==(const libc_allocator_with_realloc<T>&,
            ^
src/hashtable_test.cc:512:20: error: invalid operands to binary expression
      ('typename HashtableInterface_SparseHashMap<int, int, Hasher, Hasher, Alloc<int, unsigned long, 18446744073709551615> >::iterator' and 'google::BaseHashtableInterface<google::sparse_hash_map<int,
      int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::iterator')
    EXPECT_TRUE(it != this->ht_.end());
                ~~ ^  ~~~~~~~~~~~~~~~
./src/testutil.h:49:9: note: expanded from macro 'EXPECT_TRUE'
  if (!(cond)) {                                        \
        ^
./src/google/sparsehash/libc_allocator_with_realloc.h:114:13: note: candidate template ignored: could not match 'libc_allocator_with_realloc<type-parameter-0-0>' against
      'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::iterator'
inline bool operator!=(const libc_allocator_with_realloc<T>&,
            ^
src/hashtable_test.cc:513:5: error: cannot increment value of type 'typename HashtableInterface_SparseHashMap<int, int, Hasher, Hasher, Alloc<int, unsigned long, 18446744073709551615> >::iterator'
    ++it;
    ^ ~~
src/hashtable_test.cc:514:20: error: invalid operands to binary expression
      ('typename HashtableInterface_SparseHashMap<int, int, Hasher, Hasher, Alloc<int, unsigned long, 18446744073709551615> >::iterator' and 'google::BaseHashtableInterface<google::sparse_hash_map<int,
      int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::iterator')
    EXPECT_TRUE(it == this->ht_.end());
                ~~ ^  ~~~~~~~~~~~~~~~
./src/testutil.h:49:9: note: expanded from macro 'EXPECT_TRUE'
  if (!(cond)) {                                        \
        ^
./src/google/sparsehash/libc_allocator_with_realloc.h:108:13: note: candidate template ignored: could not match 'libc_allocator_with_realloc<type-parameter-0-0>' against
      'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::iterator'
inline bool operator==(const libc_allocator_with_realloc<T>&,
            ^
In file included from src/hashtable_test.cc:64:
./src/hash_test_interface.h:148:12: error: no matching constructor for initialization of 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher,
      <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::iterator'
    return iterator(ht_.end(), this);
           ^        ~~~~~~~~~~~~~~~
src/hashtable_test.cc:508:46: note: in instantiation of member function 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int,
      unsigned long, 18446744073709551615> > >::end' requested here
  EXPECT_TRUE(this->ht_.begin() == this->ht_.end());
                                             ^
./src/testutil.h:49:9: note: expanded from macro 'EXPECT_TRUE'
  if (!(cond)) {                                        \
        ^
src/hashtable_test.cc:507:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::Run' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
./src/testutil.h:160:7: note: expanded from macro 'TYPED_TEST'
      Run();                                                            \
      ^
src/hashtable_test.cc:507:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::TEST_onetype_HashtableAllTest_NormalIterators' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
./src/testutil.h:170:68: note: expanded from macro 'TYPED_TEST'
        TEST_onetype_##superclass##_##testname<superclass##_type1> t;   \
                                                                   ^
./src/hash_test_interface.h:86:5: note: candidate constructor not viable: requires 0 arguments, but 2 were provided
    iterator() : parent_(NULL) { }   // this allows code like "iterator it;"
    ^
./src/hash_test_interface.h:84:9: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 2 were provided
  class iterator : public HT::iterator {
        ^
In file included from src/hashtable_test.cc:64:
In file included from ./src/hash_test_interface.h:52:
./src/google/sparsehash/sparsehashtable.h:374:41: error: no matching constructor for initialization of 'iterator' (aka 'sparse_hashtable_iterator<std::__1::pair<const int, int>, int, <anonymous>::Hasher,
      google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615>
      >')
  iterator end()               { return iterator(this, table.nonempty_end(),
                                        ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~
./src/google/sparse_hash_map:153:63: note: in instantiation of member function 'google::sparse_hashtable<std::__1::pair<const int, int>, int, <anonymous>::Hasher, google::sparse_hash_map<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher,
      <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::end' requested here
  iterator end()                                 { return rep.end(); }
                                                              ^
./src/hash_test_interface.h:148:25: note: in instantiation of member function 'google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long,
      18446744073709551615> >::end' requested here
    return iterator(ht_.end(), this);
                        ^
src/hashtable_test.cc:508:46: note: in instantiation of member function 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int,
      unsigned long, 18446744073709551615> > >::end' requested here
  EXPECT_TRUE(this->ht_.begin() == this->ht_.end());
                                             ^
./src/testutil.h:49:9: note: expanded from macro 'EXPECT_TRUE'
  if (!(cond)) {                                        \
        ^
src/hashtable_test.cc:507:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::Run' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
./src/testutil.h:160:7: note: expanded from macro 'TYPED_TEST'
      Run();                                                            \
      ^
src/hashtable_test.cc:507:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::TEST_onetype_HashtableAllTest_NormalIterators' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
./src/testutil.h:170:68: note: expanded from macro 'TYPED_TEST'
        TEST_onetype_##superclass##_##testname<superclass##_type1> t;   \
                                                                   ^
./src/google/sparsehash/sparsehashtable.h:175:3: note: candidate constructor not viable: no known conversion from 'nonempty_iterator' (aka 'two_d_iterator<vector<sparsegroup<value_type, 48,
      value_alloc_type>, vector_alloc> >') to 'st_iterator' (aka 'int') for 2nd argument
  sparse_hashtable_iterator(const sparse_hashtable<V,K,HF,ExK,SetK,EqK,A> *h,
  ^
./src/google/sparsehash/sparsehashtable.h:178:3: note: candidate constructor not viable: requires 0 arguments, but 3 were provided
  sparse_hashtable_iterator() { }      // not ever used internally
  ^
./src/google/sparsehash/sparsehashtable.h:157:8: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 3 were provided
struct sparse_hashtable_iterator {
       ^
./src/google/sparsehash/sparsehashtable.h:925:34: error: no matching constructor for initialization of 'iterator' (aka 'sparse_hashtable_iterator<std::__1::pair<const int, int>, int, <anonymous>::Hasher,
      google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615>
      >')
      return pair<iterator,bool>(iterator(this, table.get_iter(pos.first),
                                 ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./src/google/sparsehash/sparsehashtable.h:957:12: note: in instantiation of member function 'google::sparse_hashtable<std::__1::pair<const int, int>, int, <anonymous>::Hasher, google::sparse_hash_map<int,
      int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher,
      <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::insert_noresize' requested here
    return insert_noresize(obj);
           ^
./src/google/sparse_hash_map:258:67: note: in instantiation of member function 'google::sparse_hashtable<std::__1::pair<const int, int>, int, <anonymous>::Hasher, google::sparse_hash_map<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher,
      <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::insert' requested here
  pair<iterator, bool> insert(const value_type& obj) { return rep.insert(obj); }
                                                                  ^
./src/hash_test_interface.h:295:47: note: in instantiation of member function 'google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long,
      18446744073709551615> >::insert' requested here
    pair<typename HT::iterator, bool> r = ht_.insert(obj);
                                              ^
src/hashtable_test.cc:509:13: note: in instantiation of member function 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int,
      unsigned long, 18446744073709551615> > >::insert' requested here
  this->ht_.insert(this->UniqueObject(1));
            ^
src/hashtable_test.cc:507:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::Run' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
./src/testutil.h:160:7: note: expanded from macro 'TYPED_TEST'
      Run();                                                            \
      ^
src/hashtable_test.cc:507:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::TEST_onetype_HashtableAllTest_NormalIterators' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
./src/testutil.h:170:68: note: expanded from macro 'TYPED_TEST'
        TEST_onetype_##superclass##_##testname<superclass##_type1> t;   \
                                                                   ^
./src/google/sparsehash/sparsehashtable.h:175:3: note: candidate constructor not viable: no known conversion from 'nonempty_iterator' (aka 'two_d_iterator<vector<sparsegroup<value_type, 48,
      value_alloc_type>, vector_alloc> >') to 'st_iterator' (aka 'int') for 2nd argument
  sparse_hashtable_iterator(const sparse_hashtable<V,K,HF,ExK,SetK,EqK,A> *h,
  ^
./src/google/sparsehash/sparsehashtable.h:178:3: note: candidate constructor not viable: requires 0 arguments, but 3 were provided
  sparse_hashtable_iterator() { }      // not ever used internally
  ^
./src/google/sparsehash/sparsehashtable.h:157:8: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 3 were provided
struct sparse_hashtable_iterator {
       ^
In file included from src/hashtable_test.cc:61:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/vector:502:5: error: implicit instantiation of undefined template '__static_assert_test<false>'
    static_assert((is_same<typename allocator_type::value_type, value_type>::value),
    ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__config:490:35: note: expanded from macro 'static_assert'
    typedef __static_assert_check<sizeof(__static_assert_test<(__b)>)> \
                                  ^
./src/google/sparsetable:1230:20: note: in instantiation of template class 'std::__1::vector<google::sparsegroup<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> >, 48,
      <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >, <anonymous>::Alloc<google::sparsegroup<std::__1::pair<const std::__1::basic_string<char>,
      std::__1::basic_string<char> >, 48, <anonymous>::Alloc<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> >, unsigned long, 18446744073709551615> >, unsigned long,
      18446744073709551615> >' requested here
  typedef typename group_vector_type::reference GroupsReference;
                   ^
./src/google/sparsehash/sparsehashtable.h:164:20: note: in instantiation of template class 'google::sparsetable<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> >, 48,
      <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >' requested here
  typedef typename sparsetable<V,DEFAULT_GROUP_SIZE,A>::nonempty_iterator
                   ^
./src/hash_test_interface.h:84:27: note: in instantiation of template class 'google::sparse_hashtable_iterator<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> >,
      std::__1::basic_string<char>, <anonymous>::Hasher, google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher,
      <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher,
      <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >' requested here
  class iterator : public HT::iterator {
                          ^
src/hashtable_test.cc:508:25: note: in instantiation of member class 'google::BaseHashtableInterface<google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::iterator' requested here
  EXPECT_TRUE(this->ht_.begin() == this->ht_.end());
                        ^
./src/testutil.h:49:9: note: expanded from macro 'EXPECT_TRUE'
  if (!(cond)) {                                        \
        ^
src/hashtable_test.cc:507:1: note: in instantiation of member function '<anonymous
      namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher,
      <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::Run' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
./src/testutil.h:160:7: note: expanded from macro 'TYPED_TEST'
      Run();                                                            \
      ^
src/hashtable_test.cc:507:1: note: in instantiation of member function '<anonymous
      namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher,
      <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::TEST_onetype_HashtableAllTest_NormalIterators' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
./src/testutil.h:194:68: note: expanded from macro 'TYPED_TEST'
        TEST_onetype_##superclass##_##testname<superclass##_type7> t;   \
                                                                   ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__config:486:24: note: template is declared here
template <bool> struct __static_assert_test;
                       ^
src/hashtable_test.cc:512:20: error: invalid operands to binary expression ('typename HashtableInterface_SparseHashMap<basic_string<char>, basic_string<char>, Hasher, Hasher, Alloc<basic_string<char>,
      unsigned long, 18446744073709551615> >::iterator' and 'google::BaseHashtableInterface<google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher,
      <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::iterator')
    EXPECT_TRUE(it != this->ht_.end());
                ~~ ^  ~~~~~~~~~~~~~~~
./src/testutil.h:49:9: note: expanded from macro 'EXPECT_TRUE'
  if (!(cond)) {                                        \
        ^
src/hashtable_test.cc:507:1: note: in instantiation of member function '<anonymous
      namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher,
      <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::Run' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
./src/testutil.h:160:7: note: expanded from macro 'TYPED_TEST'
      Run();                                                            \
      ^
src/hashtable_test.cc:507:1: note: in instantiation of member function '<anonymous
      namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher,
      <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::TEST_onetype_HashtableAllTest_NormalIterators' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
./src/testutil.h:194:68: note: expanded from macro 'TYPED_TEST'
        TEST_onetype_##superclass##_##testname<superclass##_type7> t;   \
                                                                   ^
./src/google/sparsehash/libc_allocator_with_realloc.h:114:13: note: candidate template ignored: could not match 'libc_allocator_with_realloc<type-parameter-0-0>' against
      'google::BaseHashtableInterface<google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher,
      <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::iterator'
inline bool operator!=(const libc_allocator_with_realloc<T>&,
            ^
src/hashtable_test.cc:513:5: error: cannot increment value of type 'typename HashtableInterface_SparseHashMap<basic_string<char>, basic_string<char>, Hasher, Hasher, Alloc<basic_string<char>, unsigned
      long, 18446744073709551615> >::iterator'
    ++it;
    ^ ~~
src/hashtable_test.cc:514:20: error: invalid operands to binary expression ('typename HashtableInterface_SparseHashMap<basic_string<char>, basic_string<char>, Hasher, Hasher, Alloc<basic_string<char>,
      unsigned long, 18446744073709551615> >::iterator' and 'google::BaseHashtableInterface<google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher,
      <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::iterator')
    EXPECT_TRUE(it == this->ht_.end());
                ~~ ^  ~~~~~~~~~~~~~~~
./src/testutil.h:49:9: note: expanded from macro 'EXPECT_TRUE'
  if (!(cond)) {                                        \
        ^
./src/google/sparsehash/libc_allocator_with_realloc.h:108:13: note: candidate template ignored: could not match 'libc_allocator_with_realloc<type-parameter-0-0>' against
      'google::BaseHashtableInterface<google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher,
      <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::iterator'
inline bool operator==(const libc_allocator_with_realloc<T>&,
            ^
In file included from src/hashtable_test.cc:64:
In file included from ./src/hash_test_interface.h:52:
./src/google/sparsehash/sparsehashtable.h:372:41: error: no matching constructor for initialization of 'iterator' (aka 'sparse_hashtable_iterator<std::__1::pair<const std::__1::basic_string<char>,
      std::__1::basic_string<char> >, std::__1::basic_string<char>, <anonymous>::Hasher, google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher,
      <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<std::__1::basic_string<char>,
      std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher,
      <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >')
  iterator begin()             { return iterator(this, table.nonempty_begin(),
                                        ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./src/google/sparse_hash_map:152:63: note: in instantiation of member function 'google::sparse_hashtable<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> >,
      std::__1::basic_string<char>, <anonymous>::Hasher, google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher,
      <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher,
      <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >::begin' requested here
  iterator begin()                               { return rep.begin(); }
                                                              ^
./src/hash_test_interface.h:145:25: note: in instantiation of member function 'google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher,
      <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >::begin' requested here
    return iterator(ht_.begin(), this);
                        ^
src/hashtable_test.cc:508:25: note: in instantiation of member function 'google::BaseHashtableInterface<google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::begin' requested here
  EXPECT_TRUE(this->ht_.begin() == this->ht_.end());
                        ^
./src/testutil.h:49:9: note: expanded from macro 'EXPECT_TRUE'
  if (!(cond)) {                                        \
        ^
src/hashtable_test.cc:507:1: note: in instantiation of member function '<anonymous
      namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher,
      <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::Run' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
./src/testutil.h:160:7: note: expanded from macro 'TYPED_TEST'
      Run();                                                            \
      ^
src/hashtable_test.cc:507:1: note: in instantiation of member function '<anonymous
      namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher,
      <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::TEST_onetype_HashtableAllTest_NormalIterators' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
./src/testutil.h:194:68: note: expanded from macro 'TYPED_TEST'
        TEST_onetype_##superclass##_##testname<superclass##_type7> t;   \
                                                                   ^
./src/google/sparsehash/sparsehashtable.h:175:3: note: candidate constructor not viable: no known conversion from 'nonempty_iterator' (aka 'two_d_iterator<vector<sparsegroup<value_type, 48,
      value_alloc_type>, vector_alloc> >') to 'st_iterator' (aka 'int') for 2nd argument
  sparse_hashtable_iterator(const sparse_hashtable<V,K,HF,ExK,SetK,EqK,A> *h,
  ^
./src/google/sparsehash/sparsehashtable.h:178:3: note: candidate constructor not viable: requires 0 arguments, but 3 were provided
  sparse_hashtable_iterator() { }      // not ever used internally
  ^
./src/google/sparsehash/sparsehashtable.h:157:8: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 3 were provided
struct sparse_hashtable_iterator {
       ^
In file included from src/hashtable_test.cc:64:
./src/hash_test_interface.h:89:15: error: type 'typename sparse_hash_map<basic_string<char>, basic_string<char>, Hasher, Hasher, Alloc<basic_string<char>, unsigned long, 18446744073709551615> >::iterator'
      (aka 'sparse_hashtable_iterator<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> >, std::__1::basic_string<char>, <anonymous>::Hasher,
      google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long,
      18446744073709551615> >::SelectKey, google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher,
      <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long,
      18446744073709551615> >') is not a direct or virtual base of 'google::BaseHashtableInterface<google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher,
      <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::iterator'
        : HT::iterator(it), parent_(parent) { }
              ^~~~~~~~
./src/hash_test_interface.h:145:12: note: in instantiation of member function 'google::BaseHashtableInterface<google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::iterator::iterator' requested here
    return iterator(ht_.begin(), this);
           ^
src/hashtable_test.cc:508:25: note: in instantiation of member function 'google::BaseHashtableInterface<google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::begin' requested here
  EXPECT_TRUE(this->ht_.begin() == this->ht_.end());
                        ^
./src/testutil.h:49:9: note: expanded from macro 'EXPECT_TRUE'
  if (!(cond)) {                                        \
        ^
src/hashtable_test.cc:507:1: note: in instantiation of member function '<anonymous
      namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher,
      <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::Run' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
./src/testutil.h:160:7: note: expanded from macro 'TYPED_TEST'
      Run();                                                            \
      ^
src/hashtable_test.cc:507:1: note: in instantiation of member function '<anonymous
      namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher,
      <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::TEST_onetype_HashtableAllTest_NormalIterators' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
./src/testutil.h:194:68: note: expanded from macro 'TYPED_TEST'
        TEST_onetype_##superclass##_##testname<superclass##_type7> t;   \
                                                                   ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
15 warnings and 20 errors generated.
make[1]: *** [hashtable_test.o] Error 1
make: *** [all] Error 2
/Applications/Xcode.app/Contents/Developer/usr/bin/make  install-am
if g++ -DHAVE_CONFIG_H -I. -I. -I./src  -I./src  -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -MT hashtable_test.o -MD -MP -MF ".deps/hashtable_test.Tpo" -c -o hashtable_test.o `test -f 'src/hashtable_test.cc' || echo './'`src/hashtable_test.cc; \
    then mv -f ".deps/hashtable_test.Tpo" ".deps/hashtable_test.Po"; else rm -f ".deps/hashtable_test.Tpo"; exit 1; fi
In file included from src/hashtable_test.cc:63:
./src/google/sparsetable:1087:36: warning: unused parameter 'ptr' [-Wunused-parameter]
    pointer realloc_or_die(pointer ptr, size_type n) {
                                   ^
./src/google/sparsetable:1087:51: warning: unused parameter 'n' [-Wunused-parameter]
    pointer realloc_or_die(pointer ptr, size_type n) {
                                                  ^
In file included from src/hashtable_test.cc:64:
In file included from ./src/hash_test_interface.h:55:
./src/google/sparsehash/densehashtable.h:1061:29: warning: unused parameter 'fp' [-Wunused-parameter]
  bool write_metadata(FILE *fp) {
                            ^
./src/google/sparsehash/densehashtable.h:1066:28: warning: unused parameter 'fp' [-Wunused-parameter]
  bool read_metadata(FILE *fp) {
                           ^
./src/google/sparsehash/densehashtable.h:1118:36: warning: unused parameter 'ptr' [-Wunused-parameter]
    pointer realloc_or_die(pointer ptr, size_type n) {
                                   ^
./src/google/sparsehash/densehashtable.h:1118:51: warning: unused parameter 'n' [-Wunused-parameter]
    pointer realloc_or_die(pointer ptr, size_type n) {
                                                  ^
In file included from src/hashtable_test.cc:64:
./src/hash_test_interface.h:425:50: warning: unused parameter 'k' [-Wunused-parameter]
  void set_empty_key(const typename p::key_type& k) { }
                                                 ^
./src/hash_test_interface.h:528:50: warning: unused parameter 'k' [-Wunused-parameter]
  void set_empty_key(const typename p::key_type& k) { }
                                                 ^
./src/hash_test_interface.h:640:50: warning: unused parameter 'k' [-Wunused-parameter]
  void set_empty_key(const typename p::key_type& k) { }
                                                 ^
./src/hash_test_interface.h:737:58: warning: unused parameter 'fp' [-Wunused-parameter]
  template <typename OUTPUT> bool write_metadata(OUTPUT *fp) { return false; }
                                                         ^
./src/hash_test_interface.h:738:55: warning: unused parameter 'fp' [-Wunused-parameter]
  template <typename INPUT> bool read_metadata(INPUT *fp) { return false; }
                                                      ^
./src/hash_test_interface.h:839:58: warning: unused parameter 'fp' [-Wunused-parameter]
  template <typename OUTPUT> bool write_metadata(OUTPUT *fp) { return false; }
                                                         ^
./src/hash_test_interface.h:840:55: warning: unused parameter 'fp' [-Wunused-parameter]
  template <typename INPUT> bool read_metadata(INPUT *fp) { return false; }
                                                      ^
./src/hash_test_interface.h:964:58: warning: unused parameter 'fp' [-Wunused-parameter]
  template <typename OUTPUT> bool write_metadata(OUTPUT *fp) { return false; }
                                                         ^
./src/hash_test_interface.h:965:55: warning: unused parameter 'fp' [-Wunused-parameter]
  template <typename INPUT> bool read_metadata(INPUT *fp) { return false; }
                                                      ^
In file included from src/hashtable_test.cc:61:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/vector:502:5: error: implicit instantiation of undefined template '__static_assert_test<false>'
    static_assert((is_same<typename allocator_type::value_type, value_type>::value),
    ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__config:490:35: note: expanded from macro 'static_assert'
    typedef __static_assert_check<sizeof(__static_assert_test<(__b)>)> \
                                  ^
./src/google/sparsetable:1230:20: note: in instantiation of template class 'std::__1::vector<google::sparsegroup<std::__1::pair<const int, int>, 48, <anonymous>::Alloc<int, unsigned long,
      18446744073709551615> >, <anonymous>::Alloc<google::sparsegroup<std::__1::pair<const int, int>, 48, <anonymous>::Alloc<std::__1::pair<const int, int>, unsigned long, 18446744073709551615> >,
      unsigned long, 18446744073709551615> >' requested here
  typedef typename group_vector_type::reference GroupsReference;
                   ^
./src/google/sparsehash/sparsehashtable.h:164:20: note: in instantiation of template class 'google::sparsetable<std::__1::pair<const int, int>, 48, <anonymous>::Alloc<int, unsigned long,
      18446744073709551615> >' requested here
  typedef typename sparsetable<V,DEFAULT_GROUP_SIZE,A>::nonempty_iterator
                   ^
./src/hash_test_interface.h:84:27: note: in instantiation of template class 'google::sparse_hashtable_iterator<std::__1::pair<const int, int>, int, <anonymous>::Hasher, google::sparse_hash_map<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher,
      <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >' requested here
  class iterator : public HT::iterator {
                          ^
src/hashtable_test.cc:480:32: note: in instantiation of member class 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int,
      unsigned long, 18446744073709551615> > >::iterator' requested here
  typename TypeParam::iterator i;
                               ^
src/hashtable_test.cc:459:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableIntTest_Typedefs<google::HashtableInterface_SparseHashMap<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::Run' requested here
TYPED_TEST(HashtableIntTest, Typedefs) {
^
./src/testutil.h:160:7: note: expanded from macro 'TYPED_TEST'
      Run();                                                            \
      ^
src/hashtable_test.cc:459:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableIntTest_Typedefs<google::HashtableInterface_SparseHashMap<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::TEST_onetype_HashtableIntTest_Typedefs' requested here
TYPED_TEST(HashtableIntTest, Typedefs) {
^
./src/testutil.h:170:68: note: expanded from macro 'TYPED_TEST'
        TEST_onetype_##superclass##_##testname<superclass##_type1> t;   \
                                                                   ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__config:486:24: note: template is declared here
template <bool> struct __static_assert_test;
                       ^
src/hashtable_test.cc:502:8: error: no viable conversion from 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned
      long, 18446744073709551615> > >::iterator' to 'const google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long,
      18446744073709551615> > >::const_iterator'
  ci = this->ht_.begin();
       ^~~~~~~~~~~~~~~~~
src/hashtable_test.cc:459:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableIntTest_Typedefs<google::HashtableInterface_SparseHashMap<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::Run' requested here
TYPED_TEST(HashtableIntTest, Typedefs) {
^
./src/testutil.h:160:7: note: expanded from macro 'TYPED_TEST'
      Run();                                                            \
      ^
src/hashtable_test.cc:459:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableIntTest_Typedefs<google::HashtableInterface_SparseHashMap<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::TEST_onetype_HashtableIntTest_Typedefs' requested here
TYPED_TEST(HashtableIntTest, Typedefs) {
^
./src/testutil.h:170:68: note: expanded from macro 'TYPED_TEST'
        TEST_onetype_##superclass##_##testname<superclass##_type1> t;   \
                                                                   ^
./src/hash_test_interface.h:107:5: note: candidate constructor
    const_iterator(typename BaseHashtableInterface<HT>::iterator it)
    ^
./src/hash_test_interface.h:96:9: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'google::BaseHashtableInterface<google::sparse_hash_map<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::iterator' to 'const google::BaseHashtableInterface<google::sparse_hash_map<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::const_iterator &' for 1st argument
  class const_iterator : public HT::const_iterator {
        ^
./src/hash_test_interface.h:96:9: note: passing argument to parameter here
src/hashtable_test.cc:504:9: error: no viable conversion from 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned
      long, 18446744073709551615> > >::local_iterator' to 'const google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned
      long, 18446744073709551615> > >::const_local_iterator'
  cli = this->ht_.begin(0);
        ^~~~~~~~~~~~~~~~~~
./src/hash_test_interface.h:137:5: note: candidate constructor
    const_local_iterator(local_iterator it)
    ^
./src/hash_test_interface.h:128:9: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'google::BaseHashtableInterface<google::sparse_hash_map<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::local_iterator' to 'const google::BaseHashtableInterface<google::sparse_hash_map<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::const_local_iterator &' for 1st argument
  class const_local_iterator : public HT::const_local_iterator {
        ^
./src/hash_test_interface.h:128:9: note: passing argument to parameter here
In file included from src/hashtable_test.cc:64:
In file included from ./src/hash_test_interface.h:52:
./src/google/sparsehash/sparsehashtable.h:372:41: error: no matching constructor for initialization of 'iterator' (aka 'sparse_hashtable_iterator<std::__1::pair<const int, int>, int, <anonymous>::Hasher,
      google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615>
      >')
  iterator begin()             { return iterator(this, table.nonempty_begin(),
                                        ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./src/google/sparse_hash_map:152:63: note: in instantiation of member function 'google::sparse_hashtable<std::__1::pair<const int, int>, int, <anonymous>::Hasher, google::sparse_hash_map<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher,
      <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::begin' requested here
  iterator begin()                               { return rep.begin(); }
                                                              ^
./src/hash_test_interface.h:145:25: note: in instantiation of member function 'google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long,
      18446744073709551615> >::begin' requested here
    return iterator(ht_.begin(), this);
                        ^
src/hashtable_test.cc:502:18: note: in instantiation of member function 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int,
      unsigned long, 18446744073709551615> > >::begin' requested here
  ci = this->ht_.begin();
                 ^
src/hashtable_test.cc:459:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableIntTest_Typedefs<google::HashtableInterface_SparseHashMap<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::Run' requested here
TYPED_TEST(HashtableIntTest, Typedefs) {
^
./src/testutil.h:160:7: note: expanded from macro 'TYPED_TEST'
      Run();                                                            \
      ^
src/hashtable_test.cc:459:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableIntTest_Typedefs<google::HashtableInterface_SparseHashMap<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::TEST_onetype_HashtableIntTest_Typedefs' requested here
TYPED_TEST(HashtableIntTest, Typedefs) {
^
./src/testutil.h:170:68: note: expanded from macro 'TYPED_TEST'
        TEST_onetype_##superclass##_##testname<superclass##_type1> t;   \
                                                                   ^
./src/google/sparsehash/sparsehashtable.h:175:3: note: candidate constructor not viable: no known conversion from 'nonempty_iterator' (aka 'two_d_iterator<vector<sparsegroup<value_type, 48,
      value_alloc_type>, vector_alloc> >') to 'st_iterator' (aka 'int') for 2nd argument
  sparse_hashtable_iterator(const sparse_hashtable<V,K,HF,ExK,SetK,EqK,A> *h,
  ^
./src/google/sparsehash/sparsehashtable.h:178:3: note: candidate constructor not viable: requires 0 arguments, but 3 were provided
  sparse_hashtable_iterator() { }      // not ever used internally
  ^
./src/google/sparsehash/sparsehashtable.h:157:8: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 3 were provided
struct sparse_hashtable_iterator {
       ^
In file included from src/hashtable_test.cc:64:
./src/hash_test_interface.h:89:15: error: type 'typename sparse_hash_map<int, int, Hasher, Hasher, Alloc<int, unsigned long, 18446744073709551615> >::iterator' (aka
      'sparse_hashtable_iterator<std::__1::pair<const int, int>, int, <anonymous>::Hasher, google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned
      long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SetKey,
      <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >') is not a direct or virtual base of 'google::BaseHashtableInterface<google::sparse_hash_map<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::iterator'
        : HT::iterator(it), parent_(parent) { }
              ^~~~~~~~
./src/hash_test_interface.h:145:12: note: in instantiation of member function 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher,
      <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::iterator::iterator' requested here
    return iterator(ht_.begin(), this);
           ^
src/hashtable_test.cc:502:18: note: in instantiation of member function 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int,
      unsigned long, 18446744073709551615> > >::begin' requested here
  ci = this->ht_.begin();
                 ^
src/hashtable_test.cc:459:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableIntTest_Typedefs<google::HashtableInterface_SparseHashMap<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::Run' requested here
TYPED_TEST(HashtableIntTest, Typedefs) {
^
./src/testutil.h:160:7: note: expanded from macro 'TYPED_TEST'
      Run();                                                            \
      ^
src/hashtable_test.cc:459:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableIntTest_Typedefs<google::HashtableInterface_SparseHashMap<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::TEST_onetype_HashtableIntTest_Typedefs' requested here
TYPED_TEST(HashtableIntTest, Typedefs) {
^
./src/testutil.h:170:68: note: expanded from macro 'TYPED_TEST'
        TEST_onetype_##superclass##_##testname<superclass##_type1> t;   \
                                                                   ^
In file included from src/hashtable_test.cc:64:
In file included from ./src/hash_test_interface.h:52:
./src/google/sparsehash/sparsehashtable.h:390:14: error: no matching constructor for initialization of 'local_iterator' (aka 'sparse_hashtable_iterator<std::__1::pair<const int, int>, int,
      <anonymous>::Hasher, google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SelectKey,
      google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher, <anonymous>::Alloc<int,
      unsigned long, 18446744073709551615> >')
      return local_iterator(this, table.get_iter(i), table.nonempty_end());
             ^              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./src/google/sparse_hash_map:158:63: note: in instantiation of member function 'google::sparse_hashtable<std::__1::pair<const int, int>, int, <anonymous>::Hasher, google::sparse_hash_map<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher,
      <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::begin' requested here
  local_iterator begin(size_type i)              { return rep.begin(i); }
                                                              ^
./src/hash_test_interface.h:157:31: note: in instantiation of member function 'google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long,
      18446744073709551615> >::begin' requested here
    return local_iterator(ht_.begin(i), this);
                              ^
src/hashtable_test.cc:504:19: note: in instantiation of member function 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int,
      unsigned long, 18446744073709551615> > >::begin' requested here
  cli = this->ht_.begin(0);
                  ^
src/hashtable_test.cc:459:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableIntTest_Typedefs<google::HashtableInterface_SparseHashMap<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::Run' requested here
TYPED_TEST(HashtableIntTest, Typedefs) {
^
./src/testutil.h:160:7: note: expanded from macro 'TYPED_TEST'
      Run();                                                            \
      ^
src/hashtable_test.cc:459:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableIntTest_Typedefs<google::HashtableInterface_SparseHashMap<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::TEST_onetype_HashtableIntTest_Typedefs' requested here
TYPED_TEST(HashtableIntTest, Typedefs) {
^
./src/testutil.h:170:68: note: expanded from macro 'TYPED_TEST'
        TEST_onetype_##superclass##_##testname<superclass##_type1> t;   \
                                                                   ^
./src/google/sparsehash/sparsehashtable.h:175:3: note: candidate constructor not viable: no known conversion from 'nonempty_iterator' (aka 'two_d_iterator<vector<sparsegroup<value_type, 48,
      value_alloc_type>, vector_alloc> >') to 'st_iterator' (aka 'int') for 2nd argument
  sparse_hashtable_iterator(const sparse_hashtable<V,K,HF,ExK,SetK,EqK,A> *h,
  ^
./src/google/sparsehash/sparsehashtable.h:178:3: note: candidate constructor not viable: requires 0 arguments, but 3 were provided
  sparse_hashtable_iterator() { }      // not ever used internally
  ^
./src/google/sparsehash/sparsehashtable.h:157:8: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 3 were provided
struct sparse_hashtable_iterator {
       ^
src/hashtable_test.cc:508:33: error: invalid operands to binary expression ('google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher,
      <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::iterator' and 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher,
      <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::iterator')
  EXPECT_TRUE(this->ht_.begin() == this->ht_.end());
              ~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~~~~
./src/testutil.h:49:9: note: expanded from macro 'EXPECT_TRUE'
  if (!(cond)) {                                        \
        ^
src/hashtable_test.cc:507:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::Run' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
./src/testutil.h:160:7: note: expanded from macro 'TYPED_TEST'
      Run();                                                            \
      ^
src/hashtable_test.cc:507:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::TEST_onetype_HashtableAllTest_NormalIterators' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
./src/testutil.h:170:68: note: expanded from macro 'TYPED_TEST'
        TEST_onetype_##superclass##_##testname<superclass##_type1> t;   \
                                                                   ^
./src/google/sparsehash/libc_allocator_with_realloc.h:108:13: note: candidate template ignored: could not match 'libc_allocator_with_realloc<type-parameter-0-0>' against
      'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::iterator'
inline bool operator==(const libc_allocator_with_realloc<T>&,
            ^
src/hashtable_test.cc:512:20: error: invalid operands to binary expression
      ('typename HashtableInterface_SparseHashMap<int, int, Hasher, Hasher, Alloc<int, unsigned long, 18446744073709551615> >::iterator' and 'google::BaseHashtableInterface<google::sparse_hash_map<int,
      int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::iterator')
    EXPECT_TRUE(it != this->ht_.end());
                ~~ ^  ~~~~~~~~~~~~~~~
./src/testutil.h:49:9: note: expanded from macro 'EXPECT_TRUE'
  if (!(cond)) {                                        \
        ^
./src/google/sparsehash/libc_allocator_with_realloc.h:114:13: note: candidate template ignored: could not match 'libc_allocator_with_realloc<type-parameter-0-0>' against
      'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::iterator'
inline bool operator!=(const libc_allocator_with_realloc<T>&,
            ^
src/hashtable_test.cc:513:5: error: cannot increment value of type 'typename HashtableInterface_SparseHashMap<int, int, Hasher, Hasher, Alloc<int, unsigned long, 18446744073709551615> >::iterator'
    ++it;
    ^ ~~
src/hashtable_test.cc:514:20: error: invalid operands to binary expression
      ('typename HashtableInterface_SparseHashMap<int, int, Hasher, Hasher, Alloc<int, unsigned long, 18446744073709551615> >::iterator' and 'google::BaseHashtableInterface<google::sparse_hash_map<int,
      int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::iterator')
    EXPECT_TRUE(it == this->ht_.end());
                ~~ ^  ~~~~~~~~~~~~~~~
./src/testutil.h:49:9: note: expanded from macro 'EXPECT_TRUE'
  if (!(cond)) {                                        \
        ^
./src/google/sparsehash/libc_allocator_with_realloc.h:108:13: note: candidate template ignored: could not match 'libc_allocator_with_realloc<type-parameter-0-0>' against
      'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::iterator'
inline bool operator==(const libc_allocator_with_realloc<T>&,
            ^
In file included from src/hashtable_test.cc:64:
./src/hash_test_interface.h:148:12: error: no matching constructor for initialization of 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher,
      <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::iterator'
    return iterator(ht_.end(), this);
           ^        ~~~~~~~~~~~~~~~
src/hashtable_test.cc:508:46: note: in instantiation of member function 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int,
      unsigned long, 18446744073709551615> > >::end' requested here
  EXPECT_TRUE(this->ht_.begin() == this->ht_.end());
                                             ^
./src/testutil.h:49:9: note: expanded from macro 'EXPECT_TRUE'
  if (!(cond)) {                                        \
        ^
src/hashtable_test.cc:507:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::Run' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
./src/testutil.h:160:7: note: expanded from macro 'TYPED_TEST'
      Run();                                                            \
      ^
src/hashtable_test.cc:507:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::TEST_onetype_HashtableAllTest_NormalIterators' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
./src/testutil.h:170:68: note: expanded from macro 'TYPED_TEST'
        TEST_onetype_##superclass##_##testname<superclass##_type1> t;   \
                                                                   ^
./src/hash_test_interface.h:86:5: note: candidate constructor not viable: requires 0 arguments, but 2 were provided
    iterator() : parent_(NULL) { }   // this allows code like "iterator it;"
    ^
./src/hash_test_interface.h:84:9: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 2 were provided
  class iterator : public HT::iterator {
        ^
In file included from src/hashtable_test.cc:64:
In file included from ./src/hash_test_interface.h:52:
./src/google/sparsehash/sparsehashtable.h:374:41: error: no matching constructor for initialization of 'iterator' (aka 'sparse_hashtable_iterator<std::__1::pair<const int, int>, int, <anonymous>::Hasher,
      google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615>
      >')
  iterator end()               { return iterator(this, table.nonempty_end(),
                                        ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~
./src/google/sparse_hash_map:153:63: note: in instantiation of member function 'google::sparse_hashtable<std::__1::pair<const int, int>, int, <anonymous>::Hasher, google::sparse_hash_map<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher,
      <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::end' requested here
  iterator end()                                 { return rep.end(); }
                                                              ^
./src/hash_test_interface.h:148:25: note: in instantiation of member function 'google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long,
      18446744073709551615> >::end' requested here
    return iterator(ht_.end(), this);
                        ^
src/hashtable_test.cc:508:46: note: in instantiation of member function 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int,
      unsigned long, 18446744073709551615> > >::end' requested here
  EXPECT_TRUE(this->ht_.begin() == this->ht_.end());
                                             ^
./src/testutil.h:49:9: note: expanded from macro 'EXPECT_TRUE'
  if (!(cond)) {                                        \
        ^
src/hashtable_test.cc:507:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::Run' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
./src/testutil.h:160:7: note: expanded from macro 'TYPED_TEST'
      Run();                                                            \
      ^
src/hashtable_test.cc:507:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::TEST_onetype_HashtableAllTest_NormalIterators' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
./src/testutil.h:170:68: note: expanded from macro 'TYPED_TEST'
        TEST_onetype_##superclass##_##testname<superclass##_type1> t;   \
                                                                   ^
./src/google/sparsehash/sparsehashtable.h:175:3: note: candidate constructor not viable: no known conversion from 'nonempty_iterator' (aka 'two_d_iterator<vector<sparsegroup<value_type, 48,
      value_alloc_type>, vector_alloc> >') to 'st_iterator' (aka 'int') for 2nd argument
  sparse_hashtable_iterator(const sparse_hashtable<V,K,HF,ExK,SetK,EqK,A> *h,
  ^
./src/google/sparsehash/sparsehashtable.h:178:3: note: candidate constructor not viable: requires 0 arguments, but 3 were provided
  sparse_hashtable_iterator() { }      // not ever used internally
  ^
./src/google/sparsehash/sparsehashtable.h:157:8: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 3 were provided
struct sparse_hashtable_iterator {
       ^
./src/google/sparsehash/sparsehashtable.h:925:34: error: no matching constructor for initialization of 'iterator' (aka 'sparse_hashtable_iterator<std::__1::pair<const int, int>, int, <anonymous>::Hasher,
      google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615>
      >')
      return pair<iterator,bool>(iterator(this, table.get_iter(pos.first),
                                 ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./src/google/sparsehash/sparsehashtable.h:957:12: note: in instantiation of member function 'google::sparse_hashtable<std::__1::pair<const int, int>, int, <anonymous>::Hasher, google::sparse_hash_map<int,
      int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher,
      <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::insert_noresize' requested here
    return insert_noresize(obj);
           ^
./src/google/sparse_hash_map:258:67: note: in instantiation of member function 'google::sparse_hashtable<std::__1::pair<const int, int>, int, <anonymous>::Hasher, google::sparse_hash_map<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher,
      <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::insert' requested here
  pair<iterator, bool> insert(const value_type& obj) { return rep.insert(obj); }
                                                                  ^
./src/hash_test_interface.h:295:47: note: in instantiation of member function 'google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long,
      18446744073709551615> >::insert' requested here
    pair<typename HT::iterator, bool> r = ht_.insert(obj);
                                              ^
src/hashtable_test.cc:509:13: note: in instantiation of member function 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int,
      unsigned long, 18446744073709551615> > >::insert' requested here
  this->ht_.insert(this->UniqueObject(1));
            ^
src/hashtable_test.cc:507:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::Run' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
./src/testutil.h:160:7: note: expanded from macro 'TYPED_TEST'
      Run();                                                            \
      ^
src/hashtable_test.cc:507:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<int, int,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::TEST_onetype_HashtableAllTest_NormalIterators' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
./src/testutil.h:170:68: note: expanded from macro 'TYPED_TEST'
        TEST_onetype_##superclass##_##testname<superclass##_type1> t;   \
                                                                   ^
./src/google/sparsehash/sparsehashtable.h:175:3: note: candidate constructor not viable: no known conversion from 'nonempty_iterator' (aka 'two_d_iterator<vector<sparsegroup<value_type, 48,
      value_alloc_type>, vector_alloc> >') to 'st_iterator' (aka 'int') for 2nd argument
  sparse_hashtable_iterator(const sparse_hashtable<V,K,HF,ExK,SetK,EqK,A> *h,
  ^
./src/google/sparsehash/sparsehashtable.h:178:3: note: candidate constructor not viable: requires 0 arguments, but 3 were provided
  sparse_hashtable_iterator() { }      // not ever used internally
  ^
./src/google/sparsehash/sparsehashtable.h:157:8: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 3 were provided
struct sparse_hashtable_iterator {
       ^
In file included from src/hashtable_test.cc:61:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/vector:502:5: error: implicit instantiation of undefined template '__static_assert_test<false>'
    static_assert((is_same<typename allocator_type::value_type, value_type>::value),
    ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__config:490:35: note: expanded from macro 'static_assert'
    typedef __static_assert_check<sizeof(__static_assert_test<(__b)>)> \
                                  ^
./src/google/sparsetable:1230:20: note: in instantiation of template class 'std::__1::vector<google::sparsegroup<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> >, 48,
      <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >, <anonymous>::Alloc<google::sparsegroup<std::__1::pair<const std::__1::basic_string<char>,
      std::__1::basic_string<char> >, 48, <anonymous>::Alloc<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> >, unsigned long, 18446744073709551615> >, unsigned long,
      18446744073709551615> >' requested here
  typedef typename group_vector_type::reference GroupsReference;
                   ^
./src/google/sparsehash/sparsehashtable.h:164:20: note: in instantiation of template class 'google::sparsetable<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> >, 48,
      <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >' requested here
  typedef typename sparsetable<V,DEFAULT_GROUP_SIZE,A>::nonempty_iterator
                   ^
./src/hash_test_interface.h:84:27: note: in instantiation of template class 'google::sparse_hashtable_iterator<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> >,
      std::__1::basic_string<char>, <anonymous>::Hasher, google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher,
      <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher,
      <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >' requested here
  class iterator : public HT::iterator {
                          ^
src/hashtable_test.cc:508:25: note: in instantiation of member class 'google::BaseHashtableInterface<google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::iterator' requested here
  EXPECT_TRUE(this->ht_.begin() == this->ht_.end());
                        ^
./src/testutil.h:49:9: note: expanded from macro 'EXPECT_TRUE'
  if (!(cond)) {                                        \
        ^
src/hashtable_test.cc:507:1: note: in instantiation of member function '<anonymous
      namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher,
      <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::Run' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
./src/testutil.h:160:7: note: expanded from macro 'TYPED_TEST'
      Run();                                                            \
      ^
src/hashtable_test.cc:507:1: note: in instantiation of member function '<anonymous
      namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher,
      <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::TEST_onetype_HashtableAllTest_NormalIterators' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
./src/testutil.h:194:68: note: expanded from macro 'TYPED_TEST'
        TEST_onetype_##superclass##_##testname<superclass##_type7> t;   \
                                                                   ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__config:486:24: note: template is declared here
template <bool> struct __static_assert_test;
                       ^
src/hashtable_test.cc:512:20: error: invalid operands to binary expression ('typename HashtableInterface_SparseHashMap<basic_string<char>, basic_string<char>, Hasher, Hasher, Alloc<basic_string<char>,
      unsigned long, 18446744073709551615> >::iterator' and 'google::BaseHashtableInterface<google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher,
      <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::iterator')
    EXPECT_TRUE(it != this->ht_.end());
                ~~ ^  ~~~~~~~~~~~~~~~
./src/testutil.h:49:9: note: expanded from macro 'EXPECT_TRUE'
  if (!(cond)) {                                        \
        ^
src/hashtable_test.cc:507:1: note: in instantiation of member function '<anonymous
      namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher,
      <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::Run' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
./src/testutil.h:160:7: note: expanded from macro 'TYPED_TEST'
      Run();                                                            \
      ^
src/hashtable_test.cc:507:1: note: in instantiation of member function '<anonymous
      namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher,
      <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::TEST_onetype_HashtableAllTest_NormalIterators' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
./src/testutil.h:194:68: note: expanded from macro 'TYPED_TEST'
        TEST_onetype_##superclass##_##testname<superclass##_type7> t;   \
                                                                   ^
./src/google/sparsehash/libc_allocator_with_realloc.h:114:13: note: candidate template ignored: could not match 'libc_allocator_with_realloc<type-parameter-0-0>' against
      'google::BaseHashtableInterface<google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher,
      <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::iterator'
inline bool operator!=(const libc_allocator_with_realloc<T>&,
            ^
src/hashtable_test.cc:513:5: error: cannot increment value of type 'typename HashtableInterface_SparseHashMap<basic_string<char>, basic_string<char>, Hasher, Hasher, Alloc<basic_string<char>, unsigned
      long, 18446744073709551615> >::iterator'
    ++it;
    ^ ~~
src/hashtable_test.cc:514:20: error: invalid operands to binary expression ('typename HashtableInterface_SparseHashMap<basic_string<char>, basic_string<char>, Hasher, Hasher, Alloc<basic_string<char>,
      unsigned long, 18446744073709551615> >::iterator' and 'google::BaseHashtableInterface<google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher,
      <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::iterator')
    EXPECT_TRUE(it == this->ht_.end());
                ~~ ^  ~~~~~~~~~~~~~~~
./src/testutil.h:49:9: note: expanded from macro 'EXPECT_TRUE'
  if (!(cond)) {                                        \
        ^
./src/google/sparsehash/libc_allocator_with_realloc.h:108:13: note: candidate template ignored: could not match 'libc_allocator_with_realloc<type-parameter-0-0>' against
      'google::BaseHashtableInterface<google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher,
      <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::iterator'
inline bool operator==(const libc_allocator_with_realloc<T>&,
            ^
In file included from src/hashtable_test.cc:64:
In file included from ./src/hash_test_interface.h:52:
./src/google/sparsehash/sparsehashtable.h:372:41: error: no matching constructor for initialization of 'iterator' (aka 'sparse_hashtable_iterator<std::__1::pair<const std::__1::basic_string<char>,
      std::__1::basic_string<char> >, std::__1::basic_string<char>, <anonymous>::Hasher, google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher,
      <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<std::__1::basic_string<char>,
      std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher,
      <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >')
  iterator begin()             { return iterator(this, table.nonempty_begin(),
                                        ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./src/google/sparse_hash_map:152:63: note: in instantiation of member function 'google::sparse_hashtable<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> >,
      std::__1::basic_string<char>, <anonymous>::Hasher, google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher,
      <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher,
      <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >::begin' requested here
  iterator begin()                               { return rep.begin(); }
                                                              ^
./src/hash_test_interface.h:145:25: note: in instantiation of member function 'google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher,
      <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >::begin' requested here
    return iterator(ht_.begin(), this);
                        ^
src/hashtable_test.cc:508:25: note: in instantiation of member function 'google::BaseHashtableInterface<google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::begin' requested here
  EXPECT_TRUE(this->ht_.begin() == this->ht_.end());
                        ^
./src/testutil.h:49:9: note: expanded from macro 'EXPECT_TRUE'
  if (!(cond)) {                                        \
        ^
src/hashtable_test.cc:507:1: note: in instantiation of member function '<anonymous
      namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher,
      <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::Run' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
./src/testutil.h:160:7: note: expanded from macro 'TYPED_TEST'
      Run();                                                            \
      ^
src/hashtable_test.cc:507:1: note: in instantiation of member function '<anonymous
      namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher,
      <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::TEST_onetype_HashtableAllTest_NormalIterators' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
./src/testutil.h:194:68: note: expanded from macro 'TYPED_TEST'
        TEST_onetype_##superclass##_##testname<superclass##_type7> t;   \
                                                                   ^
./src/google/sparsehash/sparsehashtable.h:175:3: note: candidate constructor not viable: no known conversion from 'nonempty_iterator' (aka 'two_d_iterator<vector<sparsegroup<value_type, 48,
      value_alloc_type>, vector_alloc> >') to 'st_iterator' (aka 'int') for 2nd argument
  sparse_hashtable_iterator(const sparse_hashtable<V,K,HF,ExK,SetK,EqK,A> *h,
  ^
./src/google/sparsehash/sparsehashtable.h:178:3: note: candidate constructor not viable: requires 0 arguments, but 3 were provided
  sparse_hashtable_iterator() { }      // not ever used internally
  ^
./src/google/sparsehash/sparsehashtable.h:157:8: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 3 were provided
struct sparse_hashtable_iterator {
       ^
In file included from src/hashtable_test.cc:64:
./src/hash_test_interface.h:89:15: error: type 'typename sparse_hash_map<basic_string<char>, basic_string<char>, Hasher, Hasher, Alloc<basic_string<char>, unsigned long, 18446744073709551615> >::iterator'
      (aka 'sparse_hashtable_iterator<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> >, std::__1::basic_string<char>, <anonymous>::Hasher,
      google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long,
      18446744073709551615> >::SelectKey, google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher,
      <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long,
      18446744073709551615> >') is not a direct or virtual base of 'google::BaseHashtableInterface<google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher,
      <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::iterator'
        : HT::iterator(it), parent_(parent) { }
              ^~~~~~~~
./src/hash_test_interface.h:145:12: note: in instantiation of member function 'google::BaseHashtableInterface<google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::iterator::iterator' requested here
    return iterator(ht_.begin(), this);
           ^
src/hashtable_test.cc:508:25: note: in instantiation of member function 'google::BaseHashtableInterface<google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>,
      <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::begin' requested here
  EXPECT_TRUE(this->ht_.begin() == this->ht_.end());
                        ^
./src/testutil.h:49:9: note: expanded from macro 'EXPECT_TRUE'
  if (!(cond)) {                                        \
        ^
src/hashtable_test.cc:507:1: note: in instantiation of member function '<anonymous
      namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher,
      <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::Run' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
./src/testutil.h:160:7: note: expanded from macro 'TYPED_TEST'
      Run();                                                            \
      ^
src/hashtable_test.cc:507:1: note: in instantiation of member function '<anonymous
      namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher,
      <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::TEST_onetype_HashtableAllTest_NormalIterators' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
./src/testutil.h:194:68: note: expanded from macro 'TYPED_TEST'
        TEST_onetype_##superclass##_##testname<superclass##_type7> t;   \
                                                                   ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
15 warnings and 20 errors generated.
make[1]: *** [hashtable_test.o] Error 1
make: *** [install] Error 2
extconf.rb:110:in `<main>': Use RbConfig instead of obsolete and deprecated Config.
extconf.rb:110:in `<main>': Use RbConfig instead of obsolete and deprecated Config.
checking for tr1/functional... no
checking for functional... yes
creating Makefile
WattsInABox commented 10 years ago

BTW, this could be related to the latest update from Apple to their command line tools. I just installed it yesterday. My bad:

$ gcc -v
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 5.1 (clang-503.0.38) (based on LLVM 3.4svn)
Target: x86_64-apple-darwin13.1.0
Thread model: posix
rdp commented 10 years ago

@billywatson could you try just building the google hash code itself? versions 1.8.1 and 2.0.2 thanks

dchen496 commented 10 years ago

@billywatson sparsehash 2.0.2 still compiles fine using gcc 4.7 (from Macports) on my system, but not with Clang. I have the newest Xcode update as well.

WattsInABox commented 10 years ago

@rdp @dchen496

1.8.1: https://gist.github.com/billywatson/9529704

2.0.2: https://gist.github.com/billywatson/9529730

Thanks for taking a look

rdp commented 10 years ago

Hmm I'll ping the sparse hash people and see if they have seen anything like it...for now though unless sparsehash compiles you won't too far with the gem...

On Thu, Mar 13, 2014 at 8:40 AM, Billy Watson notifications@github.comwrote:

@rdp https://github.com/rdp @dchen496 https://github.com/dchen496

1.8.1: https://gist.github.com/billywatson/9529704

2.0.2: https://gist.github.com/billywatson/9529730

Thanks for taking a look

Reply to this email directly or view it on GitHubhttps://github.com/rdp/google_hash/issues/24#issuecomment-37540364 .

WattsInABox commented 10 years ago

Thanks for doing that. Let me know how I can help.

rdp commented 10 years ago

Does it build with the latest xcode with this patch? https://code.google.com/p/sparsehash/issues/detail?id=99

On Thu, Mar 13, 2014 at 10:13 AM, Billy Watson notifications@github.comwrote:

Thanks for doing that. Let me know how I can help.

— Reply to this email directly or view it on GitHubhttps://github.com/rdp/google_hash/issues/24#issuecomment-37552172 .

accy commented 10 years ago

Looks like the patch makes the package buildable - though number of warnings persists (haven't tried to use the binaries yet): accysmbp:sparsehash-2.0.2 accy$ git apply allocator.patch accysmbp:sparsehash-2.0.2 accy$ ./configure checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... ./install-sh -c -d checking for gawk... no checking for mawk... no checking for nawk... no checking for awk... awk checking whether make sets $(MAKE)... yes checking for g++... g++ checking whether the C++ compiler works... yes checking for C++ compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking for style of include used by make... GNU checking dependency style of g++... gcc3 checking for gcc... gcc checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking how to run the C preprocessor... gcc -E checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for ANSI C header files... yes checking for memcpy... yes checking for memmove... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for uint16_t... yes checking for u_int16_t... yes checking for __uint16... no checking for long long... yes checking sys/resource.h usability... yes checking sys/resource.h presence... yes checking for sys/resource.h... yes checking for unistd.h... (cached) yes checking sys/time.h usability... yes checking sys/time.h presence... yes checking for sys/time.h... yes checking sys/utsname.h usability... yes checking sys/utsname.h presence... yes checking for sys/utsname.h... yes checking how to run the C++ preprocessor... g++ -E checking google/malloc_extension.h usability... no checking google/malloc_extension.h presence... no checking for google/malloc_extension.h... no checking whether the compiler implements namespaces... yes checking the location of hash_map... checking how to include hash_fun directly... configure: creating ./config.status config.status: creating Makefile config.status: creating src/config.h config.status: src/config.h is unchanged config.status: executing depfiles commands accysmbp:sparsehash-2.0.2 accy$ make /Applications/Xcode.app/Contents/Developer/usr/bin/make all-am g++ -DHAVE_CONFIG_H -I. -I./src -I./src -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -MT hashtable_test.o -MD -MP -MF .deps/hashtable_test.Tpo -c -o hashtable_test.o test -f 'src/hashtable_test.cc' || echo './'src/hashtable_test.cc In file included from src/hashtable_test.cc:63: ./src/hash_test_interface.h:436:50: warning: unused parameter 'k' [-Wunused-parameter] void set_empty_key(const typename p::key_type& k) { } ^ ./src/hash_test_interface.h:543:50: warning: unused parameter 'k' [-Wunused-parameter] void set_empty_key(const typename p::key_type& k) { } ^ ./src/hash_test_interface.h:659:50: warning: unused parameter 'k' [-Wunused-parameter] void set_empty_key(const typename p::key_type& k) { } ^ src/hashtable_test.cc:520:1: warning: unused variable 'HashtableCharStarTest_numtypes' [-Wunused-const-variable] TYPED_TEST_CASE_6(HashtableCharStarTest, CharStarHashtables); ^ ./src/testutil.h:106:20: note: expanded from macro 'TYPED_TEST_CASE_6' static const int classname##_numtypes = 6; \ ^

:66:1: note: expanded from here HashtableCharStarTest_numtypes ^ 4 warnings generated. mv -f .deps/hashtable_test.Tpo .deps/hashtable_test.Po g++ -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -o hashtable_test hashtable_test.o g++ -DHAVE_CONFIG_H -I. -I./src -I./src -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -MT simple_test.o -MD -MP -MF .deps/simple_test.Tpo -c -o simple_test.o `test -f 'src/simple_test.cc' || echo './'`src/simple_test.cc mv -f .deps/simple_test.Tpo .deps/simple_test.Po g++ -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -o simple_test simple_test.o g++ -DHAVE_CONFIG_H -I. -I./src -I./src -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -MT simple_compat_test.o -MD -MP -MF .deps/simple_compat_test.Tpo -c -o simple_compat_test.o `test -f 'src/simple_compat_test.cc' || echo './'`src/simple_compat_test.cc mv -f .deps/simple_compat_test.Tpo .deps/simple_compat_test.Po g++ -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -o simple_compat_test simple_compat_test.o g++ -DHAVE_CONFIG_H -I. -I./src -I./src -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -MT time_hash_map-time_hash_map.o -MD -MP -MF .deps/time_hash_map-time_hash_map.Tpo -c -o time_hash_map-time_hash_map.o `test -f 'src/time_hash_map.cc' || echo './'`src/time_hash_map.cc mv -f .deps/time_hash_map-time_hash_map.Tpo .deps/time_hash_map-time_hash_map.Po g++ -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -o time_hash_map time_hash_map-time_hash_map.o echo 'prefix=/usr/local' > "libsparsehash.pc".tmp echo 'exec_prefix='`echo '/usr/local' | sed 's@^/usr/local@${prefix}@'` >> "libsparsehash.pc".tmp echo 'libdir='`echo '/usr/local/lib' | sed 's@^/usr/local@${exec_prefix}@'` >> "libsparsehash.pc".tmp echo 'includedir='`echo '/usr/local/include' | sed 's@^/usr/local@${prefix}@'` >> "libsparsehash.pc".tmp echo '' >> "libsparsehash.pc".tmp echo 'Name: sparsehash' >> "libsparsehash.pc".tmp echo 'Version: 2.0.2' >> "libsparsehash.pc".tmp grep '^Summary:' ./packages/rpm/rpm.spec | sed s/^Summary:/Description:/ | head -n1 >> "libsparsehash.pc".tmp grep '^URL: ' ./packages/rpm/rpm.spec >> "libsparsehash.pc".tmp echo 'Requires:' >> "libsparsehash.pc".tmp echo 'Libs:' >> "libsparsehash.pc".tmp echo 'Cflags: -I${includedir}' >> "libsparsehash.pc".tmp mv -f "libsparsehash.pc".tmp "libsparsehash.pc"
rdp commented 10 years ago

OK could you try google_hash git master [or would you prefer a gem release of it--if so then clone it then run rake build then install the created .gem file, or I can just release it, whichever you prefer]. thx. -roger-

On Tue, May 20, 2014 at 1:56 AM, accy notifications@github.com wrote:

Looks like the patch makes the package buildable - though number of warnings persists (haven't tried to use the binaries yet): accysmbp:sparsehash-2.0.2 accy$ git apply allocator.patch accysmbp:sparsehash-2.0.2 accy$ ./configure

checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... ./install-sh -c -d

checking for gawk... no checking for mawk... no checking for nawk... no checking for awk... awk checking whether make sets $(MAKE)... yes checking for g++... g++ checking whether the C++ compiler works... yes checking for C++ compiler default output file name... a.out

checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking for style of include used by make... GNU checking dependency style of g++... gcc3 checking for gcc... gcc

checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking how to run the C preprocessor... gcc -E checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for ANSI C header files... yes checking for memcpy... yes checking for memmove... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for uint16_t... yes checking for u_int16_t... yes checking for __uint16... no checking for long long... yes checking sys/resource.h usability... yes checking sys/resource.h presence... yes checking for sys/resource.h... yes checking for unistd.h... (cached) yes checking sys/time.h usability... yes checking sys/time.h presence... yes checking for sys/time.h... yes checking sys/utsname.h usability... yes checking sys/utsname.h presence... yes checking for sys/utsname.h... yes checking how to run the C++ preprocessor... g++ -E checking google/malloc_extension.h usability... no checking google/malloc_extension.h presence... no checking for google/malloc_extension.h... no checking whether the compiler implements namespaces... yes checking the location of hash_map... checking how to include hash_fun directly... configure: creating ./config.status config.status: creating Makefile config.status: creating src/config.h config.status: src/config.h is unchanged config.status: executing depfiles commands accysmbp:sparsehash-2.0.2 accy$ make /Applications/Xcode.app/Contents/Developer/usr/bin/make all-am g++ -DHAVE_CONFIG_H -I. -I./src -I./src -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -MT hashtable_test.o -MD -MP -MF .deps/hashtable_test.Tpo -c -o hashtable_test.o test -f 'src/hashtable_test.cc' || echo './'src/hashtable_test.cc

In file included from src/hashtable_test.cc:63: ./src/hash_test_interface.h:436:50: warning: unused parameter 'k'

[-Wunused-parameter] void set_empty_key(const typename p::key_type& k) { } ^ ./src/hash_test_interface.h:543:50: warning: unused parameter 'k'

[-Wunused-parameter] void set_empty_key(const typename p::key_type& k) { } ^ ./src/hash_test_interface.h:659:50: warning: unused parameter 'k'

[-Wunused-parameter] void set_empty_key(const typename p::key_type& k) { } ^ src/hashtable_test.cc:520:1: warning: unused variable 'HashtableCharStarTest_numtypes' [-Wunused-const-variable] TYPED_TEST_CASE_6(HashtableCharStarTest, CharStarHashtables); ^ ./src/testutil.h:106:20: note: expanded from macro 'TYPED_TEST_CASE_6' static const int classname##_numtypes = 6; \ ^ :66:1: note: expanded from here HashtableCharStarTest_numtypes ^ 4 warnings generated. mv -f .deps/hashtable_test.Tpo .deps/hashtable_test.Po g++ -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -o hashtable_test hashtable_test.o

g++ -DHAVE_CONFIG_H -I. -I./src -I./src -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -MT simple_test.o -MD -MP -MF .deps/simple_test.Tpo -c -o simple_test.o test -f 'src/simple_test.cc' || echo './'src/simple_test.cc mv -f .deps/simple_test.Tpo .deps/simple_test.Po g++ -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -o simple_test simple_test.o

g++ -DHAVE_CONFIG_H -I. -I./src -I./src -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -MT simple_compat_test.o -MD -MP -MF .deps/simple_compat_test.Tpo -c -o simple_compat_test.o test -f 'src/simple_compat_test.cc' || echo './'src/simple_compat_test.cc mv -f .deps/simple_compat_test.Tpo .deps/simple_compat_test.Po g++ -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -o simple_compat_test simple_compat_test.o

g++ -DHAVE_CONFIG_H -I. -I./src -I./src -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -MT time_hash_map-time_hash_map.o -MD -MP -MF .deps/time_hash_map-time_hash_map.Tpo -c -o time_hash_map-time_hash_map.o test -f 'src/time_hash_map.cc' || echo './' src/time_hash_map.cc mv -f .deps/time_hash_map-time_hash_map.Tpo .deps/time_hash_map-time_hash_map.Po g++ -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -o time_hash_map time_hash_map-time_hash_map.o

echo 'prefix=/usr/local' > "libsparsehash.pc".tmp echo 'exec_prefix='echo '/usr/local' | sed 's@^/usr/local@${prefix}@' >> "libsparsehash.pc".tmp echo 'libdir='echo '/usr/local/lib' | sed 's@^/usr/local@${exec_prefix}@'>> "libsparsehash.pc".tmp echo 'includedir='echo '/usr/local/include' | sed 's@^/usr/local@ ${prefix}@' >> "libsparsehash.pc".tmp echo '' >> "libsparsehash.pc".tmp echo 'Name: sparsehash' >> "libsparsehash.pc".tmp echo 'Version: 2.0.2' >> "libsparsehash.pc".tmp grep '^Summary:' ./packages/rpm/rpm.spec | sed s/^Summary:/Description:/ | head -n1 >> "libsparsehash.pc".tmp grep '^URL: ' ./packages/rpm/rpm.spec >> "libsparsehash.pc".tmp echo 'Requires:' >> "libsparsehash.pc".tmp echo 'Libs:' >> "libsparsehash.pc".tmp echo 'Cflags: -I${includedir}' >> "libsparsehash.pc".tmp mv -f "libsparsehash.pc".tmp "libsparsehash.pc"

— Reply to this email directly or view it on GitHubhttps://github.com/rdp/google_hash/issues/24#issuecomment-43596284 .

accy commented 10 years ago

Hope this will help: "accysmbp:dev accy$ git clone https://github.com/rdp/google_hash Cloning into 'google_hash'... remote: Reusing existing pack: 1067, done. remote: Counting objects: 9, done. remote: Compressing objects: 100% (9/9), done. remote: Total 1076 (delta 0), reused 0 (delta 0) Receiving objects: 100% (1076/1076), 786.21 KiB | 408.00 KiB/s, done. Resolving deltas: 100% (454/454), done. Checking connectivity... done. accysmbp:dev accy$ cd google_hash/ext/ accysmbp:ext accy$ ruby extconf.rb /Users/accy/.rvm/gems/ruby-2.1.0@rails4/gems/sane-0.25.6/lib/sane/irb_startup_options.rb:4: warning: encountered \r in middle of line, treated as a mere space building local copy/version of google sparse/dense hash library sh configure --prefix=/Users/accy/dev/google_hash/ext/local_installed checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... ./install-sh -c -d checking for gawk... no checking for mawk... no checking for nawk... no checking for awk... awk checking whether make sets $(MAKE)... yes checking for g++... g++ checking whether the C++ compiler works... yes checking for C++ compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking for style of include used by make... GNU checking dependency style of g++... gcc3 checking for gcc... gcc checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking how to run the C preprocessor... gcc -E checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for ANSI C header files... yes checking for memcpy... yes checking for memmove... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for uint16_t... yes checking for u_int16_t... yes checking for __uint16... no checking for long long... yes checking sys/resource.h usability... yes checking sys/resource.h presence... yes checking for sys/resource.h... yes checking for unistd.h... (cached) yes checking sys/time.h usability... yes checking sys/time.h presence... yes checking for sys/time.h... yes checking sys/utsname.h usability... yes checking sys/utsname.h presence... yes checking for sys/utsname.h... yes checking how to run the C++ preprocessor... g++ -E checking google/malloc_extension.h usability... no checking google/malloc_extension.h presence... no checking for google/malloc_extension.h... no checking whether the compiler implements namespaces... yes checking the location of hash_map... checking how to include hashfun directly... configure: creating ./config.status config.status: creating Makefile config.status: creating src/config.h config.status: executing depfiles commands [ -d src/sparsehash/internal ] || mkdir -p src/sparsehash/internal echo "/" > src/sparsehash/internal/_sparsehash_config echo " * NOTE: This file is for internal use only." >> src/sparsehash/internal/_sparsehash_config echo " * Do not use these #defines in your own program!" >> src/sparsehash/internal/_sparsehash_config echo " /" >> src/sparsehash/internal/_sparsehash_config awk '{prevline=currline; currline=$0;} \ /^#/ {in_second_file = 1;} \ !in_second_file {if (currline !~ /^ $/) {inc[currline]=0}}; \ in_second_file { for (i in inc) { \ if (index(currline, i) != 0) { \ print "\n"prevline"\n"currline; \ delete inc[i]; \ } \ } }' \ ./src/config.h.include ./src/config.h \

src/sparsehash/internal/_sparsehash_config mv -f src/sparsehash/internal/_sparsehash_config src/sparsehash/internal/sparseconfig.h /Applications/Xcode.app/Contents/Developer/usr/bin/make all-am g++ -DHAVE_CONFIG_H -I. -I./src -I./src -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -MT template_util_unittest.o -MD -MP -MF .deps/template_util_unittest.Tpo -c -o template_util_unittest.o test -f 'src/template_util_unittest.cc' || echo './'src/template_util_unittest.cc mv -f .deps/template_util_unittest.Tpo .deps/template_util_unittest.Po g++ -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -o template_util_unittest template_util_unittest.o
g++ -DHAVE_CONFIG_H -I. -I./src -I./src -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -MT type_traits_unittest.o -MD -MP -MF .deps/type_traits_unittest.Tpo -c -o type_traits_unittest.o test -f 'src/type_traits_unittest.cc' || echo './'src/type_traits_unittest.cc src/type_traitsunittest.cc:88:7: warning: private field 'n' is not used [-Wunused-private-field] int n_; ^ src/type_traitsunittest.cc:98:7: warning: private field 'n' is not used [-Wunused-private-field] int n_; ^ src/type_traitsunittest.cc:112:7: warning: private field 'n' is not used [-Wunused-private-field] int n_; ^ src/type_traitsunittest.cc:138:7: warning: private field 'n' is not used [-Wunused-private-field] int n_; ^ 4 warnings generated. mv -f .deps/type_traits_unittest.Tpo .deps/type_traits_unittest.Po g++ -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -o type_traits_unittest type_traits_unittest.o
g++ -DHAVE_CONFIG_H -I. -I./src -I./src -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -MT libc_allocator_with_realloc_test.o -MD -MP -MF .deps/libc_allocator_with_realloc_test.Tpo -c -o libc_allocator_with_realloc_test.o test -f 'src/libc_allocator_with_realloc_test.cc' || echo './'src/libc_allocator_with_realloc_test.cc mv -f .deps/libc_allocator_with_realloc_test.Tpo .deps/libc_allocator_with_realloc_test.Po g++ -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -o libc_allocator_with_realloc_test libc_allocator_with_realloc_test.o
g++ -DHAVE_CONFIG_H -I. -I./src -I./src -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -MT sparsetable_unittest.o -MD -MP -MF .deps/sparsetable_unittest.Tpo -c -o sparsetable_unittest.o test -f 'src/sparsetable_unittest.cc' || echo './'src/sparsetable_unittest.cc mv -f .deps/sparsetable_unittest.Tpo .deps/sparsetable_unittest.Po g++ -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -o sparsetable_unittest sparsetable_unittest.o
g++ -DHAVE_CONFIG_H -I. -I./src -I./src -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -MT hashtable_test.o -MD -MP -MF .deps/hashtable_test.Tpo -c -o hashtable_test.o test -f 'src/hashtable_test.cc' || echo './'src/hashtable_test.cc In file included from src/hashtable_test.cc:63: ./src/hash_test_interface.h:436:50: warning: unused parameter 'k' [-Wunused-parameter] void set_empty_key(const typename p::key_type& k) { } ^ ./src/hash_test_interface.h:543:50: warning: unused parameter 'k' [-Wunused-parameter] void set_empty_key(const typename p::key_type& k) { } ^ ./src/hash_test_interface.h:659:50: warning: unused parameter 'k' [-Wunused-parameter] void set_empty_key(const typename p::key_type& k) { } ^ src/hashtable_test.cc:520:1: warning: unused variable 'HashtableCharStarTest_numtypes' [-Wunused-const-variable] TYPED_TEST_CASE_6(HashtableCharStarTest, CharStarHashtables); ^ ./src/testutil.h:106:20: note: expanded from macro 'TYPED_TEST_CASE_6' static const int classname##_numtypes = 6; \ ^

:66:1: note: expanded from here HashtableCharStarTest_numtypes ^ 4 warnings generated. mv -f .deps/hashtable_test.Tpo .deps/hashtable_test.Po g++ -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -o hashtable_test hashtable_test.o g++ -DHAVE_CONFIG_H -I. -I./src -I./src -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -MT simple_test.o -MD -MP -MF .deps/simple_test.Tpo -c -o simple_test.o `test -f 'src/simple_test.cc' || echo './'`src/simple_test.cc mv -f .deps/simple_test.Tpo .deps/simple_test.Po g++ -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -o simple_test simple_test.o g++ -DHAVE_CONFIG_H -I. -I./src -I./src -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -MT simple_compat_test.o -MD -MP -MF .deps/simple_compat_test.Tpo -c -o simple_compat_test.o `test -f 'src/simple_compat_test.cc' || echo './'`src/simple_compat_test.cc mv -f .deps/simple_compat_test.Tpo .deps/simple_compat_test.Po g++ -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -o simple_compat_test simple_compat_test.o g++ -DHAVE_CONFIG_H -I. -I./src -I./src -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -MT time_hash_map-time_hash_map.o -MD -MP -MF .deps/time_hash_map-time_hash_map.Tpo -c -o time_hash_map-time_hash_map.o `test -f 'src/time_hash_map.cc' || echo './'`src/time_hash_map.cc mv -f .deps/time_hash_map-time_hash_map.Tpo .deps/time_hash_map-time_hash_map.Po g++ -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -o time_hash_map time_hash_map-time_hash_map.o echo 'prefix=/Users/accy/dev/google_hash/ext/local_installed' > "libsparsehash.pc".tmp echo 'exec_prefix='`echo '/Users/accy/dev/google_hash/ext/local_installed' | sed 's@^/Users/accy/dev/google_hash/ext/local_installed@${prefix}@'` >> "libsparsehash.pc".tmp echo 'libdir='`echo '/Users/accy/dev/google_hash/ext/local_installed/lib' | sed 's@^/Users/accy/dev/google_hash/ext/local_installed@${exec_prefix}@'` >> "libsparsehash.pc".tmp echo 'includedir='`echo '/Users/accy/dev/google_hash/ext/local_installed/include' | sed 's@^/Users/accy/dev/google_hash/ext/local_installed@${prefix}@'` >> "libsparsehash.pc".tmp echo '' >> "libsparsehash.pc".tmp echo 'Name: sparsehash' >> "libsparsehash.pc".tmp echo 'Version: 2.0.2' >> "libsparsehash.pc".tmp grep '^Summary:' ./packages/rpm/rpm.spec | sed s/^Summary:/Description:/ | head -n1 >> "libsparsehash.pc".tmp grep '^URL: ' ./packages/rpm/rpm.spec >> "libsparsehash.pc".tmp echo 'Requires:' >> "libsparsehash.pc".tmp echo 'Libs:' >> "libsparsehash.pc".tmp echo 'Cflags: -I${includedir}' >> "libsparsehash.pc".tmp mv -f "libsparsehash.pc".tmp "libsparsehash.pc" /Applications/Xcode.app/Contents/Developer/usr/bin/make install-am test -z "/Users/accy/dev/google_hash/ext/local_installed/lib" || ./install-sh -c -d "/Users/accy/dev/google_hash/ext/local_installed/lib" test -z "/Users/accy/dev/google_hash/ext/local_installed/share/doc/sparsehash-2.0.2" || ./install-sh -c -d "/Users/accy/dev/google_hash/ext/local_installed/share/doc/sparsehash-2.0.2" /usr/bin/install -c -m 644 AUTHORS COPYING ChangeLog INSTALL NEWS README README_windows.txt TODO doc/dense_hash_map.html doc/dense_hash_set.html doc/sparse_hash_map.html doc/sparse_hash_set.html doc/sparsetable.html doc/implementation.html doc/performance.html doc/index.html doc/designstyle.css '/Users/accy/dev/google_hash/ext/local_installed/share/doc/sparsehash-2.0.2' test -z "/Users/accy/dev/google_hash/ext/local_installed/include/google" || ./install-sh -c -d "/Users/accy/dev/google_hash/ext/local_installed/include/google" /usr/bin/install -c -m 644 src/google/dense_hash_map src/google/dense_hash_set src/google/sparse_hash_map src/google/sparse_hash_set src/google/sparsetable src/google/template_util.h src/google/type_traits.h '/Users/accy/dev/google_hash/ext/local_installed/include/google' test -z "/Users/accy/dev/google_hash/ext/local_installed/include/google/sparsehash" || ./install-sh -c -d "/Users/accy/dev/google_hash/ext/local_installed/include/google/sparsehash" /usr/bin/install -c -m 644 src/google/sparsehash/densehashtable.h src/google/sparsehash/sparsehashtable.h src/google/sparsehash/hashtable-common.h src/google/sparsehash/libc_allocator_with_realloc.h '/Users/accy/dev/google_hash/ext/local_installed/include/google/sparsehash' test -z "/Users/accy/dev/google_hash/ext/local_installed/include/sparsehash/internal" || ./install-sh -c -d "/Users/accy/dev/google_hash/ext/local_installed/include/sparsehash/internal" /usr/bin/install -c -m 644 src/sparsehash/internal/densehashtable.h src/sparsehash/internal/sparsehashtable.h src/sparsehash/internal/hashtable-common.h src/sparsehash/internal/libc_allocator_with_realloc.h '/Users/accy/dev/google_hash/ext/local_installed/include/sparsehash/internal' test -z "/Users/accy/dev/google_hash/ext/local_installed/include/sparsehash/internal" || ./install-sh -c -d "/Users/accy/dev/google_hash/ext/local_installed/include/sparsehash/internal" /usr/bin/install -c -m 644 src/sparsehash/internal/sparseconfig.h '/Users/accy/dev/google_hash/ext/local_installed/include/sparsehash/internal' test -z "/Users/accy/dev/google_hash/ext/local_installed/lib/pkgconfig" || ./install-sh -c -d "/Users/accy/dev/google_hash/ext/local_installed/lib/pkgconfig" /usr/bin/install -c -m 644 libsparsehash.pc '/Users/accy/dev/google_hash/ext/local_installed/lib/pkgconfig' test -z "/Users/accy/dev/google_hash/ext/local_installed/include/sparsehash" || ./install-sh -c -d "/Users/accy/dev/google_hash/ext/local_installed/include/sparsehash" /usr/bin/install -c -m 644 src/sparsehash/dense_hash_map src/sparsehash/dense_hash_set src/sparsehash/sparse_hash_map src/sparsehash/sparse_hash_set src/sparsehash/sparsetable src/sparsehash/template_util.h src/sparsehash/type_traits.h '/Users/accy/dev/google_hash/ext/local_installed/include/sparsehash' extconf.rb:109:in `
': Use RbConfig instead of obsolete and deprecated Config. extconf.rb:109:in`
': Use RbConfig instead of obsolete and deprecated Config. checking for tr1/functional... yes checking for functional... yes checking for tr1/functional... yes creating Makefile accysmbp:ext accy$ make compiling dense_double_to_double.cpp dense_double_to_double.cpp:6:11: fatal error: 'tr1/functional' file not found #include ^ 1 error generated. make: *_\* [dense_double_to_double.o] Error 1 "

Looks like the sparse hash compilation was successful but the generated cpp files caused the errors.

accy commented 10 years ago

Also the gemspec now requires an update: accysmbp:dev accy$ gem specific_install -l https://github.com/rdp/google_hash http installing from https://github.com/rdp/google_hash Cloning into '/var/folders/56/cyb1mn8963dbf7b4r4879x2r0000gn/T/d20140521-45345-1ovy2az'... remote: Reusing existing pack: 1067, done. remote: Counting objects: 9, done. remote: Compressing objects: 100% (9/9), done. remote: Total 1076 (delta 0), reused 0 (delta 0) Receiving objects: 100% (1076/1076), 786.21 KiB | 428.00 KiB/s, done. Resolving deltas: 100% (454/454), done. Checking connectivity... done. WARNING: See http://guides.rubygems.org/specification-reference/ for help ERROR: While executing gem ... (Gem::InvalidSpecificationException) ["ext/sparsehash-1.8.1/AUTHORS", "ext/sparsehash-1.8.1/COPYING", "ext/sparsehash-1.8.1/ChangeLog", "ext/sparsehash-1.8.1/INSTALL", "ext/sparsehash-1.8.1/Makefile.am", "ext/sparsehash-1.8.1/Makefile.in", "ext/sparsehash-1.8.1/NEWS", "ext/sparsehash-1.8.1/README", "ext/sparsehash-1.8.1/README_windows.txt", "ext/sparsehash-1.8.1/TODO", "ext/sparsehash-1.8.1/aclocal.m4", "ext/sparsehash-1.8.1/compile", "ext/sparsehash-1.8.1/config.guess", "ext/sparsehash-1.8.1/config.sub", "ext/sparsehash-1.8.1/configure", "ext/sparsehash-1.8.1/configure.ac", "ext/sparsehash-1.8.1/depcomp", "ext/sparsehash-1.8.1/doc/dense_hash_map.html", "ext/sparsehash-1.8.1/doc/dense_hash_set.html", "ext/sparsehash-1.8.1/doc/designstyle.css", "ext/sparsehash-1.8.1/doc/implementation.html", "ext/sparsehash-1.8.1/doc/index.html", "ext/sparsehash-1.8.1/doc/performance.html", "ext/sparsehash-1.8.1/doc/sparse_hash_map.html", "ext/sparsehash-1.8.1/doc/sparse_hash_set.html", "ext/sparsehash-1.8.1/doc/sparsetable.html", "ext/sparsehash-1.8.1/experimental/Makefile", "ext/sparsehash-1.8.1/experimental/README", "ext/sparsehash-1.8.1/experimental/example.c", "ext/sparsehash-1.8.1/experimental/libchash.c", "ext/sparsehash-1.8.1/experimental/libchash.h", "ext/sparsehash-1.8.1/google-sparsehash.sln", "ext/sparsehash-1.8.1/install-sh", "ext/sparsehash-1.8.1/m4/acx_pthread.m4", "ext/sparsehash-1.8.1/m4/google_namespace.m4", "ext/sparsehash-1.8.1/m4/namespaces.m4", "ext/sparsehash-1.8.1/m4/stl_hash.m4", "ext/sparsehash-1.8.1/m4/stl_hash_fun.m4", "ext/sparsehash-1.8.1/m4/stl_namespace.m4", "ext/sparsehash-1.8.1/missing", "ext/sparsehash-1.8.1/mkinstalldirs", "ext/sparsehash-1.8.1/packages/deb.sh", "ext/sparsehash-1.8.1/packages/deb/README", "ext/sparsehash-1.8.1/packages/deb/changelog", "ext/sparsehash-1.8.1/packages/deb/compat", "ext/sparsehash-1.8.1/packages/deb/control", "ext/sparsehash-1.8.1/packages/deb/copyright", "ext/sparsehash-1.8.1/packages/deb/docs", "ext/sparsehash-1.8.1/packages/deb/rules", "ext/sparsehash-1.8.1/packages/deb/sparsehash.dirs", "ext/sparsehash-1.8.1/packages/deb/sparsehash.install", "ext/sparsehash-1.8.1/packages/rpm.sh", "ext/sparsehash-1.8.1/packages/rpm/rpm.spec", "ext/sparsehash-1.8.1/src/config.h.in", "ext/sparsehash-1.8.1/src/config.h.include", "ext/sparsehash-1.8.1/src/google/dense_hash_map", "ext/sparsehash-1.8.1/src/google/dense_hash_set", "ext/sparsehash-1.8.1/src/google/sparse_hash_map", "ext/sparsehash-1.8.1/src/google/sparse_hash_set", "ext/sparsehash-1.8.1/src/google/sparsehash/densehashtable.h", "ext/sparsehash-1.8.1/src/google/sparsehash/hashtable-common.h", "ext/sparsehash-1.8.1/src/google/sparsehash/libc_allocator_with_realloc.h", "ext/sparsehash-1.8.1/src/google/sparsehash/sparsehashtable.h", "ext/sparsehash-1.8.1/src/google/sparsetable", "ext/sparsehash-1.8.1/src/google/type_traits.h", "ext/sparsehash-1.8.1/src/hash_test_interface.h", "ext/sparsehash-1.8.1/src/hashtable_test.cc", "ext/sparsehash-1.8.1/src/libc_allocator_with_realloc_test.cc", "ext/sparsehash-1.8.1/src/simple_test.cc", "ext/sparsehash-1.8.1/src/sparsetable_unittest.cc", "ext/sparsehash-1.8.1/src/testutil.h", "ext/sparsehash-1.8.1/src/time_hash_map.cc", "ext/sparsehash-1.8.1/src/type_traits_unittest.cc", "ext/sparsehash-1.8.1/src/windows/config.h", "ext/sparsehash-1.8.1/src/windows/google/sparsehash/sparseconfig.h", "ext/sparsehash-1.8.1/src/windows/port.cc", "ext/sparsehash-1.8.1/src/windows/port.h", "ext/sparsehash-1.8.1/vsprojects/hashtable_test/hashtable_test.vcproj", "ext/sparsehash-1.8.1/vsprojects/simple_test/simple_test.vcproj", "ext/sparsehash-1.8.1/vsprojects/sparsetable_unittest/sparsetable_unittest.vcproj", "ext/sparsehash-1.8.1/vsprojects/time_hash_map/time_hash_map.vcproj", "ext/sparsehash-1.8.1/vsprojects/type_traits_unittest/type_traits_unittest.vcproj"] are not files

rdp commented 10 years ago

how about output from make V=1 and also mkmf.log and "gcc -v"? I'm struggling to figure out how it can say these (also try git master?) I'm trying to figure out how to get it to build on both older OS X and newer...

(also updated the gemspec)

On Wed, May 21, 2014 at 4:15 PM, accy notifications@github.com wrote:

Hope this will help: "accysmbp:dev accy$ git clone https://github.com/rdp/google_hash Cloning into 'google_hash'... remote: Reusing existing pack: 1067, done. remote: Counting objects: 9, done. remote: Compressing objects: 100% (9/9), done. remote: Total 1076 (delta 0), reused 0 (delta 0) Receiving objects: 100% (1076/1076), 786.21 KiB | 408.00 KiB/s, done. Resolving deltas: 100% (454/454), done. Checking connectivity... done. accysmbp:dev accy$ cd google_hash/ext/ accysmbp:ext accy$ ruby extconf.rb /Users/accy/.rvm/gems/ruby-2.1.0@rails4/gems/sane-0.25.6/lib/sane/irb_startup_options.rb:4: warning: encountered \r in middle of line, treated as a mere space

building local copy/version of google sparse/dense hash library sh configure --prefix=/Users/accy/dev/google_hash/ext/local_installed

checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... ./install-sh -c -d checking for gawk... no checking for mawk... no checking for nawk... no checking for awk... awk checking whether make sets $(MAKE)... yes checking for g++... g++ checking whether the C++ compiler works... yes checking for C++ compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking for style of include used by make... GNU checking dependency style of g++... gcc3 checking for gcc... gcc checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking how to run the C preprocessor... gcc -E checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for ANSI C header files... yes checking for memcpy... yes checking for memmove... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for uint16_t... yes checking for u_int16_t... yes checking for __uint16... no checking for long long... yes checking sys/resource.h usability... yes checking sys/resource.h presence... yes checking for sys/resource.h... yes checking for unistd.h... (cached) yes checking sys/time.h usability... yes checking sys/time.h presence... yes checking for sys/time.h... yes checking sys/utsname.h usability... yes checking sys/utsname.h presence... yes checking for sys/utsname.h... yes checking how to run the C++ preprocessor... g++ -E checking google/malloc_extension.h usability... no checking google/malloc_extension.h presence... no checking for google/malloc_extension.h... no checking whether the compiler implements namespaces... yes checking the location of hash_map... checking how to include hash_fun directly... configure: creating ./config.status config.status: creating Makefile config.status: creating src/config.h config.status: executing depfiles commands [ -d src/sparsehash/internal ] || mkdir -p src/sparsehash/internal echo "/

_" > src/sparsehash/internal/sparsehash_config echo " * NOTE: This file is for internal use only." >> src/sparsehash/internal/_sparsehash_config echo " * Do not use these #defines in your own program!" >> src/sparsehash/internal/_sparsehash_config echo " /" >> src/sparsehash/internal/_sparsehash_config awk '{prevline=currline; currline=$0;} \ /^#/ {in_second_file = 1;} \ !in_second_file {if (currline !~ /^ $/) {inc[currline]=0}}; \ in_second_file { for (i in inc) { \ if (index(currline, i) != 0) { \ print "\n"prevline"\n"currline; \ delete inc[i]; \ } \ } }' \ ./src/config.h.include ./src/config.h \ >> src/sparsehash/internal/_sparsehash_config mv -f src/sparsehash/internal/_sparsehash_config src/sparsehash/internal/sparseconfig.h /Applications/Xcode.app/Contents/Developer/usr/bin/make all-am g++ -DHAVE_CONFIG_H -I. -I./src -I./src -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -MT template_util_unittest.o -MD -MP -MF .deps/template_util_unittest.Tpo -c -o template_util_unittest.o test -f 'src/template_util_unittest.cc' || echo './'src/template_util_unittest.cc mv -f .deps/template_util_unittest.Tpo .deps/template_util_unittest.Po g++ -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -o template_util_unittest template_util_unittest.o g++ -DHAVE_CONFIG_H -I. -I./src -I./src -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -MT type_traits_unittest.o -MD -MP -MF .deps/type_traits_unittest.Tpo -c -o type_traits_unittest.o test -f 'src/type_traits_unittest.cc' || echo './'src/type_traits_unittest.cc src/type_traitsunittest.cc:88:7: warning: private field 'n' is not used [-Wunused-private-field] int n; ^ src/type_traitsunittest.cc:98:7: warning: private field 'n' is not used [-Wunused-private-field] int n_; ^ src/type_traitsunittest.cc:112:7: warning: private field 'n' is not used [-Wunused-private-field] int n_; ^ src/type_traitsunittest.cc:138:7: warning: private field 'n' is not used [-Wunused-private-field] int n_; ^ 4 warnings generated. mv -f .deps/type_traits_unittest.Tpo .deps/type_traits_unittest.Po g++ -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -o type_traits_unittest type_traits_unittest.o g++ -DHAVE_CONFIG_H -I. -I./src -I./src -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -MT libc_allocator_with_realloc_test.o -MD -MP -MF .deps/libc_allocator_with_realloc_test.Tpo -c -o libc_allocator_with_realloc_test.o test -f 'src/libc_allocator_with_realloc_test.cc' || echo './'src/libc_allocator_with_realloc_test.cc mv -f .deps/libc_allocator_with_realloc_test.Tpo .deps/libc_allocator_with_realloc_test.Po g++ -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -o libc_allocator_with_realloc_test libc_allocator_with_realloc_test.o g++ -DHAVE_CONFIG_H -I. -I./src -I./src -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -MT sparsetable_unittest.o -MD -MP -MF .deps/sparsetable_unittest.Tpo -c -o sparsetable_unittest.o test -f 'src/sparsetable_unittest.cc' || echo './'src/sparsetable_unittest.cc mv -f .deps/sparsetable_unittest.Tpo .deps/sparsetable_unittest.Po g++ -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -o sparsetable_unittest sparsetable_unittest.o g++ -DHAVE_CONFIG_H -I. -I./src -I./src -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -MT hashtable_test.o -MD -MP -MF .deps/hashtable_test.Tpo -c -o hashtable_test.o test -f 'src/hashtable_test.cc' || echo './'src/hashtable_test.cc In file included from src/hashtable_test.cc:63: ./src/hash_test_interface.h:436:50: warning: unused parameter 'k' [-Wunused-parameter] void set_empty_key(const typename p::key_type& k) { } ^ ./src/hash_test_interface.h:543:50: warning: unused parameter 'k' [-Wunused-parameter] void set_empty_key(const typename p::key_type& k) { } ^ ./src/hash_test_interface.h:659:50: warning: unused parameter 'k' [-Wunused-parameter] void set_empty_key(const typename p::key_type& k) { } ^ src/hashtable_test.cc:520:1: warning: unused variable 'HashtableCharStarTest_numtypes' [-Wunused-const-variable] TYPED_TEST_CASE_6(HashtableCharStarTest, CharStarHashtables); ^ ./src/testutil.h:106:20: note: expanded from macro 'TYPED_TEST_CASE_6' static const int classname##_numtypes = 6; \ ^:66:1: note: expanded from here HashtableCharStarTest_numtypes ^ 4 warnings generated. mv -f .deps/hashtable_test.Tpo .deps/hashtable_test.Po g++ -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -o hashtable_test hashtable_test.o g++ -DHAVE_CONFIG_H -I. -I./src -I./src -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -MT simple_test.o -MD -MP -MF .deps/simple_test.Tpo -c -o simple_test.o test -f 'src/simple_test.cc' || echo './'src/simple_test.cc mv -f .deps/simple_test.Tpo .deps/simple_test.Po g++ -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -o simple_test simple_test.o g++ -DHAVE_CONFIG_H -I. -I./src -I./src -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -MT simple_compat_test.o -MD -MP -MF .deps/simple_compat_test.Tpo -c -o simple_compat_test.o test -f 'src/simple_compat_test.cc' || echo './'src/simple_compat_test.cc mv -f .deps/simple_compat_test.Tpo .deps/simple_compat_test.Po g++ -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -o simple_compat_test simple_compat_test.o g++ -DHAVE_CONFIG_H -I. -I./src -I./src -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -MT time_hash_map-time_hash_map.o -MD -MP -MF .deps/time_hash_map-time_hash_map.Tpo -c -o time_hash_map-time_hash_map.o test -f 'src/time_hash_map.cc' || echo './'src/time_hash_map.cc mv -f .deps/time_hash_map-time_hash_map.Tpo .deps/time_hash_map-time_hash_map.Po g++ -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -o time_hash_map time_hash_map-time_hash_map.o echo 'prefix=/Users/accy/dev/google_hash/ext/local_installed' > "libsparsehash.pc".tmp echo 'exec_prefix='echo '/Users/accy/dev/google_hash/ext/local_installed' | sed 's@^/Users/accy/dev/google_hash/ext/local_installed@${prefix}@' >> "libsparsehash.pc".tmp echo 'libdir='echo '/Users/accy/dev/google_hash/ext/local_installed/lib' | sed 's@^/Users/accy/dev/google_hash/ext/local_installed@${exec_prefix}@' >> "libsparsehash.pc".tmp echo 'includedir='echo '/Users/accy/dev/google_hash/ext/local_installed/include' | sed 's@^/Users/accy/dev/google_hash/ext/local_installed@${prefix}@' >> "libsparsehash.pc".tmp echo '' >> "libsparsehash.pc".tmp echo 'Name: sparsehash' >> "libsparsehash.pc".tmp echo 'Version: 2.0.2' >> "libsparsehash.pc".tmp grep '^Summary:' ./packages/rpm/rpm.spec | sed s/^Summary:/Description:/ | head -n1 >> "libsparsehash.pc".tmp grep '^URL: ' ./packages/rpm/rpm.spec >> "libsparsehash.pc".tmp echo 'Requires:' >> "libsparsehash.pc".tmp echo 'Libs:' >> "libsparsehash.pc".tmp echo 'Cflags: -I${includedir}' >> "libsparsehash.pc".tmp mv -f "libsparsehash.pc".tmp "libsparsehash.pc" /Applications/Xcode.app/Contents/Developer/usr/bin/make install-am test -z "/Users/accy/dev/google_hash/ext/local_installed/lib" || ./install-sh -c -d "/Users/accy/dev/google_hash/ext/local_installed/lib" test -z "/Users/accy/dev/google_hash/ext/local_installed/share/doc/sparsehash-2.0.2" || ./install-sh -c -d "/Users/accy/dev/google_hash/ext/local_installed/share/doc/sparsehash-2.0.2" /usr/bin/install -c -m 644 AUTHORS COPYING ChangeLog INSTALL NEWS README README_windows.txt TODO doc/dense_hash_map.html doc/dense_hash_set.html doc/sparse_hash_map.html doc/sparse_hash_set.html doc/sparsetable.html doc/implementation.html doc/performance.html doc/index.html doc/designstyle.css '/Users/accy/dev/google_hash/ext/local_installed/share/doc/sparsehash-2.0.2' test -z "/Users/accy/dev/google_hash/ext/local_installed/include/google" || ./install-sh -c -d "/Users/accy/dev/google_hash/ext/local_installed/include/google" /usr/bin/install -c -m 644 src/google/dense_hash_map src/google/dense_hash_set src/google/sparse_hash_map src/google/sparse_hash_set src/google/sparsetable src/google/template_util.h src/google/type_traits.h '/Users/accy/dev/google_hash/ext/local_installed/include/google' test -z "/Users/accy/dev/google_hash/ext/local_installed/include/google/sparsehash" || ./install-sh -c -d "/Users/accy/dev/google_hash/ext/local_installed/include/google/sparsehash" /usr/bin/install -c -m 644 src/google/sparsehash/densehashtable.h src/google/sparsehash/sparsehashtable.h src/google/sparsehash/hashtable-common.h src/google/sparsehash/libc_allocator_with_realloc.h '/Users/accy/dev/google_hash/ext/local_installed/include/google/sparsehash' test -z "/Users/accy/dev/google_hash/ext/local_installed/include/sparsehash/internal" || ./install-sh -c -d "/Users/accy/dev/google_hash/ext/local_installed/include/sparsehash/internal" /usr/bin/install -c -m 644 src/sparsehash/internal/densehashtable.h src/sparsehash/internal/sparsehashtable.h src/sparsehash/internal/hashtable-common.h src/sparsehash/internal/libc_allocator_with_realloc.h '/Users/accy/dev/google_hash/ext/local_installed/include/sparsehash/internal' test -z "/Users/accy/dev/google_hash/ext/local_installed/include/sparsehash/internal" || ./install-sh -c -d "/Users/accy/dev/google_hash/ext/local_installed/include/sparsehash/internal" /usr/bin/install -c -m 644 src/sparsehash/internal/sparseconfig.h '/Users/accy/dev/google_hash/ext/local_installed/include/sparsehash/internal' test -z "/Users/accy/dev/google_hash/ext/local_installed/lib/pkgconfig" || ./install-sh -c -d "/Users/accy/dev/google_hash/ext/local_installed/lib/pkgconfig" /usr/bin/install -c -m 644 libsparsehash.pc '/Users/accy/dev/google_hash/ext/local_installed/lib/pkgconfig' test -z "/Users/accy/dev/google_hash/ext/local_installed/include/sparsehash" || ./install-sh -c -d "/Users/accy/dev/google_hash/ext/local_installed/include/sparsehash" /usr/bin/install -c -m 644 src/sparsehash/dense_hash_map src/sparsehash/dense_hash_set src/sparsehash/sparse_hash_map src/sparsehash/sparse_hash_set src/sparsehash/sparsetable src/sparsehash/template_util.h src/sparsehash/type_traits.h '/Users/accy/dev/google_hash/ext/local_installed/include/sparsehash' extconf.rb:109:in

': Use RbConfig instead of obsolete and deprecated Config. extconf.rb:109:in': Use RbConfig instead of obsolete and deprecated Config. checking for tr1/functional... yes checking for functional... yes checking for tr1/functional... yes creating Makefile accysmbp:ext accy$ make compiling dense_double_to_double.cpp dense_double_todouble.cpp:6:11: fatal error: 'tr1/functional' file not found #include ^ 1 error generated. make: ** [dense_double_to_double.o] Error 1 "

Looks like the sparse hash compilation was successful.

— Reply to this email directly or view it on GitHubhttps://github.com/rdp/google_hash/issues/24#issuecomment-43821420 .

accy commented 10 years ago

Well, the problem obviously was the tr1/functional. I played a while with it and changing the extconf.rb to check for have_header('tr1/functional') only if have_header('functional') test was negative solved the problem for me (plus adding $CPPFLAGS += " -std=c++11 -stdlib=libc++ " for llvm purposes). No idea why despite the positive have_header('tr1/functional') test clang has problems including it.

Anyway I am seeing you fixed the issue other way around - I forked your recent solution and it looks the build was successful on osx 10.9. Your recent commit though introduced an issue to the .gemspec (that's why I had to fork and fix it to test if it is build-able on a mac) :

gem specific_install -l https://github.com/rdp/google_hash http installing from https://github.com/rdp/google_hash Cloning into '/var/folders/56/cyb1mn8963dbf7b4r4879x2r0000gn/T/d20140524-72082-5wshfq'... remote: Reusing existing pack: 1067, done. remote: Counting objects: 41, done. remote: Compressing objects: 100% (40/40), done. remote: Total 1108 (delta 15), reused 0 (delta 0) Receiving objects: 100% (1108/1108), 818.91 KiB | 397.00 KiB/s, done. Resolving deltas: 100% (469/469), done. Checking connectivity... done. WARNING: See http://guides.rubygems.org/specification-reference/ for help ERROR: While executing gem ... (Gem::InvalidSpecificationException) ["ext/sparsehash-2.0.2/.deps/hashtable_test.Po", "ext/sparsehash-2.0.2/.deps/libc_allocator_with_realloc_test.Po", "ext/sparsehash-2.0.2/.deps/simple_compat_test.Po", "ext/sparsehash-2.0.2/.deps/simple_test.Po", "ext/sparsehash-2.0.2/.deps/sparsetable_unittest.Po", "ext/sparsehash-2.0.2/.deps/template_util_unittest.Po", "ext/sparsehash-2.0.2/.deps/time_hash_map-time_hash_map.Po", "ext/sparsehash-2.0.2/.deps/type_traits_unittest.Po"] are not files

rdp commented 10 years ago

OK for all in this conversation, 0.8.2 and 0.8.3 should build in mavericks now, I hope, thanks for your patience. -roger-

On Fri, May 23, 2014 at 4:46 PM, accy notifications@github.com wrote:

Well, the problem obviously was the tr1/functional. I played a while with it and changing the extconf.rb to check for have_header('tr1/functional') only if have_header('functional') test was negative solved the problem for me (plus adding $CPPFLAGS += " -std=c++11 -stdlib=libc++ " for llvm purposes). No idea why despite the positive have_header('tr1/functional') test clang has problems including it.

Anyway I am seeing you fixed the issue other way around - I forked your recent solution and it looks the build was successful on osx 10.9. Your recent commit though introduced an issue to the .gemspec (that's why I had to fork and fix it to test if it is build-able on a mac) :

gem specific_install -l https://github.com/rdp/google_hash http installing from https://github.com/rdp/google_hash Cloning into '/var/folders/56/cyb1mn8963dbf7b4r4879x2r0000gn/T/d20140524-72082-5wshfq'...

remote: Reusing existing pack: 1067, done. remote: Counting objects: 41, done. remote: Compressing objects: 100% (40/40), done. remote: Total 1108 (delta 15), reused 0 (delta 0) Receiving objects: 100% (1108/1108), 818.91 KiB | 397.00 KiB/s, done. Resolving deltas: 100% (469/469), done.

Checking connectivity... done. WARNING: See http://guides.rubygems.org/specification-reference/ for help ERROR: While executing gem ... (Gem::InvalidSpecificationException) ["ext/sparsehash-2.0.2/.deps/hashtable_test.Po", "ext/sparsehash-2.0.2/.deps/libc_allocator_with_realloc_test.Po", "ext/sparsehash-2.0.2/.deps/simple_compat_test.Po", "ext/sparsehash-2.0.2/.deps/simple_test.Po", "ext/sparsehash-2.0.2/.deps/sparsetable_unittest.Po", "ext/sparsehash-2.0.2/.deps/template_util_unittest.Po", "ext/sparsehash-2.0.2/.deps/time_hash_map-time_hash_map.Po", "ext/sparsehash-2.0.2/.deps/type_traits_unittest.Po"] are not files

— Reply to this email directly or view it on GitHubhttps://github.com/rdp/google_hash/issues/24#issuecomment-44068004 .

rdp commented 9 years ago

hopefully fixed now [at least builds in 10.10 for me...]