chad3814 / node-hashtable

Native hashtable interface for when V8 objects can't take the heat
MIT License
106 stars 41 forks source link

build fails with the API change in node 0.12.0 #16

Closed chethiya closed 9 years ago

chethiya commented 9 years ago

failed npm install hashtable under node 0.12.0

Changed the node version to 0.10.33 and it worked

> node-gyp configure build

child_process: customFds option is deprecated, use stdio instead.
  CXX(target) Release/obj.target/native/src/native.o
In file included from ../src/native.cpp:3:
In file included from ../src/hashtable.h:13:
../src/v8_value_hasher.h:20:16: error: member reference type 'v8::Persistent<v8::Value>' is not a pointer; maybe you
      meant to use '.'?
        if (key->IsString() || key->IsBoolean() || key->IsDate() || key->IsRegExp() || key->IsStringObject() |...
            ~~~^~
               .
../src/v8_value_hasher.h:20:18: error: no member named 'IsString' in 'v8::Persistent<v8::Value,
      v8::NonCopyablePersistentTraits<v8::Value> >'
        if (key->IsString() || key->IsBoolean() || key->IsDate() || key->IsRegExp() || key->IsStringObject() |...
            ~~~  ^
../src/v8_value_hasher.h:20:35: error: member reference type 'v8::Persistent<v8::Value>' is not a pointer; maybe you
      meant to use '.'?
        if (key->IsString() || key->IsBoolean() || key->IsDate() || key->IsRegExp() || key->IsStringObject() |...
                               ~~~^~
                                  .
../src/v8_value_hasher.h:20:37: error: no member named 'IsBoolean' in 'v8::Persistent<v8::Value,
      v8::NonCopyablePersistentTraits<v8::Value> >'
        if (key->IsString() || key->IsBoolean() || key->IsDate() || key->IsRegExp() || key->IsStringObject() |...
                               ~~~  ^
../src/v8_value_hasher.h:20:55: error: member reference type 'v8::Persistent<v8::Value>' is not a pointer; maybe you
      meant to use '.'?
        if (key->IsString() || key->IsBoolean() || key->IsDate() || key->IsRegExp() || key->IsStringObject() |...
                                                   ~~~^~
                                                      .
../src/v8_value_hasher.h:20:57: error: no member named 'IsDate' in 'v8::Persistent<v8::Value,
      v8::NonCopyablePersistentTraits<v8::Value> >'
        if (key->IsString() || key->IsBoolean() || key->IsDate() || key->IsRegExp() || key->IsStringObject() |...
                                                   ~~~  ^
../src/v8_value_hasher.h:20:72: error: member reference type 'v8::Persistent<v8::Value>' is not a pointer; maybe you
      meant to use '.'?
        if (key->IsString() || key->IsBoolean() || key->IsDate() || key->IsRegExp() || key->IsStringObject() |...
                                                                    ~~~^~
                                                                       .
../src/v8_value_hasher.h:20:74: error: no member named 'IsRegExp' in 'v8::Persistent<v8::Value,
      v8::NonCopyablePersistentTraits<v8::Value> >'
        if (key->IsString() || key->IsBoolean() || key->IsDate() || key->IsRegExp() || key->IsStringObject() |...
                                                                    ~~~  ^
../src/v8_value_hasher.h:20:91: error: member reference type 'v8::Persistent<v8::Value>' is not a pointer; maybe you
      meant to use '.'?
        if (key->IsString() || key->IsBoolean() || key->IsDate() || key->IsRegExp() || key->IsStringObject() |...
                                                                                       ~~~^~
                                                                                          .
../src/v8_value_hasher.h:20:93: error: no member named 'IsStringObject' in 'v8::Persistent<v8::Value,
      v8::NonCopyablePersistentTraits<v8::Value> >'
        if (key->IsString() || key->IsBoolean() || key->IsDate() || key->IsRegExp() || key->IsStringObject() |...
                                                                                       ~~~  ^
../src/v8_value_hasher.h:20:116: error: member reference type 'v8::Persistent<v8::Value>' is not a pointer; maybe you
      meant to use '.'?
  ...|| key->IsBoolean() || key->IsDate() || key->IsRegExp() || key->IsStringObject() || key->IsNumberObject() || k...
                                                                                         ~~~^~
                                                                                            .
../src/v8_value_hasher.h:20:118: error: no member named 'IsNumberObject' in 'v8::Persistent<v8::Value,
      v8::NonCopyablePersistentTraits<v8::Value> >'
  ...|| key->IsBoolean() || key->IsDate() || key->IsRegExp() || key->IsStringObject() || key->IsNumberObject() || k...
                                                                                         ~~~  ^
../src/v8_value_hasher.h:20:141: error: member reference type 'v8::Persistent<v8::Value>' is not a pointer; maybe you
      meant to use '.'?
  ...|| key->IsDate() || key->IsRegExp() || key->IsStringObject() || key->IsNumberObject() || key->IsBooleanObject(...
                                                                                              ~~~^~
                                                                                                 .
../src/v8_value_hasher.h:20:143: error: no member named 'IsBooleanObject' in 'v8::Persistent<v8::Value,
      v8::NonCopyablePersistentTraits<v8::Value> >'
  ...|| key->IsDate() || key->IsRegExp() || key->IsStringObject() || key->IsNumberObject() || key->IsBooleanObject(...
                                                                                              ~~~  ^
../src/v8_value_hasher.h:21:30: error: no member named 'AsciiValue' in 'v8::String'
            s = *v8::String::AsciiValue(key->ToString());
                 ~~~~~~~~~~~~^
../src/v8_value_hasher.h:21:44: error: member reference type 'v8::Persistent<v8::Value>' is not a pointer; maybe you
      meant to use '.'?
            s = *v8::String::AsciiValue(key->ToString());
                                        ~~~^~
                                           .
../src/v8_value_hasher.h:21:46: error: no member named 'ToString' in 'v8::Persistent<v8::Value,
      v8::NonCopyablePersistentTraits<v8::Value> >'
            s = *v8::String::AsciiValue(key->ToString());
                                        ~~~  ^
../src/v8_value_hasher.h:23:60: error: no member named 'GetCurrent' in 'v8::Context'
            v8::Handle<v8::Context> context = v8::Context::GetCurrent();
                                              ~~~~~~~~~~~~~^
../src/v8_value_hasher.h:25:67: error: no member named 'New' in 'v8::String'
            v8::Handle<v8::Object> JSON = global->Get(v8::String::New("JSON"))->ToObject();
                                                      ~~~~~~~~~~~~^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
chad3814 commented 9 years ago

sorry, I somehow missed this issue being posted. I am working on using nan to get this converted so it works in 0.10 and 0.12. I hope to get that out before the end of the week.

chad3814 commented 9 years ago

so "end of the week" was optimistic. I have it working for forked project es6-native-map, but I made the choice to break support for node 0.10. I will back port those changes.