Code Monkey home page Code Monkey logo

Comments (15)

lemire avatar lemire commented on June 10, 2024 1

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.

lemire avatar lemire commented on June 10, 2024 1

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.

Uzlopak avatar Uzlopak commented on June 10, 2024

ping
@lemire
@anonrig

from node.

FireBurn avatar FireBurn commented on June 10, 2024

Gentoo bug https://bugs.gentoo.org/931267

from node.

lemire avatar lemire commented on June 10, 2024

This didn't happen with node 20.12.1 which used the older simd

Can you elaborate?

from node.

thesamesam avatar thesamesam commented on June 10, 2024

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.

FireBurn avatar FireBurn commented on June 10, 2024

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.

FireBurn avatar FireBurn commented on June 10, 2024

I bet it's ninja 1.12.0

from node.

lemire avatar lemire commented on June 10, 2024

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.

Screenshot 2024-05-07 at 11 20 09 AM

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.

thesamesam avatar thesamesam commented on June 10, 2024

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.

FireBurn avatar FireBurn commented on June 10, 2024

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.

lemire avatar lemire commented on June 10, 2024

@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.

lemire avatar lemire commented on June 10, 2024

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.

lemire avatar lemire commented on June 10, 2024

I am currently installing gentoo (latest) and it seems to be using GCC 13.2.1.

from node.

thesamesam avatar thesamesam commented on June 10, 2024

@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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.