You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Thanks for the great project, I've been using it for a number of years.
I recently ran in to a problem when upgrading to Node.js 20. On running npm i on a dependent project it fails to to install graphene-pk11-2.3.2 due to a handful of node-gyp errors (these appear to be coming from the pkcs11js dependency, so maybe I should raise the query on that project of yours instead?):
npm ERR! /Users/mark/Library/Caches/node-gyp/20.11.0/include/node/v8-maybe.h:123:67: error: expected '(' for function-style cast or type construction
npm ERR! template <class T, std::enable_if_t<!std::is_lvalue_reference_v<T>>* = nullptr>
npm ERR! /Users/mark/Library/Caches/node-gyp/20.11.0/include/node/v8-maybe.h:106:69: error: expected '(' for function-style cast or type construction
npm ERR! template <class U, std::enable_if_t<!std::is_lvalue_reference_v<U>>*>
npm ERR! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
npm ERR! /Users/mark/Library/Caches/node-gyp/20.11.0/include/node/v8-maybe.h:123:43: error: no template named 'is_lvalue_reference_v' in namespace 'std'; did you mean 'is_lvalue_reference'?
npm ERR! template <class T, std::enable_if_t<!std::is_lvalue_reference_v<T>>* = nullptr>
npm ERR! /Users/mark/Library/Caches/node-gyp/20.11.0/include/node/v8-maybe.h:106:45: error: no template named 'is_lvalue_reference_v' in namespace 'std'; did you mean 'is_lvalue_reference'?
npm ERR! template <class U, std::enable_if_t<!std::is_lvalue_reference_v<U>>*>
After a bit of poking around I determined that is_lvalue_reference_v appears to be a C++17 feature which is just a call to is_lvalue_reference and then ::value on the result so I hacked my local cache of v8 headers and everything works as expected i.e. change:
template <class U, std::enable_if_t<!std::is_lvalue_reference_v<U>>*>
to:
template <class U, std::enable_if_t<!std::is_lvalue_reference<U>::value>*>
in /Users/mark/Library/Caches/node-gyp/20.11.0/include/node/v8-maybe.h.
Afraid this isn't my area of expertise, but I'm guessing that you might be able to pass the C++17 flags in to node-gyp to avoid having to make these changes to the v8 headers?
For reference I'm using:
Mac OSX 14.2.1
Node.js 20.11.0 (through Homebrew) [email protected]
Apple clang version 15.0.0 (clang-1500.1.0.2.5)
Thanks
Mark
The text was updated successfully, but these errors were encountered:
Hi,
Thanks for the great project, I've been using it for a number of years.
I recently ran in to a problem when upgrading to Node.js 20. On running
npm i
on a dependent project it fails to to installgraphene-pk11-2.3.2
due to a handful ofnode-gyp
errors (these appear to be coming from thepkcs11js
dependency, so maybe I should raise the query on that project of yours instead?):After a bit of poking around I determined that
is_lvalue_reference_v
appears to be a C++17 feature which is just a call tois_lvalue_reference
and then::value
on the result so I hacked my local cache of v8 headers and everything works as expected i.e. change:to:
and:
to:
in
/Users/mark/Library/Caches/node-gyp/20.11.0/include/node/v8-maybe.h
.Afraid this isn't my area of expertise, but I'm guessing that you might be able to pass the C++17 flags in to
node-gyp
to avoid having to make these changes to the v8 headers?For reference I'm using:
Mac OSX
14.2.1
Node.js
20.11.0
(through Homebrew)[email protected]
Apple clang version 15.0.0 (clang-1500.1.0.2.5)
Thanks
Mark
The text was updated successfully, but these errors were encountered: