After upgrading to node current 13.0.0 fibers install fails with the following error
JoshuaVSherman opened this issue · 17 comments
make: Entering directory '/home/joshuasherman/Gitlab/V-Alert/front-end/node_modules/fibers/build'
CXX(target) Release/obj.target/fibers/src/fibers.o
../src/fibers.cc: In static member function ‘static void Fiber::Init(v8::Localv8::Object)’:
../src/fibers.cc:899:32: error: no matching function for call to ‘v8::Object::Set(v8::Localv8::String&, v8::Localv8::Function&)’
target->Set(sym_yield, yield);
if I downgrade back to nodejs 12.13.0, fibers installs without any issues
This is addressed in the FAQ you clicked through when you opened this issue:
- If you are having problems with an odd-numbered version of nodejs please try again with an even-numbered version instead. The nodejs team doesn't do a good job of communicating this but odd-numbered versions are basically beta versions.
Do you have a reference for that? nvm install stable
installs 13.0.0, which seems to suggest that it's stable, and https://nodejs.org/en/about/releases/ lists it as "Current", which is the same status that version 12 had until today. Just because 12 is going into long-term maintenance and 13 won't doesn't mean 13 is a beta release.
They touch on it in this blog post: https://nodejs.org/en/blog/community/node-v5/
"The Current release line will focus on active development of necessary features and refinement of existing APIs" is a nice way of saying they can break the API whenever they want, especially the native source API and ABI. During the development of nodejs 7.x they bumped the ABI 3 times which was a big headache for me to keep up with pushing binaries. After that I called it quits on maintaining for non-LTS.
Forcing your downstream users to avoid stable Node releases is a big headache for us. Fibers' incompatibility with Node 13 broke Sass's automated build and forced us to delay an important bug fix release, and until it's fixed we don't really have a way of testing our own code against v13.
Per the link you posted for node versions:
"Production applications should only use Active LTS or Maintenance LTS releases."
You might use the term "stable" but if your not suppose to run your real apps on it how "stable" can it really be?
I think your confusing NVM terms with Node terms with terms that make practical sense. You might open a ticket with NVM and ask them to clarify and align their terminology (since NVM itself is just another open source package not officially affiliated with Node).
With regard to Fibers: There is a very clear policy posted in the Readme. Be thankful Fibers is as well supported as it is. @laverdet does way more than most maintainers to make sure the library keeps up with the constant change - we all owe him our thanks and support.
I pushed a quick source fix to npm [4.0.2] that may fix your issue. I won't maintain the binaries but if you have a compiler set up correctly it should build and run now.
Basically what you are saying is we who are actively developing projects that use 13.0.0 (whether they are production or development releases) will not be able to use Fibers. We either need to downgrade nodejs to 12.13.0 or find a different alternative to Fibers.
Reliably, yes.
The Node.js team is very clear that people should not be using odd releases in production. I think it's an unreasonable demand on a project like Fibers to provide support for something most people won't/shouldn't be using. Although if this is so important I think a PR would be welcomed.
Excerpt from Node.js latest blog post about v13
This release won’t be promoted to LTS so we don’t recommend it for production
no it still doesn't work, just tried again using 13.0.1 version of nodejs
Does it give you an error message??
And you're trying install 4.0.2 from npm and not 4.0.1?
fyi even with compiler its not building for node 13 at least on win
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
fibers.cc
coroutine.cc
win_delay_load_hook.cc
c:\dev\pycharmprojects\stampinup.ordering.frontend\node_modules\fibers\src\fibers.cc(899): error C2661: 'v8::Object::Set': no overloaded function takes 2 arguments [C:\Dev\PycharmProjects\StampinUp.Ordering.Frontend\node_modules\fibers\build\fibers.vcxproj]
c:\dev\pycharmprojects\stampinup.ordering.frontend\node_modules\fibers\src\fibers.cc(903): error C2661: 'v8::Object::Set': no overloaded function takes 2 arguments [C:\Dev\PycharmProjects\StampinUp.Ordering.Frontend\node_modules\fibers\build\fibers.vcxproj]
c:\dev\pycharmprojects\stampinup.ordering.frontend\node_modules\fibers\src\fibers.cc(909): error C2661: 'v8::Object::Set': no overloaded function takes 2 arguments [C:\Dev\PycharmProjects\StampinUp.Ordering.Frontend\node_modules\fibers\build\fibers.vcxproj]
c:\dev\pycharmprojects\stampinup.ordering.frontend\node_modules\fibers\src\fibers.cc(927): error C2661: 'v8::Object::Get': no overloaded function takes 1 arguments [C:\Dev\PycharmProjects\StampinUp.Ordering.Frontend\node_modules\fibers\build\fibers.vcxproj]
c:\dev\pycharmprojects\stampinup.ordering.frontend\node_modules\fibers\src\coroutine.cc(153): warning C4552: '!': result of expression not used [C:\Dev\PycharmProjects\StampinUp.Ordering.Frontend\node_modules\fibers\build\fibers.vcxproj]
@aldarund please confirm that you are trying to build fibers@4.0.2 and not fibers@4.0.1.
oh, ye, it might be it, in lock file it was 4.0.1 . I`l try tomorrow, for now i reverted to node 12