laverdet / node-fibers

Fiber/coroutine support for v8 and node.
MIT License
3.56k stars 224 forks source link

npm install fibers with error(node v12.15.0) #449

Open xinxin11 opened 3 years ago

xinxin11 commented 3 years ago

Hi could you help investigate this issue?

npm install

> fibers@1.0.15 install /Users/cindy/CIS/CIS_UI_E2E/node_modules/wdio-sync/node_modules/fibers
> node build.js || nodejs build.js

  CXX(target) Release/obj.target/fibers/src/fibers.o
../src/fibers.cc:70:58: error: no template named 'Handle'
        void Reset(Isolate* isolate, Persistent<T>& persistent, Handle<T> handle) {
                                                                ^
../src/fibers.cc:83:26: error: no template named 'Handle'
        void SetInternalPointer(Handle<T> handle, int index, void* val) {
                                ^
../src/fibers.cc:87:27: error: no template named 'Handle'
        void* GetInternalPointer(Handle<T> handle, int index) {
                                 ^
../src/fibers.cc:92:2: error: no template named 'Handle'
        Handle<T> Deref(Isolate* isolate, Persistent<T>& handle) {
        ^
../src/fibers.cc:97:14: error: no template named 'Handle'
        void Return(Handle<T> handle, const Arguments& args) {
                    ^
../src/fibers.cc:101:14: error: no template named 'Handle'
        void Return(Handle<T> handle, GetterCallbackInfo info) {
                    ^
../src/fibers.cc:109:2: error: no template named 'Handle'
        Handle<Value> ThrowException(Isolate* isolate, Handle<Value> exception) {
        ^
../src/fibers.cc:109:49: error: no template named 'Handle'
        Handle<Value> ThrowException(Isolate* isolate, Handle<Value> exception) {
                                                       ^
../src/fibers.cc:113:2: error: no template named 'Handle'
        Handle<Context> GetCurrentContext(Isolate* isolate) {
        ^
../src/fibers.cc:114:10: error: no viable conversion from returned value of type 'Local<v8::Context>' to function return type 'int'
                return isolate->GetCurrentContext();
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/fibers.cc:117:2: error: no template named 'Handle'
        Handle<Primitive> Undefined(Isolate* isolate) {
        ^
../src/fibers.cc:118:10: error: no viable conversion from returned value of type 'Local<v8::Primitive>' to function return type 'int'
                return v8::Undefined(isolate);
                       ^~~~~~~~~~~~~~~~~~~~~~
../src/fibers.cc:121:2: error: no template named 'Handle'
        Handle<String> NewLatin1String(Isolate* isolate, const char* string) {
        ^
../src/fibers.cc:122:64: error: too few arguments to function call, expected at least 3, have 2
                return String::NewFromOneByte(isolate, (const uint8_t*)string);
                       ~~~~~~~~~~~~~~~~~~~~~~                                ^
/Users/cindy/Library/Caches/node-gyp/12.15.0/include/node/v8.h:2948:3: note: 'NewFromOneByte' declared here
  static V8_WARN_UNUSED_RESULT MaybeLocal<String> NewFromOneByte(
  ^
../src/fibers.cc:125:2: error: no template named 'Handle'
        Handle<String> NewLatin1Symbol(Isolate* isolate, const char* string) {
        ^
../src/fibers.cc:126:64: error: too few arguments to function call, expected at least 3, have 2
                return String::NewFromOneByte(isolate, (const uint8_t*)string);
                       ~~~~~~~~~~~~~~~~~~~~~~                                ^
/Users/cindy/Library/Caches/node-gyp/12.15.0/include/node/v8.h:2948:3: note: 'NewFromOneByte' declared here
  static V8_WARN_UNUSED_RESULT MaybeLocal<String> NewFromOneByte(
  ^
../src/fibers.cc:129:2: error: no template named 'Handle'
        Handle<Boolean> NewBoolean(Isolate* isolate, bool value) {
        ^
../src/fibers.cc:130:10: error: no viable conversion from returned value of type 'Local<v8::Boolean>' to function return type 'int'
                return Boolean::New(isolate, value);
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/fibers.cc:133:2: error: no template named 'Handle'
        Handle<Number> NewNumber(Isolate* isolate, double value) {
        ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
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 (/Users/cindy/.nvm/versions/node/v12.15.0/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack     at ChildProcess.emit (events.js:223:5)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
gyp ERR! System Darwin 19.6.0
gyp ERR! command "/Users/cindy/.nvm/versions/node/v12.15.0/bin/node" "/Users/cindy/.nvm/versions/node/v12.15.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--release"
gyp ERR! cwd /Users/cindy/CIS/CIS_UI_E2E/node_modules/wdio-sync/node_modules/fibers
gyp ERR! node -v v12.15.0
gyp ERR! node-gyp -v v5.0.5
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`
Alpine users please run: `sudo apk add python make g++`
sh: nodejs: command not found
npm WARN babel-loader@6.4.1 requires a peer of webpack@1 || 2 || ^2.1.0-beta || ^2.2.0-rc but none is installed. You must install peer dependencies yourself.
npm WARN CIS-UI-e2e@0.0.1 No license field.

npm ERR! code ELIFECYCLE
npm ERR! syscall spawn
npm ERR! file sh
npm ERR! errno ENOENT
npm ERR! fibers@1.0.15 install: `node build.js || nodejs build.js`
npm ERR! spawn ENOENT
npm ERR! 
npm ERR! Failed at the fibers@1.0.15 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!     /Users/cindy/.npm/_logs/2021-03-03T06_52_29_620Z-debug.log

From the README if you are running 64-bit nodejs version 12.x or 14.x on Linux, OS X, or Windows (7 or later) then you should be able to install fibers from npm just fine.
I checked my node version is v12.15.0 and my machine is mac os which should run npm install

when I changed the node tov6.10.2, there is no such error. but I need upgrade node version to v12.15.0 or higher version now, When I run same command npm install, I see the above error, What I need do for node v12.15.0 to reslove this issue?

laverdet commented 3 years ago

upgrade fibers

GuyChatfield commented 3 years ago

i am seeing the same for the latest fibers version, (5.0.0) with node 12.16.3. the post install script seems to be from fibers@3.1.1 despite installing 5.0.0?

gavmck commented 3 years ago

Just piping in to say I installed fibers 5.0.0 on node 14.6.0 and now everything works great again. Thanks!

advancedsoftwarecanada commented 12 months ago

Thank you! This took forever to figure out. Working on the exact same versions as gavmck above.

advancedsoftwarecanada commented 4 months ago

Ugh annoying. Going to start removing fibers.

nvm install 16 nvm use 16 npm install fibers

Works as of 6/18/2024

laverdet commented 4 months ago

@advancedsoftwarecanada fibers has been obsolete for 4 years [e2a0ed9c6d985f94c2b1947eaf72d5797e8a3278] and entirely unsupported for 3 years [8f2809869cc92c28c92880c4a38317ae3dbe654d].

tcf909 commented 4 months ago

@advancedsoftwarecanada fibers has been obsolete for 4 years [e2a0ed9] and entirely unsupported for 3 years [8f28098].

But, was absolutely amazing and a true shame for the community to lose :)

And only responding because the throught of this project brings a smile to my face -- truly what JS / Node should have been :)

laverdet commented 3 months ago

Yeah I'm definitely proud of what I built! Happy to be "prior art" in the history book. async/await was definitely the right choice for JS. With fibers you can have hundreds of pending stack. With async/await you can have millions