Comments (15)
I'll file my own bug (on the simdjson repo, or here?) with reproduction instructions once I have them for GCC 14, as I can still hit it with the fixes for that bug you linked.
Yeah. If you have reproduction instructions, then file the bug with the libraries, we will fix it there. That would be best. It is easy afterward to bump automagically the fix to Node.
Cheers!!!!
from node.
For people reading this. GCC 14 introduced a breaking change (and possibly LLVM 18 followed suit though I am not sure) whereas the value of some macros can change within the same execution unit (something that did not happen before). This has caused breakage in some libraries.
Gentoo users caught the issue because they are using a bleeding edge compiler (GCC 14) to compile Node from source.
Bug https://bugs.gentoo.org/931150 was marked fixed : the patch is to update simdjson to 3.9.1 or better.
Bug https://bugs.gentoo.org/931267 remains unconfirmed, but it is reported as not happening with GCC 13.2.1. At a glance, it looks like a duplicate of https://bugs.gentoo.org/931150
It is likely that all that is needed to fix this is for Node.js to adopt the latest versions of simdjson which should happen automagically.
from node.
from node.
Gentoo bug https://bugs.gentoo.org/931267
from node.
This didn't happen with node 20.12.1 which used the older simd
Can you elaborate?
from node.
We've had a few people hit this. I can hit something similar with -march=native
on znver2 (3950x) with GCC 14 (https://bugs.gentoo.org/931150).
EDIT: @lemire, would you prefer it if I file a separate bug for the GCC 14 issue? It's probably related but it might well be distinct.
from node.
Hmm seems it is happening with nodejs 20.12.1 too, I wonder if something has happened in a clang-18.1.x update
from node.
I bet it's ninja 1.12.0
from node.
it is happening with nodejs 20.12.1 too
We had an issue that would be triggered by GCC 14... (e.g., see simdutf fix), but this was fixed (for simdutf) in 5.2.3. Node 22.1.0 has recent versions of simdutf and simdjson that are not affected by such issues.
There is currently no known build issues reported directly against simdjson and simdutf (which share a similar runtime dispatching).
I find it suspicious that there would be an issue affecting both GCC and LLVM at the same time... and going back to previous Node versions.
from node.
I'll file my own bug (on the simdjson repo, or here?) with reproduction instructions once I have them for GCC 14, as I can still hit it with the fixes for that bug you linked.
from node.
gcc version 13.2.1 20240503 (Gentoo 13.2.1_p20240503 p15) works with Nodejs 20.12.1 & 21.1.0
Clang 18.1.5 doesn't build 20.12.1 or 21.1.0
Clang 18.1.3 successfully built 20.12.1 back on 16/04/24
from my logs I can see:
1712284321: ::: completed emerge (6 of 12) sys-devel/clang-18.1.3 to /
1713263296: ::: completed emerge (2 of 5) net-libs/nodejs-20.12.1 to /
1713485952: ::: completed emerge (6 of 15) sys-devel/clang-18.1.4 to /
1715029866: ::: completed emerge (21 of 39) sys-devel/clang-18.1.5 to /
from node.
@thesamesam @FireBurn Can you verify that you are building the correct dependencies in gentoo? That is, Node 22.1 should use simdjson 3.8.0 (or better) and simdutf 5.2.4 (or better). That is what the current Node releases are built with.
from node.
If you want to build with GCC 14 (currently not used in Node.js releases), you need simdjson 3.9.1.
Version 3.9.1 is not yet available in Node but should be shortly.
from node.
I am currently installing gentoo (latest) and it seems to be using GCC 13.2.1.
from node.
@thesamesam @FireBurn Can you verify that you are building the correct dependencies in gentoo? That is, Node 22.1 should use simdjson 3.8.0 (or better) and simdutf 5.2.4 (or better). That is what the current Node releases are built with.
Yeah, we're not unbundling simdjson or simdutf, so we're using the versions in the nodejs-22.1 tarball.
If you want to build with GCC 14 (currently not used in Node.js releases), you need simdjson 3.9.1.
Version 3.9.1 is not yet available in Node but should be shortly.
I'll see if we can update within nodejs downstream for now. It's not critical, as users who are using GCC 14 are opting-in (see below), but it inhibits further testing with the new compiler.
I'm going to play with this now. If it's too invasive, I'll just tell people to wait.
I am currently installing gentoo (latest) and it seems to be using GCC 13.2.1.
Yeah, I committed GCC 14 earlier today, but it's "unkeyworded" (not exposed to users by default).
If you put <sys-devel/gcc-14.1.9999:14 **
in /etc/portage/package.accept_keywords
, you should get GCC 14.
Thank you for your assistance!
from node.
Related Issues (20)
- Verify env parameter when napi_get_uv_event_loop functions is called. HOT 2
- TypeError: Missing internal module 'node:crypto' HOT 14
- Disable `NODE_OPTIONS` via CLI HOT 4
- Node 20 not supporting prepack script HOT 2
- Passing `-j32` for ninja no longer works HOT 24
- Tracking issue: latest ESM Integration support
- Module Hooks cannot be registered from worker thread in 22.2.0+ HOT 18
- [REG 20.9->20.10] stream: Pipe is stopped after error on another pipe from the same source HOT 5
- Update Undici to backport a fix in Node.js 20.x HOT 1
- Not able to download nodejs for windows HOT 1
- Unhandled Error on Start HOT 3
- Support registering worker specific custom ESM loader hooks (Regression from #52706) HOT 10
- Lambdas in node 18.x (18.20.3) and problems with axios HPE_INVALID_HEADER_TOKEN HOT 2
- Xcode
- Relative `require()` in `commonjs` source not processed by ESM Loader HOT 2
- test_runner: `before` hook runs even if it's not followed by any test HOT 7
- The registration order of http server listen depends on the Node.js version HOT 5
- Ambiguous steps in `PACKAGE_IMPORTS_EXPORTS_RESOLVE` reference documentation HOT 8
- Memory leak or GC overrun in sort() HOT 2
- (Discuss) `_stream_*`
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from node.