embark will not install and throws a ton of errors

mike@pop-os:~$ sudo npm -g install embark
npm WARN deprecated<EMAIL_ADDRESS>This module is no longer maintained, try this instead:
npm WARN deprecated   npm i nyc
npm WARN deprecated Visit https://istanbul.js.org/integrations for other alternatives.
npm WARN deprecated<EMAIL_ADDRESS>ipfs-api has been renamed to ipfs-http-client, please update your package.json to get the latest version.
npm WARN deprecated<EMAIL_ADDRESS>⚠  WARNING ⚠ tar.gz module has been deprecated and your application is vulnerable. Please use tar module instead: https://npmjs.com/tar
npm WARN deprecated<EMAIL_ADDRESS>Use mz or fs-extra^3.0 with Promise Support

<EMAIL_ADDRESS>preinstall /usr/local/lib/node_modules/embark/node_modules/scrypt
node node-scrypt-preinstall.js

Error: Error: Command failed: ./configure
./configure: line 1900: config.log: Permission denied
./configure: line 1910: config.log: Permission denied

<EMAIL_ADDRESS>preinstall /usr/local/lib/node_modules/embark/node_modules/ganache-cli/node_modules/ganache-core/node_modules/scrypt
node node-scrypt-preinstall.js

Error: Error: Command failed: ./configure
./configure: line 1900: config.log: Permission denied
./configure: line 1910: config.log: Permission denied

<EMAIL_ADDRESS>preinstall /usr/local/lib/node_modules/embark/node_modules/extract-opts/node_modules/typechecker
node ./cyclic.js

<EMAIL_ADDRESS>preinstall /usr/local/lib/node_modules/embark/node_modules/extendr/node_modules/typechecker
node ./cyclic.js

/usr/local/bin/embark -> /usr/local/lib/node_modules/embark/bin/embark

<EMAIL_ADDRESS>install /usr/local/lib/node_modules/embark/node_modules/ganache-cli/node_modules/ganache-core/node_modules/keccak
npm run rebuild || echo "Keccak bindings compilation fail. Pure JS implementation will be used."

<EMAIL_ADDRESS>rebuild /usr/local/lib/node_modules/embark/node_modules/ganache-cli/node_modules/ganache-core/node_modules/keccak
node-gyp rebuild

gyp WARN EACCES user "root" does not have permission to access the dev dir "/home/mike/.node-gyp/10.15.2"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/usr/local/lib/node_modules/embark/node_modules/ganache-cli/node_modules/ganache-core/node_modules/keccak/.node-gyp"
gyp WARN install got an error, rolling back install
gyp WARN install got an error, rolling back install
gyp ERR! configure error
gyp ERR! stack Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/embark/node_modules/ganache-cli/node_modules/ganache-core/node_modules/keccak/.node-gyp'
gyp ERR! System Linux 5.0.0-15-generic
gyp ERR! command "/usr/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /usr/local/lib/node_modules/embark/node_modules/ganache-cli/node_modules/ganache-core/node_modules/keccak
gyp ERR! node -v v10.15.2
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>rebuild: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>rebuild script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
Keccak bindings compilation fail. Pure JS implementation will be used.

<EMAIL_ADDRESS>install /usr/local/lib/node_modules/embark/node_modules/ganache-cli/node_modules/ganache-core/node_modules/scrypt
node-gyp rebuild

gyp WARN EACCES user "root" does not have permission to access the dev dir "/home/mike/.node-gyp/10.15.2"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/usr/local/lib/node_modules/embark/node_modules/ganache-cli/node_modules/ganache-core/node_modules/scrypt/.node-gyp"
gyp WARN install got an error, rolling back install
gyp WARN install got an error, rolling back install
gyp ERR! configure error
gyp ERR! stack Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/embark/node_modules/ganache-cli/node_modules/ganache-core/node_modules/scrypt/.node-gyp'
gyp ERR! System Linux 5.0.0-15-generic
gyp ERR! command "/usr/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /usr/local/lib/node_modules/embark/node_modules/ganache-cli/node_modules/ganache-core/node_modules/scrypt
gyp ERR! node -v v10.15.2
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok

<EMAIL_ADDRESS>install /usr/local/lib/node_modules/embark/node_modules/ganache-cli/node_modules/ganache-core/node_modules/secp256k1
npm run rebuild || echo "Secp256k1 bindings compilation fail. Pure JS implementation will be used."

<EMAIL_ADDRESS>rebuild /usr/local/lib/node_modules/embark/node_modules/ganache-cli/node_modules/ganache-core/node_modules/secp256k1
node-gyp rebuild

gyp WARN EACCES user "root" does not have permission to access the dev dir "/home/mike/.node-gyp/10.15.2"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/usr/local/lib/node_modules/embark/node_modules/ganache-cli/node_modules/ganache-core/node_modules/secp256k1/.node-gyp"
gyp WARN install got an error, rolling back install
gyp WARN install got an error, rolling back install
gyp ERR! configure error
gyp ERR! stack Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/embark/node_modules/ganache-cli/node_modules/ganache-core/node_modules/secp256k1/.node-gyp'
gyp ERR! System Linux 5.0.0-15-generic
gyp ERR! command "/usr/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /usr/local/lib/node_modules/embark/node_modules/ganache-cli/node_modules/ganache-core/node_modules/secp256k1
gyp ERR! node -v v10.15.2
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>rebuild: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>rebuild script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
Secp256k1 bindings compilation fail. Pure JS implementation will be used.

<EMAIL_ADDRESS>install /usr/local/lib/node_modules/embark/node_modules/ganache-cli/node_modules/ganache-core/node_modules/sha3
node-gyp rebuild

gyp WARN EACCES user "root" does not have permission to access the dev dir "/home/mike/.node-gyp/10.15.2"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/usr/local/lib/node_modules/embark/node_modules/ganache-cli/node_modules/ganache-core/node_modules/sha3/.node-gyp"
gyp WARN install got an error, rolling back install
gyp WARN install got an error, rolling back install
gyp ERR! configure error
gyp ERR! stack Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/embark/node_modules/ganache-cli/node_modules/ganache-core/node_modules/sha3/.node-gyp'
gyp ERR! System Linux 5.0.0-15-generic
gyp ERR! command "/usr/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /usr/local/lib/node_modules/embark/node_modules/ganache-cli/node_modules/ganache-core/node_modules/sha3
gyp ERR! node -v v10.15.2
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
npm WARN<EMAIL_ADDRESS>requires a peer of yo-yoify@latest but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed.  Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR!     /home/mike/.npm/_logs/2019-05-30T03_11_39_089Z-debug.log
mike@pop-os:~$ embark
embark: command not found
mike@pop-os:~$

2019-05-30T03_24_49_139Z-debug.log

Hi @mikezentz , I see you tried to install Embark with sudo, but it is never recommended to install npm packages using sudo, because, like in your case, it causes permission issues.
Let's start by seeing if you have the right dependencies.
The most annoying dependency to install is  scrypt, which needs node-gyp. Make sure you have the prerequisites listed here for it: https://embark.status.im/docs/troubleshooting.html#node-gyp-problems
Also, we highly recommend installign Node using NVM (https://github.com/nvm-sh/nvm)
It is a simple Node installer that let's you switch Node version and also makes sure you no longer have permission issues.
Hopefully, this let's you install Embark correctly.

I did a fresh default install of Ubuntu 19. Installed nvm, installed npm, installed node-gyp.  And here is the output when installing embark.
COPY Release/scrypt_lib.a
CXX(target) Release/obj.target/scrypt/src/node-boilerplate/scrypt_common.o
In file included from ../../nan/nan_converters.h:67,
from ../../nan/nan.h:202,
from ../src/node-boilerplate/scrypt_common.cc:28:
../../nan/nan_converters_43_inl.h: In static member function ‘static Nan::imp::ToFactoryBasev8::Boolean::return_t Nan::imp::ToFactoryv8::Boolean::convert(v8::Localv8::Value)’:
../../nan/nan_converters_43_inl.h:18:51: warning: ‘v8::MaybeLocalv8::Boolean v8::Value::ToBoolean(v8::Localv8::Context) const’ is deprecated: ToBoolean can never throw. Use Local version. [-Wdeprecated-declarations]
val->To ## TYPE(isolate->GetCurrentContext())
^
../../nan/nan_converters_43_inl.h:22:1: note: in expansion of macro ‘X’
X(Boolean)
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/v8-internal.h:14,
from /home/mike/.node-gyp/12.3.1/include/node/v8.h:25,
from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../../nan/nan.h:51,
from ../src/node-boilerplate/scrypt_common.cc:28:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:2524:63: note: declared here
V8_WARN_UNUSED_RESULT MaybeLocal ToBoolean(
^~~~~~~~~
/home/mike/.node-gyp/12.3.1/include/node/v8config.h:322:3: note: in definition of macro ‘V8_DEPRECATE_SOON’
declarator attribute((deprecated(message)))
^~~~~~~~~~
In file included from ../../nan/nan_converters.h:67,
from ../../nan/nan.h:202,
from ../src/node-boilerplate/scrypt_common.cc:28:
../../nan/nan_converters_43_inl.h: In static member function ‘static Nan::imp::ValueFactoryBase::return_t Nan::imp::ToFactory::convert(v8::Localv8::Value)’:
../../nan/nan_converters_43_inl.h:37:57: warning: ‘v8::Maybe v8::Value::BooleanValue(v8::Localv8::Context) const’ is deprecated: BooleanValue can never throw. Use Isolate version. [-Wdeprecated-declarations]
return val->NAME ## Value(isolate->GetCurrentContext());
^
../../nan/nan_converters_43_inl.h:40:1: note: in expansion of macro ‘X’
X(bool, Boolean)
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/v8-internal.h:14,
from /home/mike/.node-gyp/12.3.1/include/node/v8.h:25,
from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../../nan/nan.h:51,
from ../src/node-boilerplate/scrypt_common.cc:28:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:2562:51: note: declared here
V8_WARN_UNUSED_RESULT Maybe BooleanValue(
^~~~~~~~~~~~
/home/mike/.node-gyp/12.3.1/include/node/v8config.h:307:3: note: in definition of macro ‘V8_DEPRECATED’
declarator attribute((deprecated(message)))
^~~~~~~~~~
In file included from ../../nan/nan_new.h:189,
from ../../nan/nan.h:203,
from ../src/node-boilerplate/scrypt_common.cc:28:
../../nan/nan_implementation_12_inl.h: In static member function ‘static Nan::imp::FactoryBasev8::Function::return_t Nan::imp::Factoryv8::Function::New(Nan::FunctionCallback, v8::Localv8::Value)’:
../../nan/nan_implementation_12_inl.h:105:32: error: no matching function for call to ‘v8::Function::New(v8::Isolate*&, void (&)(const v8::FunctionCallbackInfov8::Value&), v8::Localv8::Object&)’
, obj));
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../../nan/nan.h:51,
from ../src/node-boilerplate/scrypt_common.cc:28:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:4125:31: note: candidate: ‘static v8::MaybeLocalv8::Function v8::Function::New(v8::Localv8::Context, v8::FunctionCallback, v8::Localv8::Value, int, v8::ConstructorBehavior, v8::SideEffectType)’
static MaybeLocal New(
^~~
/home/mike/.node-gyp/12.3.1/include/node/v8.h:4125:31: note:   no known conversion for argument 1 from ‘v8::Isolate*’ to ‘v8::Localv8::Context’
In file included from ../../nan/nan_new.h:189,
from ../../nan/nan.h:203,
from ../src/node-boilerplate/scrypt_common.cc:28:
../../nan/nan_implementation_12_inl.h: In static member function ‘static Nan::imp::FactoryBasev8::StringObject::return_t Nan::imp::Factoryv8::StringObject::New(v8::Localv8::String)’:
../../nan/nan_implementation_12_inl.h:337:37: error: no matching function for call to ‘v8::StringObject::New(v8::Localv8::String&)’
return v8::StringObject::New(value).Asv8::StringObject();
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../../nan/nan.h:51,
from ../src/node-boilerplate/scrypt_common.cc:28:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:5380:23: note: candidate: ‘static v8::Localv8::Value v8::StringObject::New(v8::Isolate*, v8::Localv8::String)’
static Local New(Isolate* isolate, Local value);
^~~
/home/mike/.node-gyp/12.3.1/include/node/v8.h:5380:23: note:   candidate expects 2 arguments, 1 provided
In file included from ../../nan/nan_new.h:189,
from ../../nan/nan.h:203,
from ../src/node-boilerplate/scrypt_common.cc:28:
../../nan/nan_implementation_12_inl.h:337:58: error: expected primary-expression before ‘>’ token
return v8::StringObject::New(value).Asv8::StringObject();
^
../../nan/nan_implementation_12_inl.h:337:60: error: expected primary-expression before ‘)’ token
return v8::StringObject::New(value).Asv8::StringObject();
^
In file included from ../src/node-boilerplate/scrypt_common.cc:28:
../../nan/nan.h: In constructor ‘Nan::Utf8String::Utf8String(v8::Localv8::Value)’:
../../nan/nan.h:1034:53: error: no matching function for call to ‘v8::Value::ToString()’
v8::Localv8::String string = from->ToString();
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../../nan/nan.h:51,
from ../src/node-boilerplate/scrypt_common.cc:28:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:2528:44: note: candidate: ‘v8::MaybeLocalv8::String v8::Value::ToString(v8::Localv8::Context) const’
V8_WARN_UNUSED_RESULT MaybeLocal ToString(
^~~~~~~~
/home/mike/.node-gyp/12.3.1/include/node/v8.h:2528:44: note:   candidate expects 1 argument, 0 provided
In file included from /home/mike/.node-gyp/12.3.1/include/node/v8-internal.h:14,
from /home/mike/.node-gyp/12.3.1/include/node/v8.h:25,
from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../../nan/nan.h:51,
from ../src/node-boilerplate/scrypt_common.cc:28:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:2544:35: note: candidate: ‘v8::Localv8::String v8::Value::ToString(v8::Isolate*) const’
Local ToString(Isolate* isolate) const);
^~~~~~~~
/home/mike/.node-gyp/12.3.1/include/node/v8config.h:322:3: note: in definition of macro ‘V8_DEPRECATE_SOON’
declarator attribute((deprecated(message)))
^~~~~~~~~~
/home/mike/.node-gyp/12.3.1/include/node/v8.h:2544:35: note:   candidate expects 1 argument, 0 provided
Local ToString(Isolate* isolate) const);
^~~~~~~~
/home/mike/.node-gyp/12.3.1/include/node/v8config.h:322:3: note: in definition of macro ‘V8_DEPRECATE_SOON’
declarator attribute((deprecated(message)))
^~~~~~~~~~
In file included from ../src/node-boilerplate/scrypt_common.cc:28:
../../nan/nan.h:1044:74: error: no matching function for call to ‘v8::String::WriteUtf8(char*&, int, int, const int&)’
length_ = string->WriteUtf8(str_, static_cast(len), 0, flags);
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../../nan/nan.h:51,
from ../src/node-boilerplate/scrypt_common.cc:28:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:2738:7: note: candidate: ‘int v8::String::WriteUtf8(v8::Isolate*, char*, int, int*, int) const’
int WriteUtf8(Isolate* isolate, char* buffer, int length = -1,
^~~~~~~~~
/home/mike/.node-gyp/12.3.1/include/node/v8.h:2738:7: note:   no known conversion for argument 1 from ‘char*’ to ‘v8::Isolate*’
In file included from ../src/node-boilerplate/scrypt_common.cc:28:
../../nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(const char*, const v8::Localv8::Value&)’:
../../nan/nan.h:1818:64: warning: ‘bool v8::Object::Set(v8::Localv8::Value, v8::Localv8::Value)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
New(persistentHandle)->Set(New(key).ToLocalChecked(), value);
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/v8-internal.h:14,
from /home/mike/.node-gyp/12.3.1/include/node/v8.h:25,
from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../../nan/nan.h:51,
from ../src/node-boilerplate/scrypt_common.cc:28:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:3359:26: note: declared here
bool Set(Local key, Local value));
^~~
/home/mike/.node-gyp/12.3.1/include/node/v8config.h:322:3: note: in definition of macro ‘V8_DEPRECATE_SOON’
declarator attribute((deprecated(message)))
^~~~~~~~~~
In file included from ../src/node-boilerplate/scrypt_common.cc:28:
../../nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(const v8::Localv8::String&, const v8::Localv8::Value&)’:
../../nan/nan.h:1824:42: warning: ‘bool v8::Object::Set(v8::Localv8::Value, v8::Localv8::Value)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
New(persistentHandle)->Set(key, value);
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/v8-internal.h:14,
from /home/mike/.node-gyp/12.3.1/include/node/v8.h:25,
from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../../nan/nan.h:51,
from ../src/node-boilerplate/scrypt_common.cc:28:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:3359:26: note: declared here
bool Set(Local key, Local value));
^~~
/home/mike/.node-gyp/12.3.1/include/node/v8config.h:322:3: note: in definition of macro ‘V8_DEPRECATE_SOON’
declarator attribute((deprecated(message)))
^~~~~~~~~~
In file included from ../src/node-boilerplate/scrypt_common.cc:28:
../../nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(uint32_t, const v8::Localv8::Value&)’:
../../nan/nan.h:1830:44: warning: ‘bool v8::Object::Set(uint32_t, v8::Localv8::Value)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
New(persistentHandle)->Set(index, value);
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/v8-internal.h:14,
from /home/mike/.node-gyp/12.3.1/include/node/v8.h:25,
from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../../nan/nan.h:51,
from ../src/node-boilerplate/scrypt_common.cc:28:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:3368:26: note: declared here
bool Set(uint32_t index, Local value));
^~~
/home/mike/.node-gyp/12.3.1/include/node/v8config.h:322:3: note: in definition of macro ‘V8_DEPRECATE_SOON’
declarator attribute((deprecated(message)))
^~~~~~~~~~
In file included from ../src/node-boilerplate/scrypt_common.cc:28:
../../nan/nan.h: In member function ‘v8::Localv8::Value Nan::AsyncWorker::GetFromPersistent(const char*) const’:
../../nan/nan.h:1836:61: warning: ‘v8::Localv8::Value v8::Object::Get(v8::Localv8::Value)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
New(persistentHandle)->Get(New(key).ToLocalChecked()));
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/v8-internal.h:14,
from /home/mike/.node-gyp/12.3.1/include/node/v8.h:25,
from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../../nan/nan.h:51,
from ../src/node-boilerplate/scrypt_common.cc:28:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:3412:55: note: declared here
V8_DEPRECATE_SOON("Use maybe version", Local Get(Local key));
^~~
/home/mike/.node-gyp/12.3.1/include/node/v8config.h:322:3: note: in definition of macro ‘V8_DEPRECATE_SOON’
declarator attribute((deprecated(message)))
^~~~~~~~~~
In file included from ../src/node-boilerplate/scrypt_common.cc:28:
../../nan/nan.h: In member function ‘v8::Localv8::Value Nan::AsyncWorker::GetFromPersistent(const v8::Localv8::String&) const’:
../../nan/nan.h:1842:55: warning: ‘v8::Localv8::Value v8::Object::Get(v8::Localv8::Value)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
return scope.Escape(New(persistentHandle)->Get(key));
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/v8-internal.h:14,
from /home/mike/.node-gyp/12.3.1/include/node/v8.h:25,
from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../../nan/nan.h:51,
from ../src/node-boilerplate/scrypt_common.cc:28:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:3412:55: note: declared here
V8_DEPRECATE_SOON("Use maybe version", Local Get(Local key));
^~~
/home/mike/.node-gyp/12.3.1/include/node/v8config.h:322:3: note: in definition of macro ‘V8_DEPRECATE_SOON’
declarator attribute((deprecated(message)))
^~~~~~~~~~
In file included from ../src/node-boilerplate/scrypt_common.cc:28:
../../nan/nan.h: In member function ‘v8::Localv8::Value Nan::AsyncWorker::GetFromPersistent(uint32_t) const’:
../../nan/nan.h:1847:57: warning: ‘v8::Localv8::Value v8::Object::Get(uint32_t)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
return scope.Escape(New(persistentHandle)->Get(index));
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/v8-internal.h:14,
from /home/mike/.node-gyp/12.3.1/include/node/v8.h:25,
from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../../nan/nan.h:51,
from ../src/node-boilerplate/scrypt_common.cc:28:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:3416:55: note: declared here
V8_DEPRECATE_SOON("Use maybe version", Local Get(uint32_t index));
^~~
/home/mike/.node-gyp/12.3.1/include/node/v8config.h:322:3: note: in definition of macro ‘V8_DEPRECATE_SOON’
declarator attribute((deprecated(message)))
^~~~~~~~~~
In file included from ../src/node-boilerplate/scrypt_common.cc:28:
../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
../../nan/nan.h:2167:62: warning: cast between incompatible function types from ‘void ()(uv_work_t)’ {aka ‘void ()(uv_work_s)’} to ‘uv_after_work_cb’ {aka ‘void ()(uv_work_s, int)’} [-Wcast-function-type]
, reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
^
In file included from /usr/include/c++/8/cassert:44,
from /home/mike/.node-gyp/12.3.1/include/node/node_object_wrap.h:26,
from ../../nan/nan.h:53,
from ../src/node-boilerplate/scrypt_common.cc:28:
../../nan/nan_object_wrap.h: In destructor ‘virtual Nan::ObjectWrap::~ObjectWrap()’:
../../nan/nan_object_wrap.h:24:25: error: ‘class Nan::Persistentv8::Object’ has no member named ‘IsNearDeath’
assert(persistent().IsNearDeath());
^~~~~~~~~~~
In file included from ../../nan/nan.h:2657,
from ../src/node-boilerplate/scrypt_common.cc:28:
../../nan/nan_object_wrap.h: In member function ‘void Nan::ObjectWrap::MakeWeak()’:
../../nan/nan_object_wrap.h:67:34: warning: ‘void v8::PersistentBase::MarkIndependent() [with T = v8::Object]’ is deprecated: Weak objects are always considered independent. Use TracedGlobal when trying to use EmbedderHeapTracer. Use a strong handle when trying to keep an object alive. [-Wdeprecated-declarations]
persistent().MarkIndependent();
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/v8-internal.h:14,
from /home/mike/.node-gyp/12.3.1/include/node/v8.h:25,
from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../../nan/nan.h:51,
from ../src/node-boilerplate/scrypt_common.cc:28:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:567:22: note: declared here
V8_INLINE void MarkIndependent());
^~~~~~~~~~~~~~~
/home/mike/.node-gyp/12.3.1/include/node/v8config.h:307:3: note: in definition of macro ‘V8_DEPRECATED’
declarator attribute((deprecated(message)))
^~~~~~~~~~
In file included from /usr/include/c++/8/cassert:44,
from /home/mike/.node-gyp/12.3.1/include/node/node_object_wrap.h:26,
from ../../nan/nan.h:53,
from ../src/node-boilerplate/scrypt_common.cc:28:
../../nan/nan_object_wrap.h: In static member function ‘static void Nan::ObjectWrap::WeakCallback(const v8::WeakCallbackInfoNan::ObjectWrap&)’:
../../nan/nan_object_wrap.h:124:26: error: ‘class Nan::Persistentv8::Object’ has no member named ‘IsNearDeath’
assert(wrap->handle_.IsNearDeath());
^~~~~~~~~~~
In file included from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../../nan/nan.h:51,
from ../src/node-boilerplate/scrypt_common.cc:28:
/home/mike/.node-gyp/12.3.1/include/node/v8.h: In instantiation of ‘void v8::PersistentBase::SetWeak(P*, typename v8::WeakCallbackInfo::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo::Callback = void ()(const v8::WeakCallbackInfonode::ObjectWrap&)]’:
/home/mike/.node-gyp/12.3.1/include/node/node_object_wrap.h:84:78:   required from here
/home/mike/.node-gyp/12.3.1/include/node/v8.h:9817:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfonode::ObjectWrap::Callback’ {aka ‘void ()(const v8::WeakCallbackInfonode::ObjectWrap&)’} to ‘Callback’ {aka ‘void ()(const v8::WeakCallbackInfo&)’} [-Wcast-function-type]
reinterpret_cast(callback), type);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/mike/.node-gyp/12.3.1/include/node/v8.h: In instantiation of ‘void v8::PersistentBase::SetWeak(P, typename v8::WeakCallbackInfo::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo::Callback = void ()(const v8::WeakCallbackInfoNan::ObjectWrap&)]’:
../../nan/nan_object_wrap.h:66:61:   required from here
/home/mike/.node-gyp/12.3.1/include/node/v8.h:9817:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfoNan::ObjectWrap::Callback’ {aka ‘void ()(const v8::WeakCallbackInfoNan::ObjectWrap&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo&)’} [-Wcast-function-type]
make: *** [scrypt.target.mk:127: Release/obj.target/scrypt/src/node-boilerplate/scrypt_common.o] Error 1
make: Leaving directory '/home/mike/.nvm/versions/node/v12.3.1/lib/node_modules/embark/node_modules/ganache-cli/node_modules/ganache-core/node_modules/scrypt/build'
gyp ERR! build error
gyp ERR! stack Error: make failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/home/mike/.nvm/versions/node/v12.3.1/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:262:23)
gyp ERR! stack     at ChildProcess.emit (events.js:200:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
gyp ERR! System Linux 5.0.0-15-generic
gyp ERR! command "/home/mike/.nvm/versions/node/v12.3.1/bin/node" "/home/mike/.nvm/versions/node/v12.3.1/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/mike/.nvm/versions/node/v12.3.1/lib/node_modules/embark/node_modules/ganache-cli/node_modules/ganache-core/node_modules/scrypt
gyp ERR! node -v v12.3.1
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok

<EMAIL_ADDRESS>install /home/mike/.nvm/versions/node/v12.3.1/lib/node_modules/embark/node_modules/ganache-cli/node_modules/ganache-core/node_modules/secp256k1
npm run rebuild || echo "Secp256k1 bindings compilation fail. Pure JS implementation will be used."

<EMAIL_ADDRESS>rebuild /home/mike/.nvm/versions/node/v12.3.1/lib/node_modules/embark/node_modules/ganache-cli/node_modules/ganache-core/node_modules/secp256k1
node-gyp rebuild

make: Entering directory '/home/mike/.nvm/versions/node/v12.3.1/lib/node_modules/embark/node_modules/ganache-cli/node_modules/ganache-core/node_modules/secp256k1/build'
CXX(target) Release/obj.target/secp256k1/src/addon.o
In file included from ../../nan/nan_converters.h:67,
from ../../nan/nan.h:202,
from ../src/addon.cc:2:
../../nan/nan_converters_43_inl.h: In static member function ‘static Nan::imp::ToFactoryBasev8::Boolean::return_t Nan::imp::ToFactoryv8::Boolean::convert(v8::Localv8::Value)’:
../../nan/nan_converters_43_inl.h:18:51: warning: ‘v8::MaybeLocalv8::Boolean v8::Value::ToBoolean(v8::Localv8::Context) const’ is deprecated: ToBoolean can never throw. Use Local version. [-Wdeprecated-declarations]
val->To ## TYPE(isolate->GetCurrentContext())
^
../../nan/nan_converters_43_inl.h:22:1: note: in expansion of macro ‘X’
X(Boolean)
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/v8-internal.h:14,
from /home/mike/.node-gyp/12.3.1/include/node/v8.h:25,
from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../src/addon.cc:1:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:2524:63: note: declared here
V8_WARN_UNUSED_RESULT MaybeLocal ToBoolean(
^~~~~~~~~
/home/mike/.node-gyp/12.3.1/include/node/v8config.h:322:3: note: in definition of macro ‘V8_DEPRECATE_SOON’
declarator attribute((deprecated(message)))
^~~~~~~~~~
In file included from ../../nan/nan_converters.h:67,
from ../../nan/nan.h:202,
from ../src/addon.cc:2:
../../nan/nan_converters_43_inl.h: In static member function ‘static Nan::imp::ValueFactoryBase::return_t Nan::imp::ToFactory::convert(v8::Localv8::Value)’:
../../nan/nan_converters_43_inl.h:37:57: warning: ‘v8::Maybe v8::Value::BooleanValue(v8::Localv8::Context) const’ is deprecated: BooleanValue can never throw. Use Isolate version. [-Wdeprecated-declarations]
return val->NAME ## Value(isolate->GetCurrentContext());
^
../../nan/nan_converters_43_inl.h:40:1: note: in expansion of macro ‘X’
X(bool, Boolean)
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/v8-internal.h:14,
from /home/mike/.node-gyp/12.3.1/include/node/v8.h:25,
from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../src/addon.cc:1:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:2562:51: note: declared here
V8_WARN_UNUSED_RESULT Maybe BooleanValue(
^~~~~~~~~~~~
/home/mike/.node-gyp/12.3.1/include/node/v8config.h:307:3: note: in definition of macro ‘V8_DEPRECATED’
declarator attribute((deprecated(message)))
^~~~~~~~~~
In file included from ../../nan/nan_new.h:189,
from ../../nan/nan.h:203,
from ../src/addon.cc:2:
../../nan/nan_implementation_12_inl.h: In static member function ‘static Nan::imp::FactoryBasev8::Function::return_t Nan::imp::Factoryv8::Function::New(Nan::FunctionCallback, v8::Localv8::Value)’:
../../nan/nan_implementation_12_inl.h:105:32: error: no matching function for call to ‘v8::Function::New(v8::Isolate*&, void (&)(const v8::FunctionCallbackInfov8::Value&), v8::Localv8::Object&)’
, obj));
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../src/addon.cc:1:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:4125:31: note: candidate: ‘static v8::MaybeLocalv8::Function v8::Function::New(v8::Localv8::Context, v8::FunctionCallback, v8::Localv8::Value, int, v8::ConstructorBehavior, v8::SideEffectType)’
static MaybeLocal New(
^~~
/home/mike/.node-gyp/12.3.1/include/node/v8.h:4125:31: note:   no known conversion for argument 1 from ‘v8::Isolate*’ to ‘v8::Localv8::Context’
In file included from ../../nan/nan_new.h:189,
from ../../nan/nan.h:203,
from ../src/addon.cc:2:
../../nan/nan_implementation_12_inl.h: In static member function ‘static Nan::imp::FactoryBasev8::StringObject::return_t Nan::imp::Factoryv8::StringObject::New(v8::Localv8::String)’:
../../nan/nan_implementation_12_inl.h:337:37: error: no matching function for call to ‘v8::StringObject::New(v8::Localv8::String&)’
return v8::StringObject::New(value).Asv8::StringObject();
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../src/addon.cc:1:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:5380:23: note: candidate: ‘static v8::Localv8::Value v8::StringObject::New(v8::Isolate*, v8::Localv8::String)’
static Local New(Isolate* isolate, Local value);
^~~
/home/mike/.node-gyp/12.3.1/include/node/v8.h:5380:23: note:   candidate expects 2 arguments, 1 provided
In file included from ../../nan/nan_new.h:189,
from ../../nan/nan.h:203,
from ../src/addon.cc:2:
../../nan/nan_implementation_12_inl.h:337:58: error: expected primary-expression before ‘>’ token
return v8::StringObject::New(value).Asv8::StringObject();
^
../../nan/nan_implementation_12_inl.h:337:60: error: expected primary-expression before ‘)’ token
return v8::StringObject::New(value).Asv8::StringObject();
^
In file included from ../src/addon.cc:2:
../../nan/nan.h: In constructor ‘Nan::Utf8String::Utf8String(v8::Localv8::Value)’:
../../nan/nan.h:1034:53: error: no matching function for call to ‘v8::Value::ToString()’
v8::Localv8::String string = from->ToString();
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../src/addon.cc:1:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:2528:44: note: candidate: ‘v8::MaybeLocalv8::String v8::Value::ToString(v8::Localv8::Context) const’
V8_WARN_UNUSED_RESULT MaybeLocal ToString(
^~~~~~~~
/home/mike/.node-gyp/12.3.1/include/node/v8.h:2528:44: note:   candidate expects 1 argument, 0 provided
In file included from /home/mike/.node-gyp/12.3.1/include/node/v8-internal.h:14,
from /home/mike/.node-gyp/12.3.1/include/node/v8.h:25,
from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../src/addon.cc:1:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:2544:35: note: candidate: ‘v8::Localv8::String v8::Value::ToString(v8::Isolate*) const’
Local ToString(Isolate* isolate) const);
^~~~~~~~
/home/mike/.node-gyp/12.3.1/include/node/v8config.h:322:3: note: in definition of macro ‘V8_DEPRECATE_SOON’
declarator attribute((deprecated(message)))
^~~~~~~~~~
/home/mike/.node-gyp/12.3.1/include/node/v8.h:2544:35: note:   candidate expects 1 argument, 0 provided
Local ToString(Isolate* isolate) const);
^~~~~~~~
/home/mike/.node-gyp/12.3.1/include/node/v8config.h:322:3: note: in definition of macro ‘V8_DEPRECATE_SOON’
declarator attribute((deprecated(message)))
^~~~~~~~~~
In file included from ../src/addon.cc:2:
../../nan/nan.h:1044:74: error: no matching function for call to ‘v8::String::WriteUtf8(char*&, int, int, const int&)’
length_ = string->WriteUtf8(str_, static_cast(len), 0, flags);
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../src/addon.cc:1:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:2738:7: note: candidate: ‘int v8::String::WriteUtf8(v8::Isolate*, char*, int, int*, int) const’
int WriteUtf8(Isolate* isolate, char* buffer, int length = -1,
^~~~~~~~~
/home/mike/.node-gyp/12.3.1/include/node/v8.h:2738:7: note:   no known conversion for argument 1 from ‘char*’ to ‘v8::Isolate*’
In file included from ../src/addon.cc:2:
../../nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(const char*, const v8::Localv8::Value&)’:
../../nan/nan.h:1818:64: warning: ‘bool v8::Object::Set(v8::Localv8::Value, v8::Localv8::Value)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
New(persistentHandle)->Set(New(key).ToLocalChecked(), value);
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/v8-internal.h:14,
from /home/mike/.node-gyp/12.3.1/include/node/v8.h:25,
from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../src/addon.cc:1:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:3359:26: note: declared here
bool Set(Local key, Local value));
^~~
/home/mike/.node-gyp/12.3.1/include/node/v8config.h:322:3: note: in definition of macro ‘V8_DEPRECATE_SOON’
declarator attribute((deprecated(message)))
^~~~~~~~~~
In file included from ../src/addon.cc:2:
../../nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(const v8::Localv8::String&, const v8::Localv8::Value&)’:
../../nan/nan.h:1824:42: warning: ‘bool v8::Object::Set(v8::Localv8::Value, v8::Localv8::Value)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
New(persistentHandle)->Set(key, value);
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/v8-internal.h:14,
from /home/mike/.node-gyp/12.3.1/include/node/v8.h:25,
from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../src/addon.cc:1:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:3359:26: note: declared here
bool Set(Local key, Local value));
^~~
/home/mike/.node-gyp/12.3.1/include/node/v8config.h:322:3: note: in definition of macro ‘V8_DEPRECATE_SOON’
declarator attribute((deprecated(message)))
^~~~~~~~~~
In file included from ../src/addon.cc:2:
../../nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(uint32_t, const v8::Localv8::Value&)’:
../../nan/nan.h:1830:44: warning: ‘bool v8::Object::Set(uint32_t, v8::Localv8::Value)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
New(persistentHandle)->Set(index, value);
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/v8-internal.h:14,
from /home/mike/.node-gyp/12.3.1/include/node/v8.h:25,
from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../src/addon.cc:1:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:3368:26: note: declared here
bool Set(uint32_t index, Local value));
^~~
/home/mike/.node-gyp/12.3.1/include/node/v8config.h:322:3: note: in definition of macro ‘V8_DEPRECATE_SOON’
declarator attribute((deprecated(message)))
^~~~~~~~~~
In file included from ../src/addon.cc:2:
../../nan/nan.h: In member function ‘v8::Localv8::Value Nan::AsyncWorker::GetFromPersistent(const char*) const’:
../../nan/nan.h:1836:61: warning: ‘v8::Localv8::Value v8::Object::Get(v8::Localv8::Value)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
New(persistentHandle)->Get(New(key).ToLocalChecked()));
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/v8-internal.h:14,
from /home/mike/.node-gyp/12.3.1/include/node/v8.h:25,
from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../src/addon.cc:1:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:3412:55: note: declared here
V8_DEPRECATE_SOON("Use maybe version", Local Get(Local key));
^~~
/home/mike/.node-gyp/12.3.1/include/node/v8config.h:322:3: note: in definition of macro ‘V8_DEPRECATE_SOON’
declarator attribute((deprecated(message)))
^~~~~~~~~~
In file included from ../src/addon.cc:2:
../../nan/nan.h: In member function ‘v8::Localv8::Value Nan::AsyncWorker::GetFromPersistent(const v8::Localv8::String&) const’:
../../nan/nan.h:1842:55: warning: ‘v8::Localv8::Value v8::Object::Get(v8::Localv8::Value)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
return scope.Escape(New(persistentHandle)->Get(key));
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/v8-internal.h:14,
from /home/mike/.node-gyp/12.3.1/include/node/v8.h:25,
from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../src/addon.cc:1:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:3412:55: note: declared here
V8_DEPRECATE_SOON("Use maybe version", Local Get(Local key));
^~~
/home/mike/.node-gyp/12.3.1/include/node/v8config.h:322:3: note: in definition of macro ‘V8_DEPRECATE_SOON’
declarator attribute((deprecated(message)))
^~~~~~~~~~
In file included from ../src/addon.cc:2:
../../nan/nan.h: In member function ‘v8::Localv8::Value Nan::AsyncWorker::GetFromPersistent(uint32_t) const’:
../../nan/nan.h:1847:57: warning: ‘v8::Localv8::Value v8::Object::Get(uint32_t)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
return scope.Escape(New(persistentHandle)->Get(index));
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/v8-internal.h:14,
from /home/mike/.node-gyp/12.3.1/include/node/v8.h:25,
from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../src/addon.cc:1:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:3416:55: note: declared here
V8_DEPRECATE_SOON("Use maybe version", Local Get(uint32_t index));
^~~
/home/mike/.node-gyp/12.3.1/include/node/v8config.h:322:3: note: in definition of macro ‘V8_DEPRECATE_SOON’
declarator attribute((deprecated(message)))
^~~~~~~~~~
In file included from ../src/addon.cc:2:
../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
../../nan/nan.h:2167:62: warning: cast between incompatible function types from ‘void ()(uv_work_t)’ {aka ‘void ()(uv_work_s)’} to ‘uv_after_work_cb’ {aka ‘void ()(uv_work_s, int)’} [-Wcast-function-type]
, reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
^
In file included from /usr/include/c++/8/cassert:44,
from /home/mike/.node-gyp/12.3.1/include/node/node_object_wrap.h:26,
from ../../nan/nan.h:53,
from ../src/addon.cc:2:
../../nan/nan_object_wrap.h: In destructor ‘virtual Nan::ObjectWrap::~ObjectWrap()’:
../../nan/nan_object_wrap.h:24:25: error: ‘class Nan::Persistentv8::Object’ has no member named ‘IsNearDeath’
assert(persistent().IsNearDeath());
^~~~~~~~~~~
In file included from ../../nan/nan.h:2657,
from ../src/addon.cc:2:
../../nan/nan_object_wrap.h: In member function ‘void Nan::ObjectWrap::MakeWeak()’:
../../nan/nan_object_wrap.h:67:34: warning: ‘void v8::PersistentBase::MarkIndependent() [with T = v8::Object]’ is deprecated: Weak objects are always considered independent. Use TracedGlobal when trying to use EmbedderHeapTracer. Use a strong handle when trying to keep an object alive. [-Wdeprecated-declarations]
persistent().MarkIndependent();
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/v8-internal.h:14,
from /home/mike/.node-gyp/12.3.1/include/node/v8.h:25,
from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../src/addon.cc:1:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:567:22: note: declared here
V8_INLINE void MarkIndependent());
^~~~~~~~~~~~~~~
/home/mike/.node-gyp/12.3.1/include/node/v8config.h:307:3: note: in definition of macro ‘V8_DEPRECATED’
declarator attribute((deprecated(message)))
^~~~~~~~~~
In file included from /usr/include/c++/8/cassert:44,
from /home/mike/.node-gyp/12.3.1/include/node/node_object_wrap.h:26,
from ../../nan/nan.h:53,
from ../src/addon.cc:2:
../../nan/nan_object_wrap.h: In static member function ‘static void Nan::ObjectWrap::WeakCallback(const v8::WeakCallbackInfoNan::ObjectWrap&)’:
../../nan/nan_object_wrap.h:124:26: error: ‘class Nan::Persistentv8::Object’ has no member named ‘IsNearDeath’
assert(wrap->handle_.IsNearDeath());
^~~~~~~~~~~
In file included from ../src/addon.cc:1:
../src/addon.cc: At global scope:
/home/mike/.node-gyp/12.3.1/include/node/node.h:556:43: warning: cast between incompatible function types from ‘void ()(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)’ {aka ‘void ()(v8::Localv8::Object)’} to ‘node::addon_register_func’ {aka ‘void ()(v8::Localv8::Object, v8::Localv8::Value, void)’} [-Wcast-function-type]
(node::addon_register_func) (regfunc),
^
/home/mike/.node-gyp/12.3.1/include/node/node.h:590:3: note: in expansion of macro ‘NODE_MODULE_X’
NODE_MODULE_X(modname, regfunc, NULL, 0)  // NOLINT (readability/null_usage)
^~~~~~~~~~~~~
../src/addon.cc:50:1: note: in expansion of macro ‘NODE_MODULE’
NODE_MODULE(secp256k1, Init)
^~~~~~~~~~~
In file included from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../src/addon.cc:1:
/home/mike/.node-gyp/12.3.1/include/node/v8.h: In instantiation of ‘void v8::PersistentBase::SetWeak(P*, typename v8::WeakCallbackInfo::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo::Callback = void ()(const v8::WeakCallbackInfonode::ObjectWrap&)]’:
/home/mike/.node-gyp/12.3.1/include/node/node_object_wrap.h:84:78:   required from here
/home/mike/.node-gyp/12.3.1/include/node/v8.h:9817:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfonode::ObjectWrap::Callback’ {aka ‘void ()(const v8::WeakCallbackInfonode::ObjectWrap&)’} to ‘Callback’ {aka ‘void ()(const v8::WeakCallbackInfo&)’} [-Wcast-function-type]
reinterpret_cast(callback), type);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/mike/.node-gyp/12.3.1/include/node/v8.h: In instantiation of ‘void v8::PersistentBase::SetWeak(P, typename v8::WeakCallbackInfo::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo::Callback = void ()(const v8::WeakCallbackInfoNan::ObjectWrap&)]’:
../../nan/nan_object_wrap.h:66:61:   required from here
/home/mike/.node-gyp/12.3.1/include/node/v8.h:9817:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfoNan::ObjectWrap::Callback’ {aka ‘void ()(const v8::WeakCallbackInfoNan::ObjectWrap&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo&)’} [-Wcast-function-type]
make: *** [secp256k1.target.mk:155: Release/obj.target/secp256k1/src/addon.o] Error 1
make: Leaving directory '/home/mike/.nvm/versions/node/v12.3.1/lib/node_modules/embark/node_modules/ganache-cli/node_modules/ganache-core/node_modules/secp256k1/build'
gyp ERR! build error
gyp ERR! stack Error: make failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/home/mike/.nvm/versions/node/v12.3.1/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:262:23)
gyp ERR! stack     at ChildProcess.emit (events.js:200:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
gyp ERR! System Linux 5.0.0-15-generic
gyp ERR! command "/home/mike/.nvm/versions/node/v12.3.1/bin/node" "/home/mike/.nvm/versions/node/v12.3.1/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/mike/.nvm/versions/node/v12.3.1/lib/node_modules/embark/node_modules/ganache-cli/node_modules/ganache-core/node_modules/secp256k1
gyp ERR! node -v v12.3.1
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>rebuild: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>rebuild script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR!  Pure JS implementation will be used.

<EMAIL_ADDRESS>install /home/mike/.nvm/versions/node/v12.3.1/lib/node_modules/embark/node_modules/ganache-cli/node_modules/ganache-core/node_modules/sha3
node-gyp rebuild

make: Entering directory '/home/mike/.nvm/versions/node/v12.3.1/lib/node_modules/embark/node_modules/ganache-cli/node_modules/ganache-core/node_modules/sha3/build'
CXX(target) Release/obj.target/sha3/src/addon.o
In file included from ../../nan/nan_converters.h:67,
from ../../nan/nan.h:202,
from ../src/addon.cpp:4:
../../nan/nan_converters_43_inl.h: In static member function ‘static Nan::imp::ToFactoryBasev8::Boolean::return_t Nan::imp::ToFactoryv8::Boolean::convert(v8::Localv8::Value)’:
../../nan/nan_converters_43_inl.h:18:51: warning: ‘v8::MaybeLocalv8::Boolean v8::Value::ToBoolean(v8::Localv8::Context) const’ is deprecated: ToBoolean can never throw. Use Local version. [-Wdeprecated-declarations]
val->To ## TYPE(isolate->GetCurrentContext())
^
../../nan/nan_converters_43_inl.h:22:1: note: in expansion of macro ‘X’
X(Boolean)
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/v8-internal.h:14,
from /home/mike/.node-gyp/12.3.1/include/node/v8.h:25,
from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../src/addon.cpp:1:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:2524:63: note: declared here
V8_WARN_UNUSED_RESULT MaybeLocal ToBoolean(
^~~~~~~~~
/home/mike/.node-gyp/12.3.1/include/node/v8config.h:322:3: note: in definition of macro ‘V8_DEPRECATE_SOON’
declarator attribute((deprecated(message)))
^~~~~~~~~~
In file included from ../../nan/nan_converters.h:67,
from ../../nan/nan.h:202,
from ../src/addon.cpp:4:
../../nan/nan_converters_43_inl.h: In static member function ‘static Nan::imp::ValueFactoryBase::return_t Nan::imp::ToFactory::convert(v8::Localv8::Value)’:
../../nan/nan_converters_43_inl.h:37:57: warning: ‘v8::Maybe v8::Value::BooleanValue(v8::Localv8::Context) const’ is deprecated: BooleanValue can never throw. Use Isolate version. [-Wdeprecated-declarations]
return val->NAME ## Value(isolate->GetCurrentContext());
^
../../nan/nan_converters_43_inl.h:40:1: note: in expansion of macro ‘X’
X(bool, Boolean)
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/v8-internal.h:14,
from /home/mike/.node-gyp/12.3.1/include/node/v8.h:25,
from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../src/addon.cpp:1:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:2562:51: note: declared here
V8_WARN_UNUSED_RESULT Maybe BooleanValue(
^~~~~~~~~~~~
/home/mike/.node-gyp/12.3.1/include/node/v8config.h:307:3: note: in definition of macro ‘V8_DEPRECATED’
declarator attribute((deprecated(message)))
^~~~~~~~~~
In file included from ../../nan/nan_new.h:189,
from ../../nan/nan.h:203,
from ../src/addon.cpp:4:
../../nan/nan_implementation_12_inl.h: In static member function ‘static Nan::imp::FactoryBasev8::Function::return_t Nan::imp::Factoryv8::Function::New(Nan::FunctionCallback, v8::Localv8::Value)’:
../../nan/nan_implementation_12_inl.h:105:32: error: no matching function for call to ‘v8::Function::New(v8::Isolate*&, void (&)(const v8::FunctionCallbackInfov8::Value&), v8::Localv8::Object&)’
, obj));
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../src/addon.cpp:1:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:4125:31: note: candidate: ‘static v8::MaybeLocalv8::Function v8::Function::New(v8::Localv8::Context, v8::FunctionCallback, v8::Localv8::Value, int, v8::ConstructorBehavior, v8::SideEffectType)’
static MaybeLocal New(
^~~
/home/mike/.node-gyp/12.3.1/include/node/v8.h:4125:31: note:   no known conversion for argument 1 from ‘v8::Isolate*’ to ‘v8::Localv8::Context’
In file included from ../../nan/nan_new.h:189,
from ../../nan/nan.h:203,
from ../src/addon.cpp:4:
../../nan/nan_implementation_12_inl.h: In static member function ‘static Nan::imp::FactoryBasev8::StringObject::return_t Nan::imp::Factoryv8::StringObject::New(v8::Localv8::String)’:
../../nan/nan_implementation_12_inl.h:337:37: error: no matching function for call to ‘v8::StringObject::New(v8::Localv8::String&)’
return v8::StringObject::New(value).Asv8::StringObject();
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../src/addon.cpp:1:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:5380:23: note: candidate: ‘static v8::Localv8::Value v8::StringObject::New(v8::Isolate*, v8::Localv8::String)’
static Local New(Isolate* isolate, Local value);
^~~
/home/mike/.node-gyp/12.3.1/include/node/v8.h:5380:23: note:   candidate expects 2 arguments, 1 provided
In file included from ../../nan/nan_new.h:189,
from ../../nan/nan.h:203,
from ../src/addon.cpp:4:
../../nan/nan_implementation_12_inl.h:337:58: error: expected primary-expression before ‘>’ token
return v8::StringObject::New(value).Asv8::StringObject();
^
../../nan/nan_implementation_12_inl.h:337:60: error: expected primary-expression before ‘)’ token
return v8::StringObject::New(value).Asv8::StringObject();
^
In file included from ../src/addon.cpp:4:
../../nan/nan.h: In constructor ‘Nan::Utf8String::Utf8String(v8::Localv8::Value)’:
../../nan/nan.h:1034:53: error: no matching function for call to ‘v8::Value::ToString()’
v8::Localv8::String string = from->ToString();
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../src/addon.cpp:1:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:2528:44: note: candidate: ‘v8::MaybeLocalv8::String v8::Value::ToString(v8::Localv8::Context) const’
V8_WARN_UNUSED_RESULT MaybeLocal ToString(
^~~~~~~~
/home/mike/.node-gyp/12.3.1/include/node/v8.h:2528:44: note:   candidate expects 1 argument, 0 provided
In file included from /home/mike/.node-gyp/12.3.1/include/node/v8-internal.h:14,
from /home/mike/.node-gyp/12.3.1/include/node/v8.h:25,
from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../src/addon.cpp:1:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:2544:35: note: candidate: ‘v8::Localv8::String v8::Value::ToString(v8::Isolate*) const’
Local ToString(Isolate* isolate) const);
^~~~~~~~
/home/mike/.node-gyp/12.3.1/include/node/v8config.h:322:3: note: in definition of macro ‘V8_DEPRECATE_SOON’
declarator attribute((deprecated(message)))
^~~~~~~~~~
/home/mike/.node-gyp/12.3.1/include/node/v8.h:2544:35: note:   candidate expects 1 argument, 0 provided
Local ToString(Isolate* isolate) const);
^~~~~~~~
/home/mike/.node-gyp/12.3.1/include/node/v8config.h:322:3: note: in definition of macro ‘V8_DEPRECATE_SOON’
declarator attribute((deprecated(message)))
^~~~~~~~~~
In file included from ../src/addon.cpp:4:
../../nan/nan.h:1044:74: error: no matching function for call to ‘v8::String::WriteUtf8(char*&, int, int, const int&)’
length_ = string->WriteUtf8(str_, static_cast(len), 0, flags);
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../src/addon.cpp:1:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:2738:7: note: candidate: ‘int v8::String::WriteUtf8(v8::Isolate*, char*, int, int*, int) const’
int WriteUtf8(Isolate* isolate, char* buffer, int length = -1,
^~~~~~~~~
/home/mike/.node-gyp/12.3.1/include/node/v8.h:2738:7: note:   no known conversion for argument 1 from ‘char*’ to ‘v8::Isolate*’
In file included from ../src/addon.cpp:4:
../../nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(const char*, const v8::Localv8::Value&)’:
../../nan/nan.h:1818:64: warning: ‘bool v8::Object::Set(v8::Localv8::Value, v8::Localv8::Value)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
New(persistentHandle)->Set(New(key).ToLocalChecked(), value);
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/v8-internal.h:14,
from /home/mike/.node-gyp/12.3.1/include/node/v8.h:25,
from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../src/addon.cpp:1:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:3359:26: note: declared here
bool Set(Local key, Local value));
^~~
/home/mike/.node-gyp/12.3.1/include/node/v8config.h:322:3: note: in definition of macro ‘V8_DEPRECATE_SOON’
declarator attribute((deprecated(message)))
^~~~~~~~~~
In file included from ../src/addon.cpp:4:
../../nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(const v8::Localv8::String&, const v8::Localv8::Value&)’:
../../nan/nan.h:1824:42: warning: ‘bool v8::Object::Set(v8::Localv8::Value, v8::Localv8::Value)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
New(persistentHandle)->Set(key, value);
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/v8-internal.h:14,
from /home/mike/.node-gyp/12.3.1/include/node/v8.h:25,
from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../src/addon.cpp:1:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:3359:26: note: declared here
bool Set(Local key, Local value));
^~~
/home/mike/.node-gyp/12.3.1/include/node/v8config.h:322:3: note: in definition of macro ‘V8_DEPRECATE_SOON’
declarator attribute((deprecated(message)))
^~~~~~~~~~
In file included from ../src/addon.cpp:4:
../../nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(uint32_t, const v8::Localv8::Value&)’:
../../nan/nan.h:1830:44: warning: ‘bool v8::Object::Set(uint32_t, v8::Localv8::Value)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
New(persistentHandle)->Set(index, value);
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/v8-internal.h:14,
from /home/mike/.node-gyp/12.3.1/include/node/v8.h:25,
from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../src/addon.cpp:1:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:3368:26: note: declared here
bool Set(uint32_t index, Local value));
^~~
/home/mike/.node-gyp/12.3.1/include/node/v8config.h:322:3: note: in definition of macro ‘V8_DEPRECATE_SOON’
declarator attribute((deprecated(message)))
^~~~~~~~~~
In file included from ../src/addon.cpp:4:
../../nan/nan.h: In member function ‘v8::Localv8::Value Nan::AsyncWorker::GetFromPersistent(const char*) const’:
../../nan/nan.h:1836:61: warning: ‘v8::Localv8::Value v8::Object::Get(v8::Localv8::Value)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
New(persistentHandle)->Get(New(key).ToLocalChecked()));
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/v8-internal.h:14,
from /home/mike/.node-gyp/12.3.1/include/node/v8.h:25,
from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../src/addon.cpp:1:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:3412:55: note: declared here
V8_DEPRECATE_SOON("Use maybe version", Local Get(Local key));
^~~
/home/mike/.node-gyp/12.3.1/include/node/v8config.h:322:3: note: in definition of macro ‘V8_DEPRECATE_SOON’
declarator attribute((deprecated(message)))
^~~~~~~~~~
In file included from ../src/addon.cpp:4:
../../nan/nan.h: In member function ‘v8::Localv8::Value Nan::AsyncWorker::GetFromPersistent(const v8::Localv8::String&) const’:
../../nan/nan.h:1842:55: warning: ‘v8::Localv8::Value v8::Object::Get(v8::Localv8::Value)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
return scope.Escape(New(persistentHandle)->Get(key));
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/v8-internal.h:14,
from /home/mike/.node-gyp/12.3.1/include/node/v8.h:25,
from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../src/addon.cpp:1:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:3412:55: note: declared here
V8_DEPRECATE_SOON("Use maybe version", Local Get(Local key));
^~~
/home/mike/.node-gyp/12.3.1/include/node/v8config.h:322:3: note: in definition of macro ‘V8_DEPRECATE_SOON’
declarator attribute((deprecated(message)))
^~~~~~~~~~
In file included from ../src/addon.cpp:4:
../../nan/nan.h: In member function ‘v8::Localv8::Value Nan::AsyncWorker::GetFromPersistent(uint32_t) const’:
../../nan/nan.h:1847:57: warning: ‘v8::Localv8::Value v8::Object::Get(uint32_t)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
return scope.Escape(New(persistentHandle)->Get(index));
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/v8-internal.h:14,
from /home/mike/.node-gyp/12.3.1/include/node/v8.h:25,
from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../src/addon.cpp:1:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:3416:55: note: declared here
V8_DEPRECATE_SOON("Use maybe version", Local Get(uint32_t index));
^~~
/home/mike/.node-gyp/12.3.1/include/node/v8config.h:322:3: note: in definition of macro ‘V8_DEPRECATE_SOON’
declarator attribute((deprecated(message)))
^~~~~~~~~~
In file included from ../src/addon.cpp:4:
../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
../../nan/nan.h:2167:62: warning: cast between incompatible function types from ‘void ()(uv_work_t)’ {aka ‘void ()(uv_work_s)’} to ‘uv_after_work_cb’ {aka ‘void ()(uv_work_s, int)’} [-Wcast-function-type]
, reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
^
In file included from /usr/include/c++/8/cassert:44,
from /home/mike/.node-gyp/12.3.1/include/node/node_object_wrap.h:26,
from ../../nan/nan.h:53,
from ../src/addon.cpp:4:
../../nan/nan_object_wrap.h: In destructor ‘virtual Nan::ObjectWrap::~ObjectWrap()’:
../../nan/nan_object_wrap.h:24:25: error: ‘class Nan::Persistentv8::Object’ has no member named ‘IsNearDeath’
assert(persistent().IsNearDeath());
^~~~~~~~~~~
In file included from ../../nan/nan.h:2657,
from ../src/addon.cpp:4:
../../nan/nan_object_wrap.h: In member function ‘void Nan::ObjectWrap::MakeWeak()’:
../../nan/nan_object_wrap.h:67:34: warning: ‘void v8::PersistentBase::MarkIndependent() [with T = v8::Object]’ is deprecated: Weak objects are always considered independent. Use TracedGlobal when trying to use EmbedderHeapTracer. Use a strong handle when trying to keep an object alive. [-Wdeprecated-declarations]
persistent().MarkIndependent();
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/v8-internal.h:14,
from /home/mike/.node-gyp/12.3.1/include/node/v8.h:25,
from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../src/addon.cpp:1:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:567:22: note: declared here
V8_INLINE void MarkIndependent());
^~~~~~~~~~~~~~~
/home/mike/.node-gyp/12.3.1/include/node/v8config.h:307:3: note: in definition of macro ‘V8_DEPRECATED’
declarator attribute((deprecated(message)))
^~~~~~~~~~
In file included from /usr/include/c++/8/cassert:44,
from /home/mike/.node-gyp/12.3.1/include/node/node_object_wrap.h:26,
from ../../nan/nan.h:53,
from ../src/addon.cpp:4:
../../nan/nan_object_wrap.h: In static member function ‘static void Nan::ObjectWrap::WeakCallback(const v8::WeakCallbackInfoNan::ObjectWrap&)’:
../../nan/nan_object_wrap.h:124:26: error: ‘class Nan::Persistentv8::Object’ has no member named ‘IsNearDeath’
assert(wrap->handle_.IsNearDeath());
^~~~~~~~~~~
../src/addon.cpp: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE SHA3Hash::New(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/addon.cpp:36:64: error: no matching function for call to ‘v8::Value::Int32Value()’
hashlen = info[0]->IsUndefined() ? 512 : info[0]->Int32Value();
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../src/addon.cpp:1:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:2569:40: note: candidate: ‘v8::Maybe v8::Value::Int32Value(v8::Localv8::Context) const’
V8_WARN_UNUSED_RESULT Maybe<int32_t> Int32Value(Local context) const;
^~~~~~~~~~
/home/mike/.node-gyp/12.3.1/include/node/v8.h:2569:40: note:   candidate expects 1 argument, 0 provided
../src/addon.cpp:49:23: warning: ‘new’ of type ‘SHA3Hash’ with extended alignment 32 [-Waligned-new=]
obj = new SHA3Hash();
^
../src/addon.cpp:49:23: note: uses ‘void* operator new(std::size_t)’, which does not have an alignment parameter
../src/addon.cpp:49:23: note: use ‘-faligned-new’ to enable C++17 over-aligned new support
../src/addon.cpp: In static member function ‘static void SHA3Hash::Init(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)’:
../src/addon.cpp:76:36: error: no matching function for call to ‘v8::FunctionTemplate::GetFunction()’
constructor.Reset(t->GetFunction());
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../src/addon.cpp:1:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:5947:46: note: candidate: ‘v8::MaybeLocalv8::Function v8::FunctionTemplate::GetFunction(v8::Localv8::Context)’
V8_WARN_UNUSED_RESULT MaybeLocal GetFunction(
^~~~~~~~~~~
/home/mike/.node-gyp/12.3.1/include/node/v8.h:5947:46: note:   candidate expects 1 argument, 0 provided
../src/addon.cpp:77:77: error: no matching function for call to ‘v8::FunctionTemplate::GetFunction()’
target->Set(Nan::New("SHA3Hash").ToLocalChecked(), t->GetFunction());
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../src/addon.cpp:1:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:5947:46: note: candidate: ‘v8::MaybeLocalv8::Function v8::FunctionTemplate::GetFunction(v8::Localv8::Context)’
V8_WARN_UNUSED_RESULT MaybeLocal GetFunction(
^~~~~~~~~~~
/home/mike/.node-gyp/12.3.1/include/node/v8.h:5947:46: note:   candidate expects 1 argument, 0 provided
../src/addon.cpp: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE SHA3Hash::Update(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/addon.cpp:97:49: error: no matching function for call to ‘v8::Value::ToObject()’
Local buffer_obj = info[0]->ToObject();
^
In file included from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../src/addon.cpp:1:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:2532:44: note: candidate: ‘v8::MaybeLocalv8::Object v8::Value::ToObject(v8::Localv8::Context) const’
V8_WARN_UNUSED_RESULT MaybeLocal ToObject(
^~~~~~~~
/home/mike/.node-gyp/12.3.1/include/node/v8.h:2532:44: note:   candidate expects 1 argument, 0 provided
In file included from /home/mike/.node-gyp/12.3.1/include/node/v8-internal.h:14,
from /home/mike/.node-gyp/12.3.1/include/node/v8.h:25,
from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../src/addon.cpp:1:
/home/mike/.node-gyp/12.3.1/include/node/v8.h:2546:35: note: candidate: ‘v8::Localv8::Object v8::Value::ToObject(v8::Isolate*) const’
Local ToObject(Isolate* isolate) const);
^~~~~~~~
/home/mike/.node-gyp/12.3.1/include/node/v8config.h:322:3: note: in definition of macro ‘V8_DEPRECATE_SOON’
declarator attribute((deprecated(message)))
^~~~~~~~~~
/home/mike/.node-gyp/12.3.1/include/node/v8.h:2546:35: note:   candidate expects 1 argument, 0 provided
Local ToObject(Isolate* isolate) const);
^~~~~~~~
/home/mike/.node-gyp/12.3.1/include/node/v8config.h:322:3: note: in definition of macro ‘V8_DEPRECATE_SOON’
declarator attribute((deprecated(message)))
^~~~~~~~~~
In file included from ../src/addon.cpp:1:
../src/addon.cpp: At global scope:
/home/mike/.node-gyp/12.3.1/include/node/node.h:556:43: warning: cast between incompatible function types from ‘void ()(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)’ {aka ‘void ()(v8::Localv8::Object)’} to ‘node::addon_register_func’ {aka ‘void ()(v8::Localv8::Object, v8::Localv8::Value, void)’} [-Wcast-function-type]
(node::addon_register_func) (regfunc),
^
/home/mike/.node-gyp/12.3.1/include/node/node.h:590:3: note: in expansion of macro ‘NODE_MODULE_X’
NODE_MODULE_X(modname, regfunc, NULL, 0)  // NOLINT (readability/null_usage)
^~~~~~~~~~~~~
../src/addon.cpp:164:1: note: in expansion of macro ‘NODE_MODULE’
NODE_MODULE(sha3, SHA3Hash::Init)
^~~~~~~~~~~
In file included from /home/mike/.node-gyp/12.3.1/include/node/node.h:63,
from ../src/addon.cpp:1:
/home/mike/.node-gyp/12.3.1/include/node/v8.h: In instantiation of ‘void v8::PersistentBase::SetWeak(P*, typename v8::WeakCallbackInfo::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo::Callback = void ()(const v8::WeakCallbackInfonode::ObjectWrap&)]’:
/home/mike/.node-gyp/12.3.1/include/node/node_object_wrap.h:84:78:   required from here
/home/mike/.node-gyp/12.3.1/include/node/v8.h:9817:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfonode::ObjectWrap::Callback’ {aka ‘void ()(const v8::WeakCallbackInfonode::ObjectWrap&)’} to ‘Callback’ {aka ‘void ()(const v8::WeakCallbackInfo&)’} [-Wcast-function-type]
reinterpret_cast(callback), type);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/mike/.node-gyp/12.3.1/include/node/v8.h: In instantiation of ‘void v8::PersistentBase::SetWeak(P, typename v8::WeakCallbackInfo::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo::Callback = void ()(const v8::WeakCallbackInfoNan::ObjectWrap&)]’:
../../nan/nan_object_wrap.h:66:61:   required from here
/home/mike/.node-gyp/12.3.1/include/node/v8.h:9817:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfoNan::ObjectWrap::Callback’ {aka ‘void ()(const v8::WeakCallbackInfoNan::ObjectWrap&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo&)’} [-Wcast-function-type]
make: *** [sha3.target.mk:111: Release/obj.target/sha3/src/addon.o] Error 1
make: Leaving directory '/home/mike/.nvm/versions/node/v12.3.1/lib/node_modules/embark/node_modules/ganache-cli/node_modules/ganache-core/node_modules/sha3/build'
gyp ERR! build error
gyp ERR! stack Error: make failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/home/mike/.nvm/versions/node/v12.3.1/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:262:23)
gyp ERR! stack     at ChildProcess.emit (events.js:200:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
gyp ERR! System Linux 5.0.0-15-generic
gyp ERR! command "/home/mike/.nvm/versions/node/v12.3.1/bin/node" "/home/mike/.nvm/versions/node/v12.3.1/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/mike/.nvm/versions/node/v12.3.1/lib/node_modules/embark/node_modules/ganache-cli/node_modules/ganache-core/node_modules/sha3
gyp ERR! node -v v12.3.1
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
npm WARN<EMAIL_ADDRESS>requires a peer of yo-yoify@latest but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed.  Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR!     /home/mike/.npm/_logs/2019-05-30T23_00_08_196Z-debug.log

I'm happy to do another fresh install and follow an exact sequence of instructions to get this working.

@mikezentz unfortunately embark has dependencies that aren't compatible with NodeJS v12.x. For now, please use either the latest 10.x (currently 10.16.0) or the latest 8.x (currently 8.16.0).

nvm install v10.16.0

There's a merged PR that makes it more clear what versions of NodeJS are supported but those changes aren't yet part of a released version of Embark: https://github.com/embark-framework/embark/pull/1639.

Any progress here? This install is a huge barrier to entry for many (we tried this at a meetup, and only 2 were able to get past install). Just tried again with 10.16, 11.9, 11.15, none are working currently. Is there a stable version available? (Even tried npm install -g embark@4.0.2). You have the best contract runtime, I want to introduce new developers using this, but its impossible without install working :)

@TrevorJTClarke Is the installation errrors you get related to Node's version? If so, Node 10.x should work. I am currently on 10.13.0. Installing with NVM also gets rid of most permission issues.
There are a couple other factors that can make the installation fail. The biggest one is scrypt, because it depends on node-gyp, which requires Python 2.7 and a C++ compiler. You can find our troubleshooting guide for that type of problem here: https://embark.status.im/docs/troubleshooting.html#node-gyp-problems.
In the end, most, if not all, Embark versions should be installable. It's only that we depends on a couple of hard to install dependencies that it often causes problems.

Thanks for the response @jrainville,
I did the troubleshooting doc yesterday, heres my current versions:

python2.7
<EMAIL_ADDRESS>nodejs - 10.6, 10.16, 11.9, 11.15
npm 6.7.0

Its still failing primarily due to node-gyp, any ideas?

@TrevorJTClarke what OS do you use?
Do you have a valid C++ compiler?
Also, what is the error that you get when installing Embark?

Any progress here? This install is a huge barrier to entry for many (we tried this at a meetup, and only 2 were able to get past install). Just tried again with 10.16, 11.9, 11.15, none are working currently. Is there a stable version available? (Even tried npm install -g embark@4.0.2). You have the best contract runtime, I want to introduce new developers using this, but its impossible without install working :)

Right? I would've thought that things would be better since the last time I worked with ETH (2017), but it's still the same buggy messy painful process as then. Maybe check in another 3 years, I guess?

Still this issue is not solved, right? I still got same problem as mentioned above when i install npm -g install embark, any solution


Initial Working Version

This uses a combo of the RGB Matrix, RGB Matrix Shield, and Metro M4 Airlift Lite.

@jp please test for melissa

As for how much memory this uses, how would I tell?
Mostly the network stuff is a duplicate of PyPortal.

I went for a less monolithic approach with this library which is why the add_text() function needs to be called after initialization, though I'm sure there's room for improvement. Like I could make it so it doesn't automatically connect to WiFi in case the user just wants to initialize the RGB Matrix, but it kind of defeats the purpose of this library. Also, I'm pretty sure I remove the SD card stuff from here since there's no SD card on a Metro M4 Airlift Lite.

1. As for how much memory this uses, how would I tell?

gc.mem_free() before and after the import is a decent approximation.

2. Mostly the network stuff is a duplicate of PyPortal.

Could we split it out? Some of it does a fetch and writes the result to the FS right? That'd be handy on it's own.

I went for a less monolithic approach with this library which is why the add_text() function needs to be called after initialization, though I'm sure there's room for improvement. Like I could make it so it doesn't automatically connect to WiFi in case the user just wants to initialize the RGB Matrix, but it kind of defeats the purpose of this library. Also, I'm pretty sure I remove the SD card stuff from here since there's no SD card on a Metro M4 Airlift Lite.

I think there needs to be more curation of what is in this library based on what it's purpose is. Now is the time to do it before folks are using it.
I think there are three layers to it that could be split out separately and build on each other.

The "FeatherWing" scenario where the library does board/project specific initialization like connecting the display and esp coprocessor but nothing else.
The graphics layer that has the normal "adafruit quotes" style layout and abstracts away the group stuff.
The highest level that ties in internet URL to the graphics form.

There are a number of other helpers that should be split into their own libraries like wget and fake requests.

By "FeatherWing" scenario, are you referring to the FeatherWing library?
For the memory, it looks like it takes about 65K based on before and after the import.
Are you proposing the 3 layers in the same library or different libraries?

I'm working on splitting this up into multiple files and for the moment will just keep them in the same library. Then we can split them off later without much change other than additional install requirements.

By "FeatherWing" scenario, are you referring to the FeatherWing library and how we handled the board initialization automatically?

Yup exactly.

I'm working on splitting this up into multiple files and for the moment will just keep them in the same library. Then we can split them off later without much change other than additional install requirements.

Thanks! That's a great start.

I want to verify the examples first. This is close. I'll re-request a review when ready.

It's ready again for review.

This is working great for the On Air sign!

I made the requested changes. I modified the FakeRequests so that it doesn't store the text, but created a text property so it doesn't break things.

Thank you :)


Can anyone help i need to get FFlib mocks and common deployed into production

Hi, I am trying to install
https://github.com/apex-enterprise-patterns/fflib-apex-mocks/tree/master
and
https://github.com/apex-enterprise-patterns/fflib-apex-common
I was able to about a month ago into a sandbox with no issues. And today I want to add this to our prod org but i keep getting an error when i try to install it:
Application error
An error occurred in the application and your page could not be served. If you are the application owner, check your logs for details. You can do this from the Heroku CLI with the command
Can anyone help i need to get FFlib mocks and common deployed into production

These are now working


Sender is the Transform itself

When doing this, I'd expect GetType to retrieve the component which modified the value.
It ends up that in this case sender is the own GameObject and GetType return Transform. Is it expected ?
I'm adding the component at runtime.
  [ExecuteAlways]
    public class LogTransformChanges : SimpleMonoBehaviour
    {

        private void Awake()
        {
            #if ILWeavedEventsOn
                    transform.SetRotationExecuting += (sender, vector3) =>
                    {
                        if(this == null) return;
                        IndusLogger.Error("UnitModelViewBh.PostAwake()",
                            $"{name} rotation set by sender {sender} to {vector3}. Sender details type:<{sender.GetType()}>");

                    };

                    transform.SetPositionExecuting += (sender, vector3) =>
                    {
                        if(this == null) return;
                        IndusLogger.Error("UnitModelViewBh.PostAwake()",
                            $"{name} position set by sender {sender} to {vector3}. Sender details type:<{sender.GetType()}>");

                    };
            #endif
        }

    }

We actually have access to the stack trace. So it's irrelevant.


Particle shaders: multiple bugs when using USERDATAX

Tested versions
Found in v4.2.1.stable.official [b09f793f5]
System information
Windows 11, v4.2.1.stable.official [b09f793f5]
Issue description
When writing a (2D) particle shader, as soon as a USERDATAX variable is introduced (e.g. USERDATA1), the particle shader stops working without any errors. After reopening the project, particles appear again but the values for USERDATAX aren't constant - they change constantly. Unless I'm horribly mistaken, I'd expect USERDATAX to work more or less like CUSTOM, except the data isn't passed on to the material shader.
Steps to reproduce
Create a GPUParticles2D node and set a texture. Add a shader material as process material, observe that particles are emitting. Edit the shader: in start(), give USERDATA1 a sensible positional value. Observe that the particle system stops emitting.
Reopen the project.
In process(), set the transform's origin TRANSFORM[3] to USERDATA1. Observe that the particles move while they should remain stationary.
Minimal reproduction project (MRP)
N/A, need to start from scratch to see the bugs occur.

What rendering backend are you using?
Also, can you please upload an MRP that reproduces the issue? Perhaps since the issue can only be fully reproduced from scratch, could you at least provide the project settings file and the shader that triggers the issue?

@clayjohn this was using Forward+. No special project settings (I literally started a new project just to work on this in a separate environment), nothing in the shader that I haven't mentioned in the OP.

I'm seeing problems with USERDATA1 as well. I'm using Forward+ and GPUParticles3D, but I only see this in a build exported for web.
My scenario is similar: set USERDATA1.x in start() and then try using it in process(). In my case, merely setting the value seems to cause strange behavior in process() even if I don't use it.

I wasn't able to reproduce the bug described in this issue with the following mrp on 4.2.1 stable, windows 10, forward+.
userdata-mrp.zip
It contains a gpu particle system with a simple particle process shader and a few commented lines which both read from and write to USERDATA1.
Uncommenting the USERDATA1 line in start() sometimes causes the 1 active particle to disappear, but only for the duration of the particle's lifetime. I tried setting the lifetime to 20s and it took about that long for the particle to reappear. However, I don't have to reopen the project or even the scene to get the particle system to start working. @robbertzzz how long is your particle system's lifetime?
Uncommenting the lines in process() has the desired effect of assigning USERDATA1 to a particle's origin TRANSFORM[3] with no additional movement.

@cosparks I just tested this on 4.2.2 stable forward+, you're right that the behaviour has changed and that something happens when a new particle spawns.
For some reason, setting USERDATA1 now makes my particle glitch out. When comment out the assignment, things do not return back to normal, it's just that the type of glitch changes every time I make a change, including the particle sometimes disappearing. Setting TRANSFORM[3] to USERDATA1 does work as intended, so at least that part seems to be fixed. See screenshots for some nice glitches.

Actually, I see that #87178 is exactly the bug I'm experiencing in the above comment. That means this bug report can be closed.


Advice for low-latency applications/fast-paced games

I'm building a new networking library on top of SCTP using one to one setup with no delay option and multiple streams for low-latency applications/fast-paced games, and in general, it works great. While experimenting with SCTP options I noticed that sctp_rto_min_default set to zero leads to faster packets transmission without any delay, datagrams delivered instantly. How this option affects transmission logic under the hood, it's fine to set it to zero?
Also, it would be great if you can advice tweaking any other options to achieve lower latencies/faster data delivery. Thanks!

Despite the fact that I closed the issue, any info is still highly welcome. 😼

@tuexen Is there any sense to switch the default congestion control to RTCC for networking games in order to minimize delays and better estimations for real-time communications?

If I remember it correctly, it is an experimental CC developed by @stewrtrs . Possibly he can answer.

Could you share any advantage or disadvantage between default congestion(SCTP_CC_RFC2581) vs RTCC for your low-latency applications?
Thanks. @nxrighthere

+1 to the above, also keen to read more about the MS QUIC datagram ext.
have a realtime physics game over webrtc and would love to cut any speed corners we can


chore: croc-hunter-jenkinsx to 0.0.68

chore: Promote croc-hunter-jenkinsx to version 0.0.68

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approvers:
If they are not already assigned, you can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Questuion about command './run_target_protocol.sh 4QVF_A' and it not works

Dear Author,
Thank you for your article in Nature journal!
When I tring to reproduce your tutorial and typed the command you instructed : ./run_target_protocol.sh 4QVF_A
I got the following error.
I am very sure that there is a folder named 'nn_models' and the files named 'all_feat_3l' and 'sc05' in it.
Why it trigger this error?
Could you please check this?
Thank you very much!

Solving Solution:
These models name are filepath, thus I Copyed and Pasted these file in the path to the root directory.
The provblem have solved.


Open source contribution

I came across this repo while I was working looking for a profiling tool. I want to study profilers in depth. I'm willing to make any opensource contribution to this project if someone could guide me or give me a module to work on that would be great!

Hey, contributions are always more than welcome. Unfortunately, we don't have an "easy to start with" issue list.
We suggest you could start by checking out the project, build it, and actually use the profiler on Linux in depth. If you stumble across something when using Orbit, raise an issue and we can discuss if this is something you could contribute to.


LutaML is not dealing with annotations in EXPRESS

10303-41 schema clauses are generated by:
= X
:lutaml-express-index: schemas; schemas.yaml;
:bare: true
:mn-document-class: iso
:mn-output-extensions: html

[lutaml, schemas, context, leveloffset=+1]
---
{% for schema in context.schemas %}
{% if schema.id == "document_schema" %}
{% assign schemaname = schema.id | append: "$" | remove: "_schema$" | remove: "$" | replace: "_", " " | capitalize %}

[%unnumbered]
= {{schemaname }}

[source%unnumbered]
--
{{ schema.source }}
--
{% endif %}
{% endfor %}
---

This is a straightforward iteration, and schema.source is meant to deal with all the Express stuff it finds, and generate usable Asciidoc.
It is leaving undigested annotations and nested Lutaml in the generated Asciidoc, which make it unusable.
I attach Clause 11.
document.presentation.xml.13.html.zip
The random (* and {% assign reference_froms = schema.interfaces | where: “kind”, :REFERENCE %} are there in the initial Semantic XML that processes that Lutaml.

This used to work, it's not a Lutaml / Expressir issue.

Will test this on annotated-express, but I do not know the internals of Express, and debugging this would be very time consuming.

Is working fine in annotated-express, so there is something about the directory structure of iso10303 that is confusing it.

This is a different issue: *_annotated.exp files are not being generated in my test repository.

I was using iso-10303-stepmod-wg12  as my starting point; I need to use iso-10303-stepmod instead.

*_annotated.exp is generated by the stepmod2mn annotation process.

Yes, and that is output to iso-10303-stepmod not iso-10303-stepmod-wg12. I was confused because the instructions spoke of -wg12: that is one step too early for me to be involved.

*_annotated.exp is generated by the stepmod2mn annotation process.

@ronaldtse stepmod2mn doesn't generate .exp. I think it's stepmod-utils result.

Am running on the right repository, but the issue is persisting. It turns out to be a stepmod issue:
Stepmod generates 04-schemas.adoc, the template for all the schema documents. The document it *should be generating is
https://github.com/metanorma/annotated-express/blob/main/data/documents/resources/fundamentals_of_product_description_and_support/sections/04-schemas.adoc
it should not be populating this 18KB Lutaml template, just reproducing it.
Instead the 04-schemas.adoc document being generated is 807KB, which appears to have resulted from jamming all the annotated express files into it. Because populating the lutaml does not seem to invoke "source" properly, comments are being left unprocessed.
The way the document is in annotated-express is working: please output just the 18KB template as 04-schemas.adoc


Refactor: change rollout's json tag

[Refactor]: set rollout as a pointer reference
set rollout as a type of pointer references so that the output of json decoding will be "nil" when all subfields has a nil or empty value
Closes #2289

What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes #2289
Special notes for your reviewer:

LGTM, please fix CI.
you can run make reviewable to see

I am using kustomize v4.3, the command of "make reviewable"  will delete a lot of yaml files.. should I downgrade it to 3.8.x to avoid these changes?

@GingoBang Hi, please fix the CI and the conflicts

@GingoBang Hi, please fix the CI and the conflicts

yes sure, I am working on it ^^

@GingoBang Some rollout e2e tests are still failing for this change

@GingoBang Some rollout e2e tests are still failing for this change

there's something wrong of my local environment, I am


Move method calls outside of template definition

I got the error shown below when using the rsync_serve resource with Chef client 12.1.1. This pull request fixes the issue for me.
Regards,
Peter
  * rsync_serve[repo] action add

    ================================================================================
    Error executing action `add` on resource 'rsync_serve[repo]'
    ================================================================================

    NoMethodError
    -------------
    undefined method `global_modules' for Chef::Resource::Template

    Cookbook Trace:
    ---------------
    /var/chef/cache/cookbooks/rsync/providers/serve.rb:40:in `block in write_conf'
    /var/chef/cache/cookbooks/rsync/providers/serve.rb:33:in `write_conf'
    /var/chef/cache/cookbooks/rsync/providers/serve.rb:20:in `block in class_from_file'

    Resource Declaration:
    ---------------------
    # In /var/chef/cache/cookbooks/repo/recipes/default.rb

     17: rsync_serve 'repo' do
     18: 	path '/repo'
     19: 	uid 'nobody'
     20: 	gid 'nobody'
     21: 	read_only true
     22: end
     23:

    Compiled Resource:
    ------------------
    # Declared in /var/chef/cache/cookbooks/repo/recipes/default.rb:17:in `from_file'

    rsync_serve("repo") do
      action :add
      retries 0
      retry_delay 2
      default_guard_interpreter :default
      declared_type :rsync_serve
      cookbook_name "repo"
      recipe_name "default"
      path "/repo"
      uid "nobody"
      gid "nobody"
      read_only true
      config_path "/etc/rsyncd.conf"
    end

Hi. I am an automated pull request bot named Curry. There are commits in this pull request whose authors are not yet authorized to contribute to Chef Software, Inc. projects or are using a non-GitHub verified email address. To become authorized to contribute, you will need to sign the Contributor License Agreement (CLA) as an individual or on behalf of your company. You can read more on Chef's blog.
Non-GitHub Verified Committers
There are 1 commit author(s) whose commits are authored by a non-GitHub verified email address. Chef will have to manually verify that they are authorized to contribute.
Please sign the CLA here.


fix(DataStore): dynamic model support for cascade delete

Issue #, if available:
Description of changes:
DataStore.delete API performs cascade delete by first deleting the model from local store. Before performing the delete transaction, it collects all the associated models and it's children recursively, and delete those as well. All local deletes (the parent and child objects) are then synced to the cloud.
The problem can be seen in Flutter when performing a cascade delete. There are various places in the flow where the system gets a model name from the wrong place. Wrong places to get the model name:

modelType.modelName
model.modelName (Similar PR fix here: https://github.com/aws-amplify/amplify-ios/pull/1292)

The correct place to get the model name is from the schema modelSchema.name. This is difficult to do in the cascade delete logic as currently the recurseQueryAssociatedModels method will return an array of Model objects, losing the schema in which it relates to. To avoiding accessing the name from the model instance, we store [ModelName: [Model]] instead of [Model] to perserve the model name that is needed to create the MutationEvent to sync to cloud.
Check points:

[x] Added new tests to cover change, if needed
[x] All unit tests pass
[x] All integration tests pass
[ ] Documentation update for the change if required
[x] PR title conforms to conventional commit style

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Codecov Report

Merging #1296 (6042a38) into main (1d86609) will increase coverage by 0.00%.
The diff coverage is 86.58%.

@@           Coverage Diff           @@
##             main    #1296   +/-   ##
=======================================
  Coverage   60.29%   60.30%
=======================================
  Files         656      656
  Lines       19561    19585   +24
=======================================
+ Hits        11795    11811   +16
- Misses       7766     7774    +8

Flag
Coverage Δ

API_plugin_unit_test
65.51% <ø> (ø)

AWSPluginsCore
74.33% <ø> (ø)

Amplify
48.35% <0.00%> (-0.08%)
:arrow_down:

Analytics_plugin_unit_test
73.41% <ø> (ø)

Auth_plugin_unit_test
82.31% <ø> (ø)

DataStore_plugin_unit_test
74.81% <93.42%> (+0.06%)
:arrow_up:

Predictions_plugin_unit_test
33.51% <ø> (ø)

Storage_plugin_unit_test
57.72% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

...ries/DataStore/Subscribe/MutationEvent+Model.swift
0.00% <0.00%> (ø)

...eCategoryPlugin/Storage/StorageEngineAdapter.swift
0.00% <ø> (ø)

...ategoryPlugin/Storage/SQLite/Statement+Model.swift
95.83% <50.00%> (ø)

...ataStoreCategoryPlugin/Storage/StorageEngine.swift
59.41% <90.62%> (+0.60%)
:arrow_up:

...ugin/Storage/StorageEngine+DeleteTransaction.swift
92.24% <96.29%> (-0.32%)
:arrow_down:

...goryPlugin/Storage/SQLite/Statement+AnyModel.swift
60.00% <100.00%> (ø)

...n/Storage/SQLite/StorageEngineAdapter+SQLite.swift
77.39% <100.00%> (+0.60%)
:arrow_up:

...age/SQLite/StorageEngineAdapter+UntypedModel.swift
22.58% <100.00%> (-3.23%)
:arrow_down:

...s/AWSHubPlugin/Internal/HubChannelDispatcher.swift
94.11% <0.00%> (-2.95%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 1d86609...6042a38. Read the comment docs.


[BUG] Photoshop files currently dont load 16- and 32- bit files' image data

Describe the bug
When loading 16- or 32-bit Photoshop files (psd and psb) they will only extract the merged image data but not the data from the individual layers
Related issues and link to discussion with more information:
#3900, https://github.com/AcademySoftwareFoundation/OpenImageIO/discussions/3910#discussioncomment-8913737
To Reproduce

Create a 8- and 16-/32- bit file
Run this code uncommenting the relevant files:

#include "OpenImageIO/imageio.h"

int main()
{
   //std::filesystem::path filePath = "File_16bit.psd";
   std::filesystem::path filePath = "File_8bit.psd";

    auto inp = OIIO::ImageInput::open(filePath.string());
    int subimage = 0;
    while (inp->seek_subimage(subimage, 0)) {
        const OIIO::ImageSpec& spec = inp->spec();
        int npixels = spec.width * spec.height;
        int nchannels = spec.nchannels;
        auto pixels = std::vector<unsigned char>(npixels * nchannels, 0);
        inp->read_image(subimage, 0, 0, nchannels, OIIO::TypeDesc::UINT8, pixels.data());

        std::cout << subimage << std::endl;
        ++subimage;
    }
}

Even if the files are exactly identical with only bit-depth being the difference running the result for the 16-/32- bit files will always be that it only reads the first subimage (merged image section) but not the layers

Potential Fixes
This issue requires two fixes:
The first is extending the code to actually recognize layer data from 16- and 32-bit files by reading the 'Lr16' and 'Lr32' tagged blocks and extracting the layer info from there
The second one would require implementation of the Zip and ZipPrediction compression codecs as well as storage of the full decompressed image buffer on call to PSDInput::read_native_scanline() as these compression codecs do not allow for random access scanline reads and instead require the whole buffer to be decompressed.
For more information on this I have created this reply to a discussion https://github.com/AcademySoftwareFoundation/OpenImageIO/discussions/3910#discussioncomment-8913737

@EmilDohne Is this issue fully solved by #4208? Can this one be closed?

@Igritz yes, this is now fixed!


Allow embassy_sync::Pipe to handle wraparounds (better)

Currently, if you are at the wraparound condition, reads and writes will only fill up to the wraparound, even if there is additional space after the wraparound.
Though the caller COULD manually handle this case (see the manual_wraparound test) - this could lead to split messages in the case of lock contention.
This PR adds logic to allow read and write to proactively "try again" in case of a potential wraparound condition, which would prevent needing to handle the logic manually, and (IMO) follows a more expected behavior from an API perspective.
I noticed the former behavior in my testing, where messages appeared truncated in my usage of Pipe, which wasn't wrong, but I assumed that incomplete read/writes were "fatal", at least until additional write/reads occured.
This logic COULD potentially live in ring_buffer instead, but I'm not sure it would work well with the current API there.

write and read in Pipe work like std::io::Read/Write. They only guarantee is "if there's space, at least 1 byte is written".
In the soupstone case, the fix is to use .write_all (from embedded-io) here instead of .write:
STDOUT.write(b"hello, world!\r\n").await;

About docs: I agree they're suboptimal indeed, that's probably the source of the confusion. There was some language copypasted from Channel talking about "messages" or "values" which is wrong. I've fixed this in #1299 .
About the change in this PR: Both the current behavior (without this PR) and the new behavior (with) are correct w.r.t the Read/Write guarantees. So it comes down about perf and principle-of-least-surprise:

perf: chances are the user is already writing their own loop (or using write_all, read_exact etc) so having write/read do 2 tries is not needed, I think this is a slight perf loss (probably small enough to not matter)
principle-of-least-surprise: currently write can return early in 2 cases: wraparound and full. After this PR, it only does inthe full case. This makes code that uses write by mistake (that should be using write_all) less likely to fail, but it can still fail. I'm not sure if "hiding more" the footgun is a win, if it doesn't fully eliminate it.

this could lead to split messages in the case of lock contention.

I'm not very convinced that this is a disadvantage.

Using write with this PR is not enough to ensure no corruption, messages can still be truncated if the pipe buffer fills up.
To avoid that, you have to use write_all, and that can interleave messages even with this PR (because it does multiple calls to write).
The full fix is to use write_all, and share a single writer with an async mutex, instead of having two writers. Once you do that, it also works fine

That's fair! I agree that nothing is wrong about the current behavior, but I was surprised that a Pipe with enough free space (albeit with wraparound) would consume only a portion of the provided read/write. I think #1299 helps a lot to clear this up.
Totally understand if you want to keep the internals interface simple, and require users to do their own looping. The suggestion to use a split reader/writer with an async mutex I think would also work in my case.
No hard feelings if you close this :)

Yeah, I agree it's surprising...
though arguably, if all code doing a single write like that is likely buggy, isn't it better to surface the bug ASAP to the user?
Like, currently the bug will happen on wraparound, which is likely to be noticed. With this PR it'll only happen on buffer full, which might be hard to reproduce, or only happen when the system is under load...


php color syntax issue

Issue Type: Bug
The following color code syntax is wrong
$a = " AND a[".$val['idx']."]";
VS Code version: Code 1.30.2 (61122f88f0bf01e2ac16bdb9e1bc4571755f5bd8, 2019-01-07T22:54:13.295Z)
OS version: Windows_NT x64 10.0.17134

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-3667U CPU @ 2.00GHz (4 x 2494)

GPU Status
2d_canvas: enabledchecker_imaging: disabled_offflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: disabled_softwarerasterization: enabledvideo_decode: enabledvideo_encode: enabledwebgl: enabledwebgl2: enabled

Memory (System)
7.91GB (2.45GB free)

Process Argv

Screen Reader
no

VM
0%

Extensions (2)

Extension
Author (truncated)
Version

php-intellisense
fel
2.3.10

vscode-language-pack-ja
MS-
1.30.2

This appears related to the SQL theme, rather than PHP. Switching SQL to pull Atom's language definitions fix this issue in vs code. The current SQL tmLanguage eats the bracketed section as text.bracketed, while Atom's definition lacks any bracket-matching pattern.

Since the upstream project has been archived, merging this into the general issue for a new SSH grammar. https://github.com/microsoft/vscode/issues/162707