eclipse-theia / theia

Eclipse Theia is a cloud & desktop IDE framework implemented in TypeScript.
http://theia-ide.org
Eclipse Public License 2.0
20.03k stars 2.5k forks source link

[electron] ffmpeg tests fails on yarn install #5642

Closed zwhitchcox closed 5 years ago

zwhitchcox commented 5 years ago

Description

Running yarn install gives an error

Reproduction Steps

yarn

OS and Theia version: OS: Ubuntu 18.04 cloned version from master: 20251eae573ae89f5cf3242131add17f0ef40956 Diagnostics: ives this error

I already have g++ and build-essential installed, but running yarn gives this error

yarn install v1.16.0
$ node-gyp install
gyp info it worked if it ends with ok
gyp info using node-gyp@3.8.0
gyp info using node@12.4.0 | linux | x64
gyp http GET https://nodejs.org/download/release/v12.4.0/node-v12.4.0-headers.tar.gz
gyp http 200 https://nodejs.org/download/release/v12.4.0/node-v12.4.0-headers.tar.gz
gyp http GET https://nodejs.org/download/release/v12.4.0/SHASUMS256.txt
gyp http 200 https://nodejs.org/download/release/v12.4.0/SHASUMS256.txt
12.4.0
gyp info ok 
[1/5] Validating package.json...
[2/5] Resolving packages...
[3/5] Fetching packages...
warning monaco-languageclient@0.9.0: The engine "vscode" appears to be invalid.
warning vscode-base-languageclient@4.4.0: The engine "vscode" appears to be invalid.
info fsevents@1.2.4: The platform "linux" is incompatible with this module.
info "fsevents@1.2.4" is an optional dependency and failed compatibility check. Excluding it from installation.
[4/5] Linking dependencies...
warning " > istanbul-instrumenter-loader@3.0.1" has unmet peer dependency "webpack@^2.0.0 || ^3.0.0 || ^4.0.0".
warning " > tslint-language-service@0.9.9" has incorrect peer dependency "typescript@>= 2.3.1 < 3".
warning "workspace-aggregator-51536f0b-3a72-4f4e-90a6-10c15f583505 > @theia/application-manager > font-awesome-webpack@0.0.5-beta.2" has unmet peer dependency "font-awesome@>=4.3.0".
warning "workspace-aggregator-51536f0b-3a72-4f4e-90a6-10c15f583505 > @theia/debug > requestretry@3.1.0" has unmet peer dependency "request@2.*.*".
warning "workspace-aggregator-51536f0b-3a72-4f4e-90a6-10c15f583505 > @theia/application-manager > font-awesome-webpack > less-loader@2.2.3" has incorrect peer dependency "less@^2.3.1".
[5/5] Building fresh packages...
[1/14] ⠠ fibers
[6/14] ⠠ @theia/node-pty
[3/14] ⠠ electron
[4/14] ⠠ native-keymap
error /home/zane/dev/theia/node_modules/fibers: Command failed.
Exit code: 127
Command: node build.js || nodejs build.js
Arguments: 
Directory: /home/zane/dev/theia/node_modules/fibers
Output:
gyp info it worked if it ends with ok
gyp info using node-gyp@3.8.0
gyp info using node@12.4.0 | linux | x64
gyp info spawn /usr/bin/python2
gyp info spawn args [
gyp info spawn args   '/home/zane/dev/theia/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args   'binding.gyp',
gyp info spawn args   '-f',
gyp info spawn args   'make',
gyp info spawn args   '-I',
gyp info spawn args   '/home/zane/dev/theia/node_modules/fibers/build/config.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/home/zane/dev/theia/node_modules/node-gyp/addon.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/home/zane/.node-gyp/12.4.0/include/node/common.gypi',
gyp info spawn args   '-Dlibrary=shared_library',
gyp info spawn args   '-Dvisibility=default',
gyp info spawn args   '-Dnode_root_dir=/home/zane/.node-gyp/12.4.0',
gyp info spawn args   '-Dnode_gyp_dir=/home/zane/dev/theia/node_modules/node-gyp',
gyp info spawn args   '-Dnode_lib_file=/home/zane/.node-gyp/12.4.0/<(target_arch)/node.lib',
gyp info spawn args   '-Dmodule_root_dir=/home/zane/dev/theia/node_modules/fibers',
gyp info spawn args   '-Dnode_engine=v8',
gyp info spawn args   '--depth=.',
gyp info spawn args   '--no-parallel',
gyp info spawn args   '--generator-output',
gyp info spawn args   'build',
gyp info spawn args   '-Goutput_dir=.'
gyp info spawn args ]
gyp info spawn make
gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
make: Entering directory '/home/zane/dev/theia/node_modules/fibers/build'
  CXX(target) Release/obj.target/fibers/src/fibers.o
../src/fibers.cc:68:2: error: ‘Handle’ does not name a type; did you mean ‘rand_r’?
  Handle<String> NewLatin1String(Isolate* isolate, const char* string) {
  ^~~~~~
  rand_r
../src/fibers.cc:72:2: error: ‘Handle’ does not name a type; did you mean ‘rand_r’?
  Handle<String> NewLatin1Symbol(Isolate* isolate, const char* string) {
  ^~~~~~
  rand_r
../src/fibers.cc:94:2: error: ‘Handle’ does not name a type; did you mean ‘rand_r’?
  Handle<Object> NewInstance(Isolate* isolate, Local<Function> fn, int argc, Local<Value> argv[]) {
  ^~~~~~
  rand_r
../src/fibers.cc:104:2: error: ‘Handle’ does not name a type; did you mean ‘rand_r’?
  Handle<Number> ToNumber(Local<Value> value) {
  ^~~~~~
  rand_r
../src/fibers.cc:114:50: error: ‘Handle’ has not been declared
  Local<Value> GetStackTrace(TryCatch* try_catch, Handle<Context> context) {
                                                  ^~~~~~
../src/fibers.cc:114:56: error: expected ‘,’ or ‘...’ before ‘<’ token
  Local<Value> GetStackTrace(TryCatch* try_catch, Handle<Context> context) {
                                                        ^
../src/fibers.cc: In function ‘v8::Local<v8::Value> uni::GetStackTrace(uni::TryCatch*, int)’:
../src/fibers.cc:115:32: error: ‘context’ was not declared in this scope
   return try_catch->StackTrace(context).ToLocalChecked();
                                ^~~~~~~
../src/fibers.cc:115:32: note: suggested alternative: ‘setcontext’
   return try_catch->StackTrace(context).ToLocalChecked();
                                ^~~~~~~
                                setcontext
../src/fibers.cc: At global scope:
../src/fibers.cc:127:39: error: ‘Handle’ has not been declared
  void fixStackLimit(Isolate* isolate, Handle<Context> context) {
                                       ^~~~~~
../src/fibers.cc:127:45: error: expected ‘,’ or ‘...’ before ‘<’ token
  void fixStackLimit(Isolate* isolate, Handle<Context> context) {
                                             ^
../src/fibers.cc: In function ‘void uni::fixStackLimit(v8::Isolate*, int)’:
../src/fibers.cc:128:19: error: ‘context’ was not declared in this scope
   Script::Compile(context, uni::NewLatin1String(isolate, "void 0;")).ToLocalChecked();
                   ^~~~~~~
../src/fibers.cc:128:19: note: suggested alternative: ‘setcontext’
   Script::Compile(context, uni::NewLatin1String(isolate, "void 0;")).ToLocalChecked();
                   ^~~~~~~
                   setcontext
../src/fibers.cc:128:33: error: ‘NewLatin1String’ is not a member of ‘uni’
   Script::Compile(context, uni::NewLatin1String(isolate, "void 0;")).ToLocalChecked();
                                 ^~~~~~~~~~~~~~~
../src/fibers.cc: At global scope:
../src/fibers.cc:149:58: error: ‘Handle’ has not been declared
  void Reset(Isolate* isolate, Persistent<T>& persistent, Handle<T> handle) {
                                                          ^~~~~~
../src/fibers.cc:149:64: error: expected ‘,’ or ‘...’ before ‘<’ token
  void Reset(Isolate* isolate, Persistent<T>& persistent, Handle<T> handle) {
                                                                ^
../src/fibers.cc: In function ‘void uni::Reset(v8::Isolate*, v8::Persistent<T, v8::NonCopyablePersistentTraits<T> >&, int)’:
../src/fibers.cc:150:29: error: ‘handle’ was not declared in this scope
   persistent.Reset(isolate, handle);
                             ^~~~~~
../src/fibers.cc:150:29: note: suggested alternative: ‘rand_r’
   persistent.Reset(isolate, handle);
                             ^~~~~~
                             rand_r
../src/fibers.cc: At global scope:
../src/fibers.cc:162:26: error: variable or field ‘SetInternalPointer’ declared void
  void SetInternalPointer(Handle<T> handle, int index, void* val) {
                          ^~~~~~
../src/fibers.cc:162:26: error: ‘Handle’ was not declared in this scope
../src/fibers.cc:162:26: note: suggested alternative: ‘rand_r’
  void SetInternalPointer(Handle<T> handle, int index, void* val) {
                          ^~~~~~
                          rand_r
../src/fibers.cc:162:34: error: expected primary-expression before ‘>’ token
  void SetInternalPointer(Handle<T> handle, int index, void* val) {
                                  ^
../src/fibers.cc:162:36: error: ‘handle’ was not declared in this scope
  void SetInternalPointer(Handle<T> handle, int index, void* val) {
                                    ^~~~~~
../src/fibers.cc:162:36: note: suggested alternative: ‘rand_r’
  void SetInternalPointer(Handle<T> handle, int index, void* val) {
                                    ^~~~~~
                                    rand_r
../src/fibers.cc:162:44: error: expected primary-expression before ‘int’
  void SetInternalPointer(Handle<T> handle, int index, void* val) {
                                            ^~~
../src/fibers.cc:162:55: error: expected primary-expression before ‘void’
  void SetInternalPointer(Handle<T> handle, int index, void* val) {
                                                       ^~~~
../src/fibers.cc:166:27: error: ‘Handle’ was not declared in this scope
  void* GetInternalPointer(Handle<T> handle, int index) {
                           ^~~~~~
../src/fibers.cc:166:27: note: suggested alternative: ‘rand_r’
  void* GetInternalPointer(Handle<T> handle, int index) {
                           ^~~~~~
                           rand_r
../src/fibers.cc:166:35: error: expected primary-expression before ‘>’ token
  void* GetInternalPointer(Handle<T> handle, int index) {
                                   ^
../src/fibers.cc:166:37: error: ‘handle’ was not declared in this scope
  void* GetInternalPointer(Handle<T> handle, int index) {
                                     ^~~~~~
../src/fibers.cc:166:37: note: suggested alternative: ‘rand_r’
  void* GetInternalPointer(Handle<T> handle, int index) {
                                     ^~~~~~
                                     rand_r
../src/fibers.cc:166:45: error: expected primary-expression before ‘int’
  void* GetInternalPointer(Handle<T> handle, int index) {
                                             ^~~
../src/fibers.cc:166:54: error: expression list treated as compound expression in initializer [-fpermissive]
  void* GetInternalPointer(Handle<T> handle, int index) {
                                                      ^
../src/fibers.cc:166:56: error: expected ‘;’ before ‘{’ token
  void* GetInternalPointer(Handle<T> handle, int index) {
                                                        ^
../src/fibers.cc:171:2: error: ‘Handle’ does not name a type; did you mean ‘rand_r’?
  Handle<T> Deref(Isolate* isolate, Persistent<T>& handle) {
  ^~~~~~
  rand_r
../src/fibers.cc:176:14: error: variable or field ‘Return’ declared void
  void Return(Handle<T> handle, const Arguments& args) {
              ^~~~~~
../src/fibers.cc:176:14: error: ‘Handle’ was not declared in this scope
../src/fibers.cc:176:14: note: suggested alternative: ‘rand_r’
  void Return(Handle<T> handle, const Arguments& args) {
              ^~~~~~
              rand_r
../src/fibers.cc:176:22: error: expected primary-expression before ‘>’ token
  void Return(Handle<T> handle, const Arguments& args) {
                      ^
../src/fibers.cc:176:24: error: ‘handle’ was not declared in this scope
  void Return(Handle<T> handle, const Arguments& args) {
                        ^~~~~~
../src/fibers.cc:176:24: note: suggested alternative: ‘rand_r’
  void Return(Handle<T> handle, const Arguments& args) {
                        ^~~~~~
                        rand_r
../src/fibers.cc:176:32: error: expected primary-expression before ‘const’
  void Return(Handle<T> handle, const Arguments& args) {
                                ^~~~~
../src/fibers.cc:180:14: error: variable or field ‘Return’ declared void
  void Return(Handle<T> handle, GetterCallbackInfo info) {
              ^~~~~~
../src/fibers.cc:180:14: error: ‘Handle’ was not declared in this scope
../src/fibers.cc:180:14: note: suggested alternative: ‘rand_r’
  void Return(Handle<T> handle, GetterCallbackInfo info) {
              ^~~~~~
              rand_r
../src/fibers.cc:180:22: error: expected primary-expression before ‘>’ token
  void Return(Handle<T> handle, GetterCallbackInfo info) {
                      ^
../src/fibers.cc:180:24: error: ‘handle’ was not declared in this scope
  void Return(Handle<T> handle, GetterCallbackInfo info) {
                        ^~~~~~
../src/fibers.cc:180:24: note: suggested alternative: ‘rand_r’
  void Return(Handle<T> handle, GetterCallbackInfo info) {
                        ^~~~~~
                        rand_r
../src/fibers.cc:180:51: error: expected primary-expression before ‘info’
  void Return(Handle<T> handle, GetterCallbackInfo info) {
                                                   ^~~~
../src/fibers.cc:188:2: error: ‘Handle’ does not name a type; did you mean ‘rand_r’?
  Handle<Value> ThrowException(Isolate* isolate, Handle<Value> exception) {
  ^~~~~~
  rand_r
../src/fibers.cc:192:2: error: ‘Handle’ does not name a type; did you mean ‘rand_r’?
  Handle<Context> GetCurrentContext(Isolate* isolate) {
  ^~~~~~
  rand_r
../src/fibers.cc:196:2: error: ‘Handle’ does not name a type; did you mean ‘rand_r’?
  Handle<Primitive> Undefined(Isolate* isolate) {
  ^~~~~~
  rand_r
../src/fibers.cc:200:2: error: ‘Handle’ does not name a type; did you mean ‘rand_r’?
  Handle<Boolean> NewBoolean(Isolate* isolate, bool value) {
  ^~~~~~
  rand_r
../src/fibers.cc:204:2: error: ‘Handle’ does not name a type; did you mean ‘rand_r’?
  Handle<Number> NewNumber(Isolate* isolate, double value) {
  ^~~~~~
  rand_r
../src/fibers.cc:208:2: error: ‘Handle’ does not name a type; did you mean ‘rand_r’?
  Handle<FunctionTemplate> NewFunctionTemplate(
  ^~~~~~
  rand_r
../src/fibers.cc:218:2: error: ‘Handle’ does not name a type; did you mean ‘rand_r’?
  Handle<Signature> NewSignature(
  ^~~~~~
  rand_r
../src/fibers.cc:408:17: error: expected ‘;’ at end of member declaration
   static Fiber& Unwrap(Handle<Object> handle) {
                 ^~~~~~
../src/fibers.cc:408:30: error: expected ‘)’ before ‘<’ token
   static Fiber& Unwrap(Handle<Object> handle) {
                              ^
../src/fibers.cc:414:15: error: expected ‘)’ before ‘<’ token
   Fiber(Handle<Object> handle, Handle<Function> cb, Handle<Context> v8_context) :
               ^
../src/fibers.cc:680:3: error: ‘Handle’ does not name a type; did you mean ‘rand_r’?
   Handle<Value> ReturnYielded() {
   ^~~~~~
   rand_r
../src/fibers.cc:842:20: error: ‘Handle’ has not been declared
   static void Init(Handle<Object> target) {
                    ^~~~~~
../src/fibers.cc:842:26: error: expected ‘,’ or ‘...’ before ‘<’ token
   static void Init(Handle<Object> target) {
                          ^
In file included from ../src/fibers.cc:3:0:
../src/fibers.cc: In static member function ‘static void Fiber::WeakCallback(void*)’:
../src/fibers.cc:458:23: error: ‘class v8::Persistent<v8::Object>’ has no member named ‘IsNearDeath’
    assert(that.handle.IsNearDeath());
                       ^
../src/fibers.cc: In static member function ‘static void Fiber::DestroyOrphans()’:
../src/fibers.cc:495:22: error: ‘Deref’ is not a member of ‘uni’
      auto stack(uni::Deref(that.isolate, fatal_stack));
                      ^~~~~
../src/fibers.cc: In static member function ‘static uni::FunctionType Fiber::New(const Arguments&)’:
../src/fibers.cc:10:45: error: ‘ThrowException’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                             ^
../src/fibers.cc:517:5: note: in expansion of macro ‘THROW’
     THROW(Exception::TypeError, "Fiber expects 1 argument");
     ^~~~~
../src/fibers.cc:10:90: error: ‘NewLatin1String’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                          ^
../src/fibers.cc:517:5: note: in expansion of macro ‘THROW’
     THROW(Exception::TypeError, "Fiber expects 1 argument");
     ^~~~~
../src/fibers.cc:10:139: error: return-statement with a value, in function returning 'void' [-fpermissive]
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                                                                           ^
../src/fibers.cc:517:5: note: in expansion of macro ‘THROW’
     THROW(Exception::TypeError, "Fiber expects 1 argument");
     ^~~~~
../src/fibers.cc:10:45: error: ‘ThrowException’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                             ^
../src/fibers.cc:519:5: note: in expansion of macro ‘THROW’
     THROW(Exception::TypeError, "Fiber expects a function");
     ^~~~~
../src/fibers.cc:10:90: error: ‘NewLatin1String’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                          ^
../src/fibers.cc:519:5: note: in expansion of macro ‘THROW’
     THROW(Exception::TypeError, "Fiber expects a function");
     ^~~~~
../src/fibers.cc:10:139: error: return-statement with a value, in function returning 'void' [-fpermissive]
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                                                                           ^
../src/fibers.cc:519:5: note: in expansion of macro ‘THROW’
     THROW(Exception::TypeError, "Fiber expects a function");
     ^~~~~
../src/fibers.cc:521:5: error: ‘Handle’ was not declared in this scope
     Handle<Value> argv[1] = { args[0] };
     ^~~~~~
../src/fibers.cc:521:5: note: suggested alternative: ‘handle’
     Handle<Value> argv[1] = { args[0] };
     ^~~~~~
     handle
../src/fibers.cc:521:17: error: expected primary-expression before ‘>’ token
     Handle<Value> argv[1] = { args[0] };
                 ^
../src/fibers.cc:521:19: error: ‘argv’ was not declared in this scope
     Handle<Value> argv[1] = { args[0] };
                   ^~~~
../src/fibers.cc:521:19: note: suggested alternative: ‘args’
     Handle<Value> argv[1] = { args[0] };
                   ^~~~
                   args
../src/fibers.cc:522:29: error: ‘NewInstance’ is not a member of ‘uni’
     return uni::Return(uni::NewInstance(Isolate::GetCurrent(), uni::Deref(Isolate::GetCurrent(), tmpl)->GetFunction(), 1, argv), args);
                             ^~~~~~~~~~~
../src/fibers.cc:522:69: error: ‘Deref’ is not a member of ‘uni’
     return uni::Return(uni::NewInstance(Isolate::GetCurrent(), uni::Deref(Isolate::GetCurrent(), tmpl)->GetFunction(), 1, argv), args);
                                                                     ^~~~~
../src/fibers.cc:522:134: error: return-statement with a value, in function returning 'void' [-fpermissive]
     return uni::Return(uni::NewInstance(Isolate::GetCurrent(), uni::Deref(Isolate::GetCurrent(), tmpl)->GetFunction(), 1, argv), args);
                                                                                                                                      ^
../src/fibers.cc:525:4: error: ‘Handle’ was not declared in this scope
    Handle<Function> fn = Handle<Function>::Cast(args[0]);
    ^~~~~~
../src/fibers.cc:525:4: note: suggested alternative: ‘handle’
    Handle<Function> fn = Handle<Function>::Cast(args[0]);
    ^~~~~~
    handle
../src/fibers.cc:525:19: error: expected primary-expression before ‘>’ token
    Handle<Function> fn = Handle<Function>::Cast(args[0]);
                   ^
../src/fibers.cc:525:21: error: ‘fn’ was not declared in this scope
    Handle<Function> fn = Handle<Function>::Cast(args[0]);
                     ^~
../src/fibers.cc:525:41: error: expected primary-expression before ‘>’ token
    Handle<Function> fn = Handle<Function>::Cast(args[0]);
                                         ^
../src/fibers.cc:525:44: error: ‘::Cast’ has not been declared
    Handle<Function> fn = Handle<Function>::Cast(args[0]);
                                            ^~~~
../src/fibers.cc:526:36: error: ‘GetCurrentContext’ is not a member of ‘uni’
    new Fiber(args.This(), fn, uni::GetCurrentContext(Isolate::GetCurrent()));
                                    ^~~~~~~~~~~~~~~~~
../src/fibers.cc:527:40: error: no matching function for call to ‘Return(v8::Local<v8::Object>, const Arguments&)’
    return uni::Return(args.This(), args);
                                        ^
../src/fibers.cc:184:7: note: candidate: template<class T> void uni::Return(v8::Persistent<T, v8::NonCopyablePersistentTraits<T> >&, uni::GetterCallbackInfo)
  void Return(Persistent<T>& handle, GetterCallbackInfo info) {
       ^~~~~~
../src/fibers.cc:184:7: note:   template argument deduction/substitution failed:
../src/fibers.cc:527:40: note:   ‘v8::Local<v8::Object>’ is not derived from ‘v8::Persistent<T, v8::NonCopyablePersistentTraits<T> >’
    return uni::Return(args.This(), args);
                                        ^
../src/fibers.cc:527:40: error: return-statement with a value, in function returning 'void' [-fpermissive]
../src/fibers.cc: In static member function ‘static uni::FunctionType Fiber::Run(const Arguments&)’:
../src/fibers.cc:535:38: error: no match for call to ‘(Fiber) (v8::Local<v8::Object>)’
    Fiber& that = Unwrap(args.Holder());
                                      ^
../src/fibers.cc:10:45: error: ‘ThrowException’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                             ^
../src/fibers.cc:541:5: note: in expansion of macro ‘THROW’
     THROW(Exception::Error, "This Fiber is already running");
     ^~~~~
../src/fibers.cc:10:90: error: ‘NewLatin1String’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                          ^
../src/fibers.cc:541:5: note: in expansion of macro ‘THROW’
     THROW(Exception::Error, "This Fiber is already running");
     ^~~~~
../src/fibers.cc:10:139: error: return-statement with a value, in function returning 'void' [-fpermissive]
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                                                                           ^
../src/fibers.cc:541:5: note: in expansion of macro ‘THROW’
     THROW(Exception::Error, "This Fiber is already running");
     ^~~~~
../src/fibers.cc:10:45: error: ‘ThrowException’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                             ^
../src/fibers.cc:543:5: note: in expansion of macro ‘THROW’
     THROW(Exception::TypeError, "run() excepts 1 or no arguments");
     ^~~~~
../src/fibers.cc:10:90: error: ‘NewLatin1String’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                          ^
../src/fibers.cc:543:5: note: in expansion of macro ‘THROW’
     THROW(Exception::TypeError, "run() excepts 1 or no arguments");
     ^~~~~
../src/fibers.cc:10:139: error: return-statement with a value, in function returning 'void' [-fpermissive]
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                                                                           ^
../src/fibers.cc:543:5: note: in expansion of macro ‘THROW’
     THROW(Exception::TypeError, "run() excepts 1 or no arguments");
     ^~~~~
../src/fibers.cc:10:45: error: ‘ThrowException’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                             ^
../src/fibers.cc:554:6: note: in expansion of macro ‘THROW’
      THROW(Exception::RangeError, "Out of memory");
      ^~~~~
../src/fibers.cc:10:90: error: ‘NewLatin1String’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                          ^
../src/fibers.cc:554:6: note: in expansion of macro ‘THROW’
      THROW(Exception::RangeError, "Out of memory");
      ^~~~~
../src/fibers.cc:10:139: error: return-statement with a value, in function returning 'void' [-fpermissive]
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                                                                           ^
../src/fibers.cc:554:6: note: in expansion of macro ‘THROW’
      THROW(Exception::RangeError, "Out of memory");
      ^~~~~
../src/fibers.cc:564:52: error: no matching function for call to ‘Reset(v8::Isolate*&, v8::Persistent<v8::Value>&, v8::Local<v8::Value>)’
      uni::Reset(that.isolate, that.yielded, args[0]);
                                                    ^
../src/fibers.cc:149:7: note: candidate: template<class T> void uni::Reset(v8::Isolate*, v8::Persistent<T, v8::NonCopyablePersistentTraits<T> >&, int)
  void Reset(Isolate* isolate, Persistent<T>& persistent, Handle<T> handle) {
       ^~~~~
../src/fibers.cc:149:7: note:   template argument deduction/substitution failed:
../src/fibers.cc:564:51: note:   cannot convert ‘(& args)->v8::FunctionCallbackInfo<v8::Value>::operator[](0)’ (type ‘v8::Local<v8::Value>’) to type ‘int’
      uni::Reset(that.isolate, that.yielded, args[0]);
                                             ~~~~~~^
../src/fibers.cc:566:57: error: ‘Undefined’ is not a member of ‘uni’
      uni::Reset<Value>(that.isolate, that.yielded, uni::Undefined(that.isolate));
                                                         ^~~~~~~~~
../src/fibers.cc:566:57: note: suggested alternatives:
In file included from /home/zane/.node-gyp/12.4.0/include/node/node.h:63:0,
                 from ../src/coroutine.h:1,
                 from ../src/fibers.cc:1:
/home/zane/.node-gyp/12.4.0/include/node/v8.h:10838:18: note:   ‘v8::Undefined’
 Local<Primitive> Undefined(Isolate* isolate) {
                  ^~~~~~~~~
/home/zane/.node-gyp/12.4.0/include/node/v8.h:10838:18: note:   ‘v8::Undefined’
../src/fibers.cc:570:28: error: ‘class Fiber’ has no member named ‘ReturnYielded’
    return uni::Return(that.ReturnYielded(), args);
                            ^~~~~~~~~~~~~
../src/fibers.cc:570:49: error: return-statement with a value, in function returning 'void' [-fpermissive]
    return uni::Return(that.ReturnYielded(), args);
                                                 ^
../src/fibers.cc: In static member function ‘static uni::FunctionType Fiber::ThrowInto(const Arguments&)’:
../src/fibers.cc:577:38: error: no match for call to ‘(Fiber) (v8::Local<v8::Object>)’
    Fiber& that = Unwrap(args.Holder());
                                      ^
../src/fibers.cc:10:45: error: ‘ThrowException’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                             ^
../src/fibers.cc:580:5: note: in expansion of macro ‘THROW’
     THROW(Exception::Error, "This Fiber is not yielding");
     ^~~~~
../src/fibers.cc:10:90: error: ‘NewLatin1String’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                          ^
../src/fibers.cc:580:5: note: in expansion of macro ‘THROW’
     THROW(Exception::Error, "This Fiber is not yielding");
     ^~~~~
../src/fibers.cc:10:139: error: return-statement with a value, in function returning 'void' [-fpermissive]
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                                                                           ^
../src/fibers.cc:580:5: note: in expansion of macro ‘THROW’
     THROW(Exception::Error, "This Fiber is not yielding");
     ^~~~~
../src/fibers.cc:582:56: error: ‘Undefined’ is not a member of ‘uni’
     uni::Reset<Value>(that.isolate, that.yielded, uni::Undefined(that.isolate));
                                                        ^~~~~~~~~
../src/fibers.cc:582:56: note: suggested alternatives:
In file included from /home/zane/.node-gyp/12.4.0/include/node/node.h:63:0,
                 from ../src/coroutine.h:1,
                 from ../src/fibers.cc:1:
/home/zane/.node-gyp/12.4.0/include/node/v8.h:10838:18: note:   ‘v8::Undefined’
 Local<Primitive> Undefined(Isolate* isolate) {
                  ^~~~~~~~~
/home/zane/.node-gyp/12.4.0/include/node/v8.h:10838:18: note:   ‘v8::Undefined’
../src/fibers.cc:584:51: error: no matching function for call to ‘Reset(v8::Isolate*&, v8::Persistent<v8::Value>&, v8::Local<v8::Value>)’
     uni::Reset(that.isolate, that.yielded, args[0]);
                                                   ^
../src/fibers.cc:149:7: note: candidate: template<class T> void uni::Reset(v8::Isolate*, v8::Persistent<T, v8::NonCopyablePersistentTraits<T> >&, int)
  void Reset(Isolate* isolate, Persistent<T>& persistent, Handle<T> handle) {
       ^~~~~
../src/fibers.cc:149:7: note:   template argument deduction/substitution failed:
../src/fibers.cc:584:50: note:   cannot convert ‘(& args)->v8::FunctionCallbackInfo<v8::Value>::operator[](0)’ (type ‘v8::Local<v8::Value>’) to type ‘int’
     uni::Reset(that.isolate, that.yielded, args[0]);
                                            ~~~~~~^
../src/fibers.cc:10:45: error: ‘ThrowException’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                             ^
../src/fibers.cc:586:5: note: in expansion of macro ‘THROW’
     THROW(Exception::TypeError, "throwInto() expects 1 or no arguments");
     ^~~~~
../src/fibers.cc:10:90: error: ‘NewLatin1String’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                          ^
../src/fibers.cc:586:5: note: in expansion of macro ‘THROW’
     THROW(Exception::TypeError, "throwInto() expects 1 or no arguments");
     ^~~~~
../src/fibers.cc:10:139: error: return-statement with a value, in function returning 'void' [-fpermissive]
 #define THROW(x, m) return uni::ives this error 
Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                                                                           ^
../src/fibers.cc:586:5: note: in expansion of macro ‘THROW’
     THROW(Exception::TypeError, "throwInto() expects 1 or no arguments");
     ^~~~~
../src/fibers.cc:590:28: error: ‘class Fiber’ has no member named ‘ReturnYielded’
    return uni::Return(that.ReturnYielded(), args);
                            ^~~~~~~~~~~~~
../src/fibers.cc:590:49: error: return-statement with a value, in function returning 'void' [-fpermissive]
    return uni::Return(that.ReturnYielded(), args);
                                                 ^
../src/fibers.cc: In static member function ‘static uni::FunctionType Fiber::Reset(const Arguments&)’:
../src/fibers.cc:598:38: error: no match for call to ‘(Fiber) (v8::Local<v8::Object>)’
    Fiber& that = Unwrap(args.Holder());
                                      ^
../src/fibers.cc:601:29: error: ‘Undefined’ is not a member of ‘uni’
     return uni::Return(uni::Undefined(that.isolate), args);
                             ^~~~~~~~~
../src/fibers.cc:601:29: note: suggested alternatives:
In file included from /home/zane/.node-gyp/12.4.0/include/node/node.h:63:0,
                 from ../src/coroutine.h:1,
                 from ../src/fibers.cc:1:
/home/zane/.node-gyp/12.4.0/include/node/v8.h:10838:18: note:   ‘v8::Undefined’
 Local<Primitive> Undefined(Isolate* isolate) {
                  ^~~~~~~~~
/home/zane/.node-gyp/12.4.0/include/node/v8.h:10838:18: note:   ‘v8::Undefined’
../src/fibers.cc:601:58: error: return-statement with a value, in function returning 'void' [-fpermissive]
     return uni::Return(uni::Undefined(that.isolate), args);
                                                          ^
../src/fibers.cc:10:45: error: ‘ThrowException’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                             ^
../src/fibers.cc:603:5: note: in expansion of macro ‘THROW’
     THROW(Exception::Error, "This Fiber is not yielding");
     ^~~~~
../src/fibers.cc:10:90: error: ‘NewLatin1String’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                          ^
../src/fibers.cc:603:5: note: in expansion of macro ‘THROW’
     THROW(Exception::Error, "This Fiber is not yielding");
     ^~~~~
../src/fibers.cc:10:139: error: return-statement with a value, in function returning 'void' [-fpermissive]
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                                                                           ^
../src/fibers.cc:603:5: note: in expansion of macro ‘THROW’
     THROW(Exception::Error, "This Fiber is not yielding");
     ^~~~~
../src/fibers.cc:10:45: error: ‘ThrowException’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                             ^
../src/fibers.cc:605:5: note: in expansion of macro ‘THROW’
     THROW(Exception::TypeError, "reset() expects no arguments");
     ^~~~~
../src/fibers.cc:10:90: error: ‘NewLatin1String’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                          ^
../src/fibers.cc:605:5: note: in expansion of macro ‘THROW’
     THROW(Exception::TypeError, "reset() expects no arguments");
     ^~~~~
../src/fibers.cc:10:139: error: return-statement with a value, in function returning 'void' [-fpermissive]
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                                                                           ^
../src/fibers.cc:605:5: note: in expansion of macro ‘THROW’
     THROW(Exception::TypeError, "reset() expects no arguments");
     ^~~~~
../src/fibers.cc:613:4: error: ‘Handle’ was not declared in this scope
    Handle<Value> val = uni::Deref(that.isolate, that.yielded);
    ^~~~~~
../src/fibers.cc:613:4: note: suggested alternative: ‘handle’
    Handle<Value> val = uni::Deref(that.isolate, that.yielded);
    ^~~~~~
    handle
../src/fibers.cc:613:16: error: expected primary-expression before ‘>’ token
    Handle<Value> val = uni::Deref(that.isolate, that.yielded);
                ^
../src/fibers.cc:613:18: error: ‘val’ was not declared in this scope
    Handle<Value> val = uni::Deref(that.isolate, that.yielded);
                  ^~~
../src/fibers.cc:613:29: error: ‘Deref’ is not a member of ‘uni’
    Handle<Value> val = uni::Deref(that.isolate, that.yielded);
                             ^~~~~
../src/fibers.cc:616:29: error: ‘ThrowException’ is not a member of ‘uni’
     return uni::Return(uni::ThrowException(that.isolate, val), args);
                             ^~~~~~~~~~~~~~
../src/fibers.cc:616:68: error: return-statement with a value, in function returning 'void' [-fpermissive]
     return uni::Return(uni::ThrowException(that.isolate, val), args);
                                                                    ^
../src/fibers.cc:618:33: error: return-statement with a value, in function returning 'void' [-fpermissive]
     return uni::Return(val, args);
                                 ^
../src/fibers.cc: In member function ‘void Fiber::UnwindStack()’:
../src/fibers.cc:635:4: error: ‘Handle’ was not declared in this scope
    Handle<Value> zombie_exception = Exception::Error(uni::NewLatin1String(isolate, "This Fiber is a zombie"));
    ^~~~~~
../src/fibers.cc:635:4: note: suggested alternative: ‘handle’
    Handle<Value> zombie_exception = Exception::Error(uni::NewLatin1String(isolate, "This Fiber is a zombie"));
    ^~~~~~
    handle
../src/fibers.cc:635:16: error: expected primary-expression before ‘>’ token
    Handle<Value> zombie_exception = Exception::Error(uni::NewLatin1String(isolate, "This Fiber is a zombie"));
                ^
../src/fibers.cc:635:59: error: ‘NewLatin1String’ is not a member of ‘uni’
    Handle<Value> zombie_exception = Exception::Error(uni::NewLatin1String(isolate, "This Fiber is a zombie"));
                                                           ^~~~~~~~~~~~~~~
../src/fibers.cc:636:64: error: no matching function for call to ‘Reset(v8::Isolate*&, v8::Persistent<v8::Value>&, v8::Persistent<v8::Value>&)’
    uni::Reset(isolate, this->zombie_exception, zombie_exception);
                                                                ^
../src/fibers.cc:149:7: note: candidate: template<class T> void uni::Reset(v8::Isolate*, v8::Persistent<T, v8::NonCopyablePersistentTraits<T> >&, int)
  void Reset(Isolate* isolate, Persistent<T>& persistent, Handle<T> handle) {
       ^~~~~
../src/fibers.cc:149:7: note:   template argument deduction/substitution failed:
../src/fibers.cc:636:48: note:   cannot convert ‘((Fiber*)this)->Fiber::zombie_exception’ (type ‘v8::Persistent<v8::Value>’) to type ‘int’
    uni::Reset(isolate, this->zombie_exception, zombie_exception);
                                                ^~~~~~~~~~~~~~~~
../src/fibers.cc:637:49: error: no matching function for call to ‘Reset(v8::Isolate*&, v8::Persistent<v8::Value>&, v8::Persistent<v8::Value>&)’
    uni::Reset(isolate, yielded, zombie_exception);
                                                 ^
../src/fibers.cc:149:7: note: candidate: template<class T> void uni::Reset(v8::Isolate*, v8::Persistent<T, v8::NonCopyablePersistentTraits<T> >&, int)
  void Reset(Isolate* isolate, Persistent<T>& persistent, Handle<T> handle) {
       ^~~~~
../src/fibers.cc:149:7: note:   template argument deduction/substitution failed:
../src/fibers.cc:637:33: note:   cannot convert ‘((Fiber*)this)->Fiber::zombie_exception’ (type ‘v8::Persistent<v8::Value>’) to type ‘int’
    uni::Reset(isolate, yielded, zombie_exception);
                                 ^~~~~~~~~~~~~~~~
../src/fibers.cc:650:46: error: ‘Undefined’ is not a member of ‘uni’
     uni::Reset<Value>(isolate, yielded, uni::Undefined(isolate));
                                              ^~~~~~~~~
../src/fibers.cc:650:46: note: suggested alternatives:
In file included from /home/zane/.node-gyp/12.4.0/include/node/node.h:63:0,
                 from ../src/coroutine.h:1,
                 from ../src/fibers.cc:1:
/home/zane/.node-gyp/12.4.0/include/node/v8.h:10838:18: note:   ‘v8::Undefined’
 Local<Primitive> Undefined(Isolate* isolate) {
                  ^~~~~~~~~
/home/zane/.node-gyp/12.4.0/include/node/v8.h:10838:18: note:   ‘v8::Undefined’
../src/fibers.cc: In static member function ‘static void Fiber::RunFiber(void**)’:
../src/fibers.cc:712:5: error: ‘Handle’ was not declared in this scope
     Handle<Context> v8_context = uni::Deref(that.isolate, that.v8_context);
     ^~~~~~
../src/fibers.cc:712:5: note: suggested alternative: ‘handle’
     Handle<Context> v8_context = uni::Deref(that.isolate, that.v8_context);
     ^~~~~~
     handle
../src/fibers.cc:712:19: error: expected primary-expression before ‘>’ token
     Handle<Context> v8_context = uni::Deref(that.isolate, that.v8_context);
                   ^
../src/fibers.cc:712:21: error: invalid use of member ‘Fiber::v8_context’ in static member function
     Handle<Context> v8_context = uni::Deref(that.isolate, that.v8_context);
                     ^~~~~~~~~~
../src/fibers.cc:397:23: note: declared here
   Persistent<Context> v8_context;
                       ^~~~~~~~~~
../src/fibers.cc:712:39: error: ‘Deref’ is not a member of ‘uni’
     Handle<Context> v8_context = uni::Deref(that.isolate, that.v8_context);
                                       ^~~~~
../src/fibers.cc:713:5: error: invalid use of member ‘Fiber::v8_context’ in static member function
     v8_context->Enter();
     ^~~~~~~~~~
../src/fibers.cc:397:23: note: declared here
   Persistent<Context> v8_context;
                       ^~~~~~~~~~
../src/fibers.cc:715:38: error: invalid use of member ‘Fiber::v8_context’ in static member function
     uni::fixStackLimit(that.isolate, v8_context);
                                      ^~~~~~~~~~
../src/fibers.cc:397:23: note: declared here
   Persistent<Context> v8_context;
                       ^~~~~~~~~~ives this error 

../src/fibers.cc:717:17: error: expected primary-expression before ‘>’ token
     Handle<Value> yielded;
                 ^
../src/fibers.cc:717:19: error: invalid use of member ‘Fiber::yielded’ in static member function
     Handle<Value> yielded;
                   ^~~~~~~
../src/fibers.cc:399:21: note: declared here
   Persistent<Value> yielded;
                     ^~~~~~~
../src/fibers.cc:719:18: error: expected primary-expression before ‘>’ token
      Handle<Value> argv[1] = { (*args)[0] };
                  ^
../src/fibers.cc:719:20: error: ‘argv’ was not declared in this scope
      Handle<Value> argv[1] = { (*args)[0] };
                    ^~~~
../src/fibers.cc:719:20: note: suggested alternative: ‘args’
      Handle<Value> argv[1] = { (*args)[0] };
                    ^~~~
                    args
../src/fibers.cc:720:6: error: invalid use of member ‘Fiber::yielded’ in static member function
      yielded = uni::Deref(that.isolate, that.cb)->Call(v8_context->Global(), 1, argv);
      ^~~~~~~
../src/fibers.cc:399:21: note: declared here
   Persistent<Value> yielded;
                     ^~~~~~~
../src/fibers.cc:720:21: error: ‘Deref’ is not a member of ‘uni’
      yielded = uni::Deref(that.isolate, that.cb)->Call(v8_context->Global(), 1, argv);
                     ^~~~~
../src/fibers.cc:720:56: error: invalid use of member ‘Fiber::v8_context’ in static member function
      yielded = uni::Deref(that.isolate, that.cb)->Call(v8_context->Global(), 1, argv);
                                                        ^~~~~~~~~~
../src/fibers.cc:397:23: note: declared here
   Persistent<Context> v8_context;
                       ^~~~~~~~~~
../src/fibers.cc:722:6: error: invalid use of member ‘Fiber::yielded’ in static member function
      yielded = uni::Deref(that.isolate, that.cb)->Call(v8_context->Global(), 0, NULL);
      ^~~~~~~
../src/fibers.cc:399:21: note: declared here
   Persistent<Value> yielded;
                     ^~~~~~~
../src/fibers.cc:722:21: error: ‘Deref’ is not a member of ‘uni’
      yielded = uni::Deref(that.isolate, that.cb)->Call(v8_context->Global(), 0, NULL);
                     ^~~~~
../src/fibers.cc:722:56: error: invalid use of member ‘Fiber::v8_context’ in static member function
      yielded = uni::Deref(that.isolate, that.cb)->Call(v8_context->Global(), 0, NULL);
                                                        ^~~~~~~~~~
../src/fibers.cc:397:23: note: declared here
   Persistent<Context> v8_context;
                       ^~~~~~~~~~
../src/fibers.cc:726:66: error: no matching function for call to ‘Reset(v8::Isolate*&, v8::Persistent<v8::Value>&, v8::Local<v8::Value>)’
      uni::Reset(that.isolate, that.yielded, try_catch.Exception());
                                                                  ^
../src/fibers.cc:149:7: note: candidate: template<class T> void uni::Reset(v8::Isolate*, v8::Persistent<T, v8::NonCopyablePersistentTraits<T> >&, int)
  void Reset(Isolate* isolate, Persistent<T>& persistent, Handle<T> handle) {
       ^~~~~
../src/fibers.cc:149:7: note:   template argument deduction/substitution failed:
../src/fibers.cc:726:64: note:   cannot convert ‘try_catch.uni::TryCatch::<anonymous>.v8::TryCatch::Exception()’ (type ‘v8::Local<v8::Value>’) to type ‘int’
      uni::Reset(that.isolate, that.yielded, try_catch.Exception());
                                             ~~~~~~~~~~~~~~~~~~~^~
../src/fibers.cc:728:50: error: ‘Deref’ is not a member of ‘uni’
      if (that.zombie && !that.resetting && !uni::Deref(that.isolate, that.yielded)->StrictEquals(uni::Deref(that.isolate, that.zombie_exception))) {
                                                  ^~~~~
../src/fibers.cc:728:103: error: ‘Deref’ is not a member of ‘uni’
      if (that.zombie && !that.resetting && !uni::Deref(that.isolate, that.yielded)->StrictEquals(uni::Deref(that.isolate, that.zombie_exception))) {
                                                                                                       ^~~~~
../src/fibers.cc:730:76: error: invalid use of member ‘Fiber::v8_context’ in static member function
       uni::Reset(that.isolate, fatal_stack, uni::GetStackTrace(&try_catch, v8_context));
                                                                            ^~~~~~~~~~
../src/fibers.cc:397:23: note: declared here
   Persistent<Context> v8_context;
                       ^~~~~~~~~~
../src/fibers.cc:733:45: error: invalid use of member ‘Fiber::yielded’ in static member function
      uni::Reset(that.isolate, that.yielded, yielded);
                                             ^~~~~~~
../src/fibers.cc:399:21: note: declared here
   Persistent<Value> yielded;
                     ^~~~~~~
../src/fibers.cc:748:5: error: invalid use of member ‘Fiber::v8_context’ in static member function
     v8_context->Exit();
     ^~~~~~~~~~
../src/fibers.cc:397:23: note: declared here
   Persistent<Context> v8_context;
                       ^~~~~~~~~~
../src/fibers.cc: In static member function ‘static uni::FunctionType Fiber::Yield_(const Arguments&)’:
../src/fibers.cc:10:45: error: ‘ThrowException’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                             ^
../src/fibers.cc:763:5: note: in expansion of macro ‘THROW’
     THROW(Exception::Error, "yield() called with no fiber running");
     ^~~~~
../src/fibers.cc:10:90: error: ‘NewLatin1String’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                          ^
../src/fibers.cc:763:5: note: in expansion of macro ‘THROW’
     THROW(Exception::Error, "yield() called with no fiber running");
     ^~~~~
../src/fibers.cc:10:139: error: return-statement with a value, in function returning 'void' [-fpermissive]
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                                                                           ^
../src/fibers.cc:763:5: note: in expansion of macro ‘THROW’
     THROW(Exception::Error, "yield() called with no fiber running");
     ^~~~~
../src/fibers.cc:769:29: error: ‘ThrowException’ is not a member of ‘uni’
     return uni::Return(uni::ThrowException(that.isolate, uni::Deref(that.isolate, that.zombie_exception)), args);
                             ^~~~~~~~~~~~~~
../src/fibers.cc:769:63: error: ‘Deref’ is not a member of ‘uni’
     return uni::Return(uni::ThrowException(that.isolate, uni::Deref(that.isolate, that.zombie_exception)), args);
                                                               ^~~~~
../src/fibers.cc:769:112: error: return-statement with a value, in function returning 'void' [-fpermissive]
     return uni::Return(uni::ThrowException(that.isolate, uni::Deref(that.isolate, that.zombie_exception)), args);
                                                                                                                ^
../src/fibers.cc:771:74: error: no matching function for call to ‘Reset<v8::Value>(v8::Isolate*&, v8::Persistent<v8::Value>&, v8::Local<v8::Primitive>)’
     uni::Reset<Value>(that.isolate, that.yielded, Undefined(that.isolate));
                                                                          ^
../src/fibers.cc:149:7: note: candidate: template<class T> void uni::Reset(v8::Isolate*, v8::Persistent<T, v8::NonCopyablePersistentTraits<T> >&, int)
  void Reset(Isolate* isolate, Persistent<T>& persistent, Handle<T> handle) {
       ^~~~~
../src/fibers.cc:149:7: note:   template argument deduction/substitution failed:
../src/fibers.cc:771:60: note:   cannot convert ‘v8::Undefined(that.Fiber::isolate)’ (type ‘v8::Local<v8::Primitive>’) to type ‘int’
     uni::Reset<Value>(that.isolate, that.yielded, Undefined(that.isolate));
                                                   ~~~~~~~~~^~~~~~~~~~~~~~
../src/fibers.cc:773:51: error: no matching function for call to ‘Reset(v8::Isolate*&, v8::Persistent<v8::Value>&, v8::Local<v8::Value>)’
     uni::Reset(that.isolate, that.yielded, args[0]);
                                                   ^
../src/fibers.cc:149:7: note: candidate: template<class T> void uni::Reset(v8::Isolate*, v8::Persistent<T, v8::NonCopyablePersistentTraits<T> >&, int)
  void Reset(Isolate* isolate, Persistent<T>& persistent, Handle<T> handle) {
       ^~~~~
../src/fibers.cc:149:7: note:   template argument deduction/substitution failed:
../src/fibers.cc:773:50: note:   cannot convert ‘(& args)->v8::FunctionCallbackInfo<v8::Value>::operator[](0)’ (type ‘v8::Local<v8::Value>’) to type ‘int’
     uni::Reset(that.isolate, that.yielded, args[0]);
                                            ~~~~~~^
../src/fibers.cc:10:45: error: ‘ThrowException’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                             ^
../src/fibers.cc:775:5: note: in expansion of macro ‘THROW’
     THROW(Exception::TypeError, "yield() expects 1 or no arguments");
     ^~~~~
../src/fibers.cc:10:90: error: ‘NewLatin1String’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                          ^
../src/fibers.cc:775:5: note: in expansion of macro ‘THROW’
     THROW(Exception::TypeError, "yield() expects 1 or no arguments");
     ^~~~~
../src/fibers.cc:10:139: error: return-statement with a value, in function returning 'void' [-fpermissive]
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                                                                           ^
../src/fibers.cc:775:5: note: in expansion of macro ‘THROW’
     THROW(Exception::TypeError, "yield() expects 1 or no arguments");
     ^~~~~
../src/fibers.cc:798:28: error: ‘class Fiber’ has no member named ‘ReturnYielded’
    return uni::Return(that.ReturnYielded(), args);
                            ^~~~~~~~~~~~~
../src/fibers.cc:798:49: error: return-statement with a value, in function returning 'void' [-fpermissive]
    return uni::Return(that.ReturnYielded(), args);
                                                 ^
../src/fibers.cc: In static member function ‘static uni::FunctionType Fiber::GetStarted(v8::Local<v8::String>, const GetterCallbackInfo&)’:
../src/fibers.cc:806:29: error: ‘Undefined’ is not a member of ‘uni’
     return uni::Return(uni::Undefined(Isolate::GetCurrent()), info);
                             ^~~~~~~~~
../src/fibers.cc:806:29: note: suggested alternatives:
In file included from /home/zane/.node-gyp/12.4.0/include/node/node.h:63:0,
                 from ../src/coroutine.h:1,
                 from ../src/fibers.cc:1:
/home/zane/.node-gyp/12.4.0/include/node/v8.h:301:27: note:   ‘v8::Undefined’
   friend Local<Primitive> Undefined(Isolate* isolate);
                           ^~~~~~~~~
/home/zane/.node-gyp/12.4.0/include/node/v8.h:301:27: note:   ‘v8::Undefined’
../src/fibers.cc:806:67: error: return-statement with a value, in function returning 'void' [-fpermissive]
     return uni::Return(uni::Undefined(Isolate::GetCurrent()), info);
                                                                   ^
../src/fibers.cc:808:36: error: no match for call to ‘(Fiber) (v8::Local<v8::Object>)’
    Fiber& that = Unwrap(info.This());
                                    ^
../src/fibers.cc:809:28: error: ‘NewBoolean’ is not a member of ‘uni’
    return uni::Return(uni::NewBoolean(that.isolate, that.started), info);
                            ^~~~~~~~~~
../src/fibers.cc:809:72: error: return-statement with a value, in function returning 'void' [-fpermissive]
    return uni::Return(uni::NewBoolean(that.isolate, that.started), info);
                                                                        ^
../src/fibers.cc: In static member function ‘static uni::FunctionType Fiber::GetCurrent(v8::Local<v8::String>, const GetterCallbackInfo&)’:
../src/fibers.cc:816:29: error: ‘Undefined’ is not a member of ‘uni’
     return uni::Return(uni::Undefined(Isolate::GetCurrent()), info);
                             ^~~~~~~~~
../src/fibers.cc:816:29: note: suggested alternatives:
In file included from /home/zane/.node-gyp/12.4.0/include/node/node.h:63:0,
                 from ../src/coroutine.h:1,
                 from ../src/fibers.cc:1:
/home/zane/.node-gyp/12.4.0/include/node/v8.h:301:27: note:   ‘v8::Undefined’
   friend Local<Primitive> Undefined(Isolate* isolate);
                           ^~~~~~~~~
/home/zane/.node-gyp/12.4.0/include/node/v8.h:301:27: note:   ‘v8::Undefined’
../src/fibers.cc:816:67: error: return-statement with a value, in function returning 'void' [-fpermissive]
     return uni::Return(uni::Undefined(Isolate::GetCurrent()), info);
                                                                   ^
../src/fibers.cc: In static member function ‘static uni::FunctionType Fiber::GetPoolSize(v8::Local<v8::String>, const GetterCallbackInfo&)’:
../src/fibers.cc:824:28: error: ‘NewNumber’ is not a member of ‘uni’
    return uni::Return(uni::NewNumber(Isolate::GetCurrent(), Coroutine::pool_size), info);
                            ^~~~~~~~~
../src/fibers.cc:824:88: error: return-statement with a value, in function returning 'void' [-fpermissive]
    return uni::Return(uni::NewNumber(Isolate::GetCurrent(), Coroutine::pool_size), info);
                                                                                        ^
../src/fibers.cc: In static member function ‘static void Fiber::SetPoolSize(v8::Local<v8::String>, v8::Local<v8::Value>, const SetterCallbackInfo&)’:
../src/fibers.cc:828:32: error: ‘ToNumber’ is not a member of ‘uni’
    Coroutine::pool_size = uni::ToNumber(value)->Value();
                                ^~~~~~~~
../src/fibers.cc: In static member function ‘static uni::FunctionType Fiber::GetFibersCreated(v8::Local<v8::String>, const GetterCallbackInfo&)’:
../src/fibers.cc:835:28: error: ‘NewNumber’ is not a member of ‘uni’
    return uni::Return(uni::NewNumber(Isolate::GetCurrent(), Coroutine::coroutines_created()), info);
                            ^~~~~~~~~
../src/fibers.cc:835:99: error: return-statement with a value, in function returning 'void' [-fpermissive]
    return uni::Return(uni::NewNumber(Isolate::GetCurrent(), Coroutine::coroutines_created()), info);
                                                                                                   ^
../src/fibers.cc: In static member function ‘static void Fiber::Init(int)’:
../src/fibers.cc:853:4: error: ‘Handle’ was not declared in this scope
    Handle<FunctionTemplate> tmpl = uni::NewFunctionTemplate(isolate, New);
    ^~~~~~
../src/fibers.cc:853:4: note: suggested alternative: ‘handle’
    Handle<FunctionTemplate> tmpl = uni::NewFunctionTemplate(isolate, New);
    ^~~~~~
    handle
../src/fibers.cc:853:27: error: expected primary-expression before ‘>’ token
    Handle<FunctionTemplate> tmpl = uni::NewFunctionTemplate(isolate, New);
                           ^
../src/fibers.cc:853:41: error: ‘NewFunctionTemplate’ is not a member of ‘uni’
    Handle<FunctionTemplate> tmpl = uni::NewFunctionTemplate(isolate, New);
                                         ^~~~~~~~~~~~~~~~~~~
../src/fibers.cc:853:41: note: suggested alternative: ‘FunctionType’
    Handle<FunctionTemplate> tmpl = uni::NewFunctionTemplate(isolate, New);
                                         ^~~~~~~~~~~~~~~~~~~
                                         FunctionType
../src/fibers.cc:854:41: error: no matching function for call to ‘Reset(v8::Isolate*&, v8::Persistent<v8::FunctionTemplate>&, v8::Persistent<v8::FunctionTemplate>&)’
    uni::Reset(isolate, Fiber::tmpl, tmpl);
                                         ^
../src/fibers.cc:149:7: note: candidate: template<class T> void uni::Reset(v8::Isolate*, v8::Persistent<T, v8::NonCopyablePersistentTraits<T> >&, int)
  void Reset(Isolate* isolate, Persistent<T>& persistent, Handle<T> handle) {
       ^~~~~
../src/fibers.cc:149:7: note:   template argument deduction/substitution failed:
../src/fibers.cc:854:41: note:   cannot convert ‘Fiber::tmpl’ (type ‘v8::Persistent<v8::FunctionTemplate>’) to type ‘int’
    uni::Reset(isolate, Fiber::tmpl, tmpl);
                                         ^
../src/fibers.cc:855:8: error: base operand of ‘->’ has non-pointer type ‘v8::Persistent<v8::FunctionTemplate>’
    tmpl->SetClassName(uni::NewLatin1Symbol(isolate, "Fiber"));
        ^~
../src/fibers.cc:855:28: error: ‘NewLatin1Symbol’ is not a member of ‘uni’
    tmpl->SetClassName(uni::NewLatin1Symbol(isolate, "Fiber"));
                            ^~~~~~~~~~~~~~~
../src/fibers.cc:859:20: error: expected primary-expression before ‘>’ token
    Handle<Signature> sig = uni::NewSignature(isolate, tmpl);
                    ^
../src/fibers.cc:859:22: error: ‘sig’ was not declared in this scope
    Handle<Signature> sig = uni::NewSignature(isolate, tmpl);
                      ^~~
../src/fibers.cc:859:33: error: ‘NewSignature’ is not a member of ‘uni’
    Handle<Signature> sig = uni::NewSignature(isolate, tmpl);
                                 ^~~~~~~~~~~~
../src/fibers.cc:860:8: error: base operand of ‘->’ has non-pointer type ‘v8::Persistent<v8::FunctionTemplate>’
    tmpl->InstanceTemplate()->SetInternalFieldCount(1);
        ^~
../src/fibers.cc:863:25: error: expected primary-expression before ‘>’ token
    Handle<ObjectTemplate> proto = tmpl->PrototypeTemplate();
                         ^
../src/fibers.cc:863:27: error: ‘proto’ was not declared in this scope
    Handle<ObjectTemplate> proto = tmpl->PrototypeTemplate();
                           ^~~~~
../src/fibers.cc:863:39: error: base operand of ‘->’ has non-pointer type ‘v8::Persistent<v8::FunctionTemplate>’
    Handle<ObjectTemplate> proto = tmpl->PrototypeTemplate();
                                       ^~
../src/fibers.cc:864:20: error: ‘NewLatin1Symbol’ is not a member of ‘uni’
    proto->Set(uni::NewLatin1Symbol(isolate, "reset"),
                    ^~~~~~~~~~~~~~~
../src/fibers.cc:865:10: error: ‘NewFunctionTemplate’ is not a member of ‘uni’
     uni::NewFunctionTemplate(isolate, Reset, Handle<Value>(), sig));
          ^~~~~~~~~~~~~~~~~~~
../src/fibers.cc:865:10: note: suggested alternative: ‘FunctionType’
     uni::NewFunctionTemplate(isolate, Reset, Handle<Value>(), sig));
          ^~~~~~~~~~~~~~~~~~~
          FunctionType
../src/fibers.cc:865:58: error: expected primary-expression before ‘>’ token
     uni::NewFunctionTemplate(isolate, Reset, Handle<Value>(), sig));
                                                          ^
../src/fibers.cc:865:60: error: expected primary-expression before ‘)’ token
     uni::NewFunctionTemplate(isolate, Reset, Handle<Value>(), sig));
                                                            ^
../src/fibers.cc:866:20: error: ‘NewLatin1Symbol’ is not a member of ‘uni’
    proto->Set(uni::NewLatin1Symbol(isolate, "run"),
                    ^~~~~~~~~~~~~~~
../src/fibers.cc:867:10: error: ‘NewFunctionTemplate’ is not a member of ‘uni’
     uni::NewFunctionTemplate(isolate, Run, Handle<Value>(), sig));
          ^~~~~~~~~~~~~~~~~~~
../src/fibers.cc:867:10: note: suggested alternative: ‘FunctionType’
     uni::NewFunctionTemplate(isolate, Run, Handle<Value>(), sig));
          ^~~~~~~~~~~~~~~~~~~
          FunctionType
../src/fibers.cc:867:56: error: expected primary-expression before ‘>’ token
     uni::NewFunctionTemplate(isolate, Run, Handle<Value>(), sig));
                                                        ^
../src/fibers.cc:867:58: error: expected primary-expression before ‘)’ token
     uni::NewFunctionTemplate(isolate, Run, Handle<Value>(), sig));
                                                          ^
../src/fibers.cc:868:20: error: ‘NewLatin1Symbol’ is not a member of ‘uni’
    proto->Set(uni::NewLatin1Symbol(isolate, "throwInto"),
                    ^~~~~~~~~~~~~~~
../src/fibers.cc:869:10: error: ‘NewFunctionTemplate’ is not a member of ‘uni’
     uni::NewFunctionTemplate(isolate, ThrowInto, Handle<Value>(), sig));
          ^~~~~~~~~~~~~~~~~~~
../src/fibers.cc:869:10: note: suggested alternative: ‘FunctionType’
     uni::NewFunctionTemplate(isolate, ThrowInto, Handle<Value>(), sig));
          ^~~~~~~~~~~~~~~~~~~
          FunctionType
../src/fibers.cc:869:62: error: expected primary-expression before ‘>’ token
     uni::NewFunctionTemplate(isolate, ThrowInto, Handle<Value>(), sig));
                                                              ^
../src/fibers.cc:869:64: error: expected primary-expression before ‘)’ token
     uni::NewFunctionTemplate(isolate, ThrowInto, Handle<Value>(), sig));
                                                                ^
../src/fibers.cc:870:28: error: ‘NewLatin1Symbol’ is not a member of ‘uni’
    proto->SetAccessor(uni::NewLatin1Symbol(isolate, "started"), GetStarted);
                            ^~~~~~~~~~~~~~~
../src/fibers.cc:873:19: error: expected primary-expression before ‘>’ token
    Handle<Function> yield = uni::NewFunctionTemplate(isolate, Yield_)->GetFunction();
                   ^
../src/fibers.cc:873:21: error: ‘yield’ was not declared in this scope
    Handle<Function> yield = uni::NewFunctionTemplate(isolate, Yield_)->GetFunction();
                     ^~~~~
../src/fibers.cc:873:21: note: suggested alternative: ‘Yield_’
    Handle<Function> yield = uni::NewFunctionTemplate(isolate, Yield_)->GetFunction();
                     ^~~~~
                     Yield_
../src/fibers.cc:873:34: error: ‘NewFunctionTemplate’ is not a member of ‘uni’
    Handle<Function> yield = uni::NewFunctionTemplate(isolate, Yield_)->GetFunction();
                                  ^~~~~~~~~~~~~~~~~~~
../src/fibers.cc:873:34: note: suggested alternative: ‘FunctionType’
    Handle<Function> yield = uni::NewFunctionTemplate(isolate, Yield_)->GetFunction();
                                  ^~~~~~~~~~~~~~~~~~~
                                  FunctionType
../src/fibers.cc:874:17: error: expected primary-expression before ‘>’ token
    Handle<String> sym_yield = uni::NewLatin1Symbol(isolate, "yield");
                 ^
../src/fibers.cc:874:19: error: ‘sym_yield’ was not declared in this scope
    Handle<String> sym_yield = uni::NewLatin1Symbol(isolate, "yield");
                   ^~~~~~~~~
../src/fibers.cc:874:19: note: suggested alternative: ‘sched_yield’
    Handle<String> sym_yield = uni::NewLatin1Symbol(isolate, "yield");
                   ^~~~~~~~~
                   sched_yield
../src/fibers.cc:874:36: error: ‘NewLatin1Symbol’ is not a member of ‘uni’
    Handle<String> sym_yield = uni::NewLatin1Symbol(isolate, "yield");
                                    ^~~~~~~~~~~~~~~
../src/fibers.cc:875:4: error: ‘target’ was not declared in this scope
    target->Set(sym_yield, yield);
    ^~~~~~
../src/fibers.cc:875:4: note: suggested alternative: ‘started’
    target->Set(sym_yield, yield);
    ^~~~~~
    started
../src/fibers.cc:878:19: error: expected primary-expression before ‘>’ token
    Handle<Function> fn = tmpl->GetFunction();
                   ^
../src/fibers.cc:878:21: error: ‘fn’ was not declared in this scope
    Handle<Function> fn = tmpl->GetFunction();
                     ^~
../src/fibers.cc:878:30: error: base operand of ‘->’ has non-pointer type ‘v8::Persistent<v8::FunctionTemplate>’
    Handle<Function> fn = tmpl->GetFunction();
                              ^~
../src/fibers.cc:880:39: error: ‘NewLatin1Symbol’ is not a member of ‘uni’
    uni::SetAccessor(isolate, fn, uni::NewLatin1Symbol(isolate, "current"), GetCurrent);
                                       ^~~~~~~~~~~~~~~
../src/fibers.cc:881:39: error: ‘NewLatin1Symbol’ is not a member of ‘uni’
    uni::SetAccessor(isolate, fn, uni::NewLatin1Symbol(isolate, "poolSize"), GetPoolSize, SetPoolSize);
                                       ^~~~~~~~~~~~~~~
../src/fibers.cc:882:39: error: ‘NewLatin1Symbol’ is not a member of ‘uni’
    uni::SetAccessor(isolate, fn, uni::NewLatin1Symbol(isolate, "fibersCreated"), GetFibersCreated);
                                       ^~~~~~~~~~~~~~~
../src/fibers.cc:885:21: error: ‘NewLatin1Symbol’ is not a member of ‘uni’
    target->Set(uni::NewLatin1Symbol(isolate, "Fiber"), fn);
                     ^~~~~~~~~~~~~~~
../src/fibers.cc: At global scope:
../src/fibers.cc:901:11: error: variable or field ‘init’ declared void
 void init(Handle<Object> target) {
           ^~~~~~
../src/fibers.cc:901:11: error: ‘Handle’ was not declared in this scope
../src/fibers.cc:901:11: note: suggested alternative: ‘rand_r’
 void init(Handle<Object> target) {
           ^~~~~~
           rand_r
../src/fibers.cc:901:24: error: expected primary-expression before ‘>’ token
 void init(Handle<Object> target) {
                        ^
../src/fibers.cc:901:26: error: ‘target’ was not declared in this scope
 void init(Handle<Object> target) {
                          ^~~~~~
../src/fibers.cc:901:26: note: suggested alternative: ‘tzset’
 void init(Handle<Object> target) {
                          ^~~~~~
                          tzset
In file included from ../src/coroutine.h:1:0,
                 from ../src/fibers.cc:1:
../src/fibers.cc:916:21: error: ‘init’ was not declared in this scope
 NODE_MODULE(fibers, init)
                     ^
/home/zane/.node-gyp/12.4.0/include/node/node.h:556:36: note: in definition of macro ‘NODE_MODULE_X’
       (node::addon_register_func) (regfunc),                          \
                                    ^~~~~~~
../src/fibers.cc:916:1: note: in expansion of macro ‘NODE_MODULE’
 NODE_MODULE(fibers, init)
 ^~~~~~~~~~~
../src/fibers.cc:916:21: note: suggested alternative: ‘int’
 NODE_MODULE(fibers, init)
                     ^
/home/zane/.node-gyp/12.4.0/include/node/node.h:556:36: note: in definition of macro ‘NODE_MODULE_X’
       (node::addon_register_func) (regfunc),                          \
                                    ^~~~~~~
../src/fibers.cc:916:1: note: in expansion of macro ‘NODE_MODULE’
 NODE_MODULE(fibers, init)
 ^~~~~~~~~~~
../src/fibers.cc: In instantiation of ‘void uni::Return(v8::Persistent<T, v8::NonCopyablePersistentTraits<T> >&, uni::GetterCallbackInfo) [with T = v8::Object; uni::GetterCallbackInfo = v8::PropertyCallbackInfo<v8::Value>]’:
../src/fibers.cc:814:45:   required from here
../src/fibers.cc:185:3: warning: ‘void v8::ReturnValue<T>::Set(const v8::Persistent<S>&) [with S = v8::Object; T = v8::Value]’ is deprecated: Use Global<> instead [-Wdeprecated-declarations]
   info.GetReturnValue().Set(handle);
   ^~~~
In file included from /home/zane/.node-gyp/12.4.0/include/node/node.h:63:0,
                 from ../src/coroutine.h:1,
                 from ../src/fibers.cc:1:
/home/zane/.node-gyp/12.4.0/include/node/v8.h:9990:6: note: declared here
 void ReturnValue<T>::Set(const Persistent<S>& handle) {
      ^~~~~~~~~~~~~~
fibers.target.mk:116: recipe for target 'Release/obj.target/fibers/src/fibers.o' failed
make: Leaving directory '/home/zane/dev/theia/node_modules/fibers/build'
make: *** [Release/obj.target/fibers/src/fibers.o] Error 1
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/home/zane/dev/theia/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 4.18.0-25-generic
gyp ERR! command "/home/zane/.nvm/versions/node/v12.4.0/bin/node" "/home/zane/dev/theia/node_modules/.bin/node-gyp" "rebuild" "--release"
gyp ERR! cwd /home/zane/dev/theia/node_modules/fibers
gyp ERR! node -v v12.4.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok 
node-gyp exited with code: 1
Please make sure you are using a supported platform and node version. If you
would like to compile fibers on this machine please make sure you have setup your
build environment--
Windows + OS X instructions here: https://github.com/nodejs/node-gyp
Ubuntu users please run: `sudo apt-get install g++ build-essential`

Running sudo apt-get install g++ build-essential gives

Reading package lists... Done
Building dependency tree       
Reading state information... Done
build-essential is already the newest version (12.4ubuntu1).
g++ is already the newest version (4:7.4.0-1ubuntu2.3).
The following packages were automatically installed and are no longer required:
  activity-log-manager gtk2-engines-xfce libgeonames-common libgeonames0 libkeybinder-3.0-0 libllvm7 libllvm7:i386 libnm-gtk0 libnvidia-common-390 libreadline7:i386
  libtimezonemap-data libtimezonemap1 libunity-control-center1 libwayland-server0:i386 libxfce4ui-utils ocl-icd-libopencl1:i386 orage thunar thunar-volman wine-stable
  wine-stable-amd64 wine-stable-i386:i386 xfce4-appfinder xfce4-panel xfce4-pulseaudio-plugin
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 47 not upgraded.
kittaakos commented 5 years ago

We do not yet support Node.js 12+, please use 10.x. For instance, 10.16.0.

I am closing this.

zwhitchcox commented 5 years ago

Ok, I just downgraded to 10.16.0, and I'm still getting this error

yarn install v1.16.0
$ node-gyp install
gyp info it worked if it ends with ok
gyp info using node-gyp@3.8.0
gyp info using node@10.15.0 | linux | x64
gyp http GET https://nodejs.org/download/release/v10.15.0/node-v10.15.0-headers.tar.gz
gyp http 200 https://nodejs.org/download/release/v10.15.0/node-v10.15.0-headers.tar.gz
gyp http GET https://nodejs.org/download/release/v10.15.0/SHASUMS256.txt
gyp http 200 https://nodejs.org/download/release/v10.15.0/SHASUMS256.txt
10.15.0
gyp info ok 
[1/5] Validating package.json...
[2/5] Resolving packages...
[3/5] Fetching packages...
warning monaco-languageclient@0.9.0: The engine "vscode" appears to be invalid.
warning vscode-base-languageclient@4.4.0: The engine "vscode" appears to be invalid.
info fsevents@1.2.4: The platform "linux" is incompatible with this module.
info "fsevents@1.2.4" is an optional dependency and failed compatibility check. Excluding it from installation.
[4/5] Linking dependencies...
warning " > istanbul-instrumenter-loader@3.0.1" has unmet peer dependency "webpack@^2.0.0 || ^3.0.0 || ^4.0.0".
warning " > tslint-language-service@0.9.9" has incorrect peer dependency "typescript@>= 2.3.1 < 3".
warning "workspace-aggregator-4f76d8a8-204d-4468-84da-b4581e4fd297 > @theia/application-manager > font-awesome-webpack@0.0.5-beta.2" has unmet peer dependency "font-awesome@>=4.3.0".
warning "workspace-aggregator-4f76d8a8-204d-4468-84da-b4581e4fd297 > @theia/debug > requestretry@3.1.0" has unmet peer dependency "request@2.*.*".
warning "workspace-aggregator-4f76d8a8-204d-4468-84da-b4581e4fd297 > @theia/application-manager > font-awesome-webpack > less-loader@2.2.3" has incorrect peer dependency "less@^2.3.1".
[5/5] Building fresh packages...
[8/14] ⠠ oniguruma
[10/14] ⠠ find-git-repositories
[9/14] ⠠ vscode-ripgrep
[11/14] ⠠ @theia/electron
error /home/zane/dev/theia/node_modules/@theia/electron: Command failed.
Exit code: 127
Command: node scripts/post-install.js
Arguments: 
Directory: /home/zane/dev/theia/node_modules/@theia/electron
Output:
gyp info it worked if it ends with ok
gyp info using node-gyp@3.8.0
gyp info using node@10.15.0 | linux | x64
gyp info spawn /usr/bin/python2
gyp info spawn args [ '/home/zane/dev/theia/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args   'binding.gyp',
gyp info spawn args   '-f',
gyp info spawn args   'make',
gyp info spawn args   '-I',
gyp info spawn args   '/home/zane/dev/theia/dev-packages/electron/native/build/config.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/home/zane/dev/theia/node_modules/node-gyp/addon.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/home/zane/.node-gyp/10.15.0/include/node/common.gypi',
gyp info spawn args   '-Dlibrary=shared_library',
gyp info spawn args   '-Dvisibility=default',
gyp info spawn args   '-Dnode_root_dir=/home/zane/.node-gyp/10.15.0',
gyp info spawn args   '-Dnode_gyp_dir=/home/zane/dev/theia/node_modules/node-gyp',
gyp info spawn args   '-Dnode_lib_file=/home/zane/.node-gyp/10.15.0/<(target_arch)/node.lib',
gyp info spawn args   '-Dmodule_root_dir=/home/zane/dev/theia/dev-packages/electron/native',
gyp info spawn args   '-Dnode_engine=v8',
gyp info spawn args   '--depth=.',
gyp info spawn args   '--no-parallel',
gyp info spawn args   '--generator-output',
gyp info spawn args   'build',
gyp info spawn args   '-Goutput_dir=.' ]
gyp info spawn make
gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
make: Entering directory '/home/zane/dev/theia/dev-packages/electron/native/build'
  CC(target) Release/obj.target/ffmpeg/src/ffmpeg.o
  CC(target) Release/obj.target/ffmpeg/src/linux-ffmpeg.o
  SOLINK_MODULE(target) Release/obj.target/ffmpeg.node
  COPY Release/ffmpeg.node
make: Leaving directory '/home/zane/dev/theia/dev-packages/electron/native/build'
gyp info ok 
Found cached ffmpeg library.
Hashes are equal, not replacing the ffmpeg library.
Error: 2 bad / 18 found
> h264 detected (H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10)
> aac detected (AAC (Advanced Audio Coding))
    at main (/home/zane/dev/theia/dev-packages/electron/electron-codecs-test.js:64:15)
    at Object.<anonymous> (/home/zane/dev/theia/dev-packages/electron/electron-codecs-test.js:70:1)
    at Module._compile (internal/modules/cjs/loader.js:689:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
    at Function.Module._load (internal/modules/cjs/loader.js:530:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:743:3)
Error: "electron-codecs-test.js" exited with 127
    at ChildProcess.subprocess.once (/home/zane/dev/theia/dev-packages/electron/scripts/post-install.js:36:40)
kittaakos commented 5 years ago

Hashes are equal, not replacing the ffmpeg library. Error: 2 bad / 18 found h264 detected (H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10) aac detected (AAC (Advanced Audio Coding))

Can you please assist with this @marechal-p? Thank you!

kittaakos commented 5 years ago

@zwhitchcox, since you build it from the source, you can get rid of the electron ffmpg checks: https://github.com/theia-ide/theia/blob/20251eae573ae89f5cf3242131add17f0ef40956/dev-packages/electron/package.json#L34

If you remove this from the package.json it should not check the codecs. Note, this is just a dirty workaround.

Update: Some details about the codec issue in electron: https://spectrum.chat/theia/dev/cq-issue-lgpl-content-distributed-with-electron~65c94009-dd54-44f2-9811-2dd04d5ffd83

zwhitchcox commented 5 years ago

Ok, that got it to work!

paul-marechal commented 5 years ago

The ffmpeg replacement downloads a "clean" library version, then caches the download, and finally compares hashes to see if it needs to replace anything.

From the last logs you sent, it says it found something cached, and that it was identical to the library already installed. Then the test detects the codecs we don't want to distribute. This is not normal, but it is what we wanted to detect.

Can you git clean -xfd your installation and rebuild everything?

vellengs commented 5 years ago

I got similar errors:

yarn 
yarn install v1.13.0
$ node-gyp install
gyp info it worked if it ends with ok
gyp info using node-gyp@3.8.0
gyp info using node@10.15.1 | darwin | x64
gyp http GET https://nodejs.org/download/release/v10.15.1/node-v10.15.1-headers.tar.gz
gyp http 200 https://nodejs.org/download/release/v10.15.1/node-v10.15.1-headers.tar.gz
gyp http GET https://nodejs.org/download/release/v10.15.1/SHASUMS256.txt
gyp http 200 https://nodejs.org/download/release/v10.15.1/SHASUMS256.txt
10.15.1
gyp info ok 
[1/5] 🔍  Validating package.json...
[2/5] 🔍  Resolving packages...
[3/5] 🚚  Fetching packages...
warning monaco-languageclient@0.9.0: The engine "vscode" appears to be invalid.
warning vscode-base-languageclient@4.4.0: The engine "vscode" appears to be invalid.
[4/5] 🔗  Linking dependencies...
warning " > istanbul-instrumenter-loader@3.0.1" has unmet peer dependency "webpack@^2.0.0 || ^3.0.0 || ^4.0.0".
warning " > tslint-language-service@0.9.9" has incorrect peer dependency "typescript@>= 2.3.1 < 3".
warning "workspace-aggregator-39f402cb-e281-4e11-b157-0c49737d9267 > @theia/application-manager > font-awesome-webpack@0.0.5-beta.2" has unmet peer dependency "font-awesome@>=4.3.0".
warning "workspace-aggregator-39f402cb-e281-4e11-b157-0c49737d9267 > @theia/debug > requestretry@3.1.0" has unmet peer dependency "request@2.*.*".
warning "workspace-aggregator-39f402cb-e281-4e11-b157-0c49737d9267 > @theia/application-manager > font-awesome-webpack > less-loader@2.2.3" has incorrect peer dependency "less@^2.3.1".
[5/5] 🔨  Building fresh packages...
[6/15] ⠐ nsfw
[-/15] ⠐ waiting...
[11/15] ⠐ find-git-repositories
[9/15] ⠐ oniguruma
error /Users/xxxxxxx/projects/vellengs/theia/node_modules/@theia/electron: Command failed.
Exit code: 127
Command: node scripts/post-install.js
Arguments: 
Directory: /Users/xxxxxxx/projects/vellengs/theia/node_modules/@theia/electron
Output:
gyp info it worked if it ends with ok
gyp info using node-gyp@3.8.0
gyp info using node@10.15.1 | darwin | x64
gyp info spawn /usr/local/bin/python
gyp info spawn args [ '/Users/xxxxxxx/projects/vellengs/theia/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args   'binding.gyp',
gyp info spawn args   '-f',
gyp info spawn args   'make',
gyp info spawn args   '-I',
gyp info spawn args   '/Users/xxxxxxx/projects/vellengs/theia/dev-packages/electron/native/build/config.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/Users/xxxxxxx/projects/vellengs/theia/node_modules/node-gyp/addon.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/Users/xxxxxxx/.node-gyp/10.15.1/include/node/common.gypi',
gyp info spawn args   '-Dlibrary=shared_library',
gyp info spawn args   '-Dvisibility=default',
gyp info spawn args   '-Dnode_root_dir=/Users/xxxxxxx/.node-gyp/10.15.1',
gyp info spawn args   '-Dnode_gyp_dir=/Users/xxxxxxx/projects/vellengs/theia/node_modules/node-gyp',
gyp info spawn args   '-Dnode_lib_file=/Users/xxxxxxx/.node-gyp/10.15.1/<(target_arch)/node.lib',
gyp info spawn args   '-Dmodule_root_dir=/Users/xxxxxxx/projects/vellengs/theia/dev-packages/electron/native',
gyp info spawn args   '-Dnode_engine=v8',
gyp info spawn args   '--depth=.',
gyp info spawn args   '--no-parallel',
gyp info spawn args   '--generator-output',
gyp info spawn args   'build',
gyp info spawn args   '-Goutput_dir=.' ]
gyp info spawn make
gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
  CC(target) Release/obj.target/ffmpeg/src/ffmpeg.o
  CC(target) Release/obj.target/ffmpeg/src/mac-ffmpeg.o
  SOLINK_MODULE(target) Release/ffmpeg.node
gyp info ok 
Error: 2 bad / 18 found
> h264 detected (H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10)
> aac detected (AAC (Advanced Audio Coding))
    at main (/Users/xxxxxxx/projects/vellengs/theia/dev-packages/electron/electron-codecs-test.js:64:15)
    at Object.<anonymous> (/Users/xxxxxxx/projects/vellengs/theia/dev-packages/electron/electron-codecs-test.js:70:1)
    at Module._compile (internal/modules/cjs/loader.js:689:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
    at Function.Module._load (internal/modules/cjs/loader.js:530:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:743:3)
Error: "electron-codecs-test.js" exited with 127
    at ChildProcess.subprocess.once (/Users/xxxxxxx/projects/vellengs/theia/dev-packages/electron/scripts/post-install.js:36:40)
    at Object.onceWrapper (events.js:277:13)
    at ChildProcess.emit (events.js:189:13)
kittaakos commented 5 years ago

Thanks for reporting it, @vellengs. Did you try?

Can you git clean -xfd your installation and rebuild everything?

vellengs commented 5 years ago

Still trying that ...

vellengs commented 5 years ago

@kittaakos It works.

marcdumais-work commented 5 years ago

closing this issue for now - reopen if needed