Skip to content

deps: update simdjson to 4.4.0#62257

Open
nodejs-github-bot wants to merge 1 commit intomainfrom
actions/tools-update-simdjson
Open

deps: update simdjson to 4.4.0#62257
nodejs-github-bot wants to merge 1 commit intomainfrom
actions/tools-update-simdjson

Conversation

@nodejs-github-bot
Copy link
Collaborator

This is an automated update of simdjson to 4.4.0.

@nodejs-github-bot nodejs-github-bot added the dependencies Pull requests that update a dependency file. label Mar 15, 2026
@nodejs-github-bot
Copy link
Collaborator Author

Review requested:

  • @nodejs/security-wg

@nodejs-github-bot nodejs-github-bot added the needs-ci PRs that need a full CI run. label Mar 15, 2026
@aduh95 aduh95 added author ready PRs that have at least one approval, no pending requests for changes, and a CI started. request-ci Add this label to start a Jenkins CI on a PR. labels Mar 15, 2026
@github-actions github-actions bot removed the request-ci Add this label to start a Jenkins CI on a PR. label Mar 15, 2026
@nodejs-github-bot
Copy link
Collaborator Author

@nodejs-github-bot
Copy link
Collaborator Author

@nodejs-github-bot
Copy link
Collaborator Author

@nodejs-github-bot
Copy link
Collaborator Author

@nodejs-github-bot
Copy link
Collaborator Author

@richardlau
Copy link
Member

CI: https://ci.nodejs.org/job/node-test-pull-request/71806/

The AIX failure is real:
e.g.

14:47:40 In file included from ../deps/simdjson/simdjson.h:41859,
14:47:40                  from ../src/inspector_profiler.h:13,
14:47:40                  from ../src/env.h:30,
14:47:40                  from ../src/env-inl.h:29,
14:47:40                  from ../src/base_object-inl.h:28,
14:47:40                  from ../src/async_wrap-inl.h:28,
14:47:40                  from ../src/api/callback.cc:2:
14:47:40 /opt/freeware/lib/gcc/powerpc-ibm-aix7.2.0.0/12/include/altivec.h:34:2: error: #error Use the "-maltivec" flag to enable PowerPC AltiVec support
14:47:40    34 | #error Use the "-maltivec" flag to enable PowerPC AltiVec support
14:47:40       |  ^~~~~

FWIW I am separately testing a PR to update the CPU target for V8 on AIX to Power 9. I think (based on gcc -Q --help=target output) that that turns on -maltivec, so I could also add that to node.gypi for building Node.js (and not just V8) on AIX. But simdjson might need to detect whether altivec is enabled on Power for general use because without a -mcpu setting GCC 12 (which we currently use) on AIX doesn't enable -maltivec by default.

cc @lemire

@nodejs-github-bot
Copy link
Collaborator Author

@lemire
Copy link
Member

lemire commented Mar 16, 2026

@richardlau

Here is the internal logic in simdjson:

// other code here
#elif defined(__PPC64__) || defined(_M_PPC64)
#define SIMDJSON_IS_PPC64 1
#if defined(__ALTIVEC__)
#define SIMDJSON_IS_PPC64_VMX 1
#endif // defined(__ALTIVEC__)

and this is used as follows...

#define SIMDJSON_IMPLEMENTATION_PPC64 (SIMDJSON_IS_PPC64 && SIMDJSON_IS_PPC64_VMX)

So we should only enable altivec when __ALTIVEC__ is defined.

Unfortunately, I do not have access to an AIX system. If you do, can you verify whether __ALTIVEC__ is defined?

Note that we can just disable the whole thing by passing SIMDJSON_IMPLEMENTATION_PPC64=0 at build time.

@lemire
Copy link
Member

lemire commented Mar 16, 2026

@richardlau To be clearer, there is no runtime dispatching when building simdjson on POWER systems. We only enable the optimized kernel when __ALTIVEC__ is defined (at compile time). Otherwise we use our non-optimized kernel.

@aduh95 aduh95 removed the author ready PRs that have at least one approval, no pending requests for changes, and a CI started. label Mar 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file. needs-ci PRs that need a full CI run.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants