Commit Graph

2291 Commits

Author SHA1 Message Date
Node.js GitHub Bot
41f70568a4 tools: update lint-md-dependencies to rollup@3.26.2
PR-URL: https://github.com/nodejs/node/pull/48705
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
2023-07-11 00:53:57 +00:00
Chemi Atlow
c3ab184373 events: allow safely adding listener to abortSignal
PR-URL: https://github.com/nodejs/node/pull/48596
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Robert Nagy <ronagy@icloud.com>
2023-07-05 22:04:23 +00:00
Node.js GitHub Bot
2f369ccacf tools: update eslint to 8.44.0
PR-URL: https://github.com/nodejs/node/pull/48632
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com>
Reviewed-By: Zeyu "Alex" Yang <himself65@outlook.com>
2023-07-04 00:45:55 +00:00
Node.js GitHub Bot
14e2d69da0 tools: update lint-md-dependencies to rollup@3.26.0
PR-URL: https://github.com/nodejs/node/pull/48631
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
2023-07-04 00:45:46 +00:00
Chengzhong Wu
6ffacbf0f9 node-api: rename internal NAPI_VERSION definition
PR-URL: https://github.com/nodejs/node/pull/48501
Reviewed-By: Gabriel Schulhof <gabrielschulhof@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Vladimir Morozov <vmorozov@microsoft.com>
Reviewed-By: Michael Dawson <midawson@redhat.com>
2023-06-28 17:08:58 -04:00
Node.js GitHub Bot
9117d45bc1 tools: update lint-md-dependencies
Update to @rollup/plugin-commonjs@25.0.2 and rollup@3.25.2.

PR-URL: https://github.com/nodejs/node/pull/48544
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com>
2023-06-27 00:59:10 +00:00
Keyhan Vakil
7eafd2f7e8 child_process: improve spawn performance on Linux
Speed up child_process.spawn by enabling the new V8 build flag which
makes fork/exec faster.

Here are the results of running the existing benchmark. Note that this
optimization helps more for applications with larger heaps, so this is
somewhat of an underestimate of the real world performance benefits.

```console
$ ./node benchmark/compare.js --runs 15 \
        --new ./node \
        --old ~/node-v20/out/Release/node \
        --filter params child_process > cpr
$ node-benchmark-compare cpr
                                 confidence improvement  (***)
methodName='exec' n=1000                ***     60.84 % ±5.43%
methodName='execFile' n=1000            ***     53.72 % ±3.33%
methodName='execFileSync' n=1000        ***      9.10 % ±0.84%
methodName='execSync' n=1000            ***     10.44 % ±0.97%
methodName='spawn' n=1000               ***     53.10 % ±2.90%
methodName='spawnSync' n=1000           ***      8.64 % ±1.22%

  0.01 false positives, when considering a 0.1% risk acceptance (***)
```

Fixes: https://github.com/nodejs/node/issues/25382
Fixes: https://github.com/nodejs/node/issues/14917
Refs: https://github.com/nodejs/performance/issues/93
Refs: https://github.com/nodejs/performance/issues/89
PR-URL: https://github.com/nodejs/node/pull/48523
Refs: 1a782f6543
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com>
Reviewed-By: Debadree Chatterjee <debadree333@gmail.com>
2023-06-24 17:34:44 +00:00
Keyhan Vakil
5c1233dfbc tools: speedup compilation of js2c output
Incremental compilation of Node.js is slow. Currently on a powerful
Linux machine, it takes about 9 seconds and 830 MB of memory to compile
`gen/node_javascript.cc` with g++. This is the longest step when
recompiling a small change to a Javascript file.

`gen/node_javascript.cc` contains a lot of large binary literals of our
Javascript source code. It is well-known that embedding large binary
literals as C/C++ arrays is slow. One workaround is to include the data
as string literals instead. This is particularly nice for the Javascript
included via js2c, which look better as string literals anyway.

Add a build flag `NODE_JS2C_USE_STRING_LITERALS` to js2c. When this flag
is set, we emit string literals instead of array literals, i.e.:

```c++
// old: static const uint8_t X[] = { ... };
static const uint8_t *X = R"JS2C1b732aee(...)JS2C1b732aee";

// old: static const uint16_t Y[] = { ... };
static const uint16_t *Y = uR"JS2C1b732aee(...)JS2C1b732aee";
```

This requires some modest refactoring in order to deal with the flag
being on or off, but the new code itself is actually shorter.

I only enabled the new flag on Linux/macOS, since those are systems that
I have available for testing. On my Linux system with gcc, it speeds up
compilation by 5.5s (9.0s -> 3.5s). On my Mac system with clang, it
speeds up compilation by 2.2s (3.7s -> 1.5s). (I don't think this flag
will work with MSVC, but it'd probably speed up clang on windows.)

The long-term goal here is probably to allow this to occur incrementally
per Javascript file & in parallel, to avoid recompiling all of
`gen/node_javascript.cc`. Unfortunately the necessary gyp incantations
seem impossible (or at least, far beyond me). Anyway, a 60% speedup is a
nice enough win.

Refs: https://github.com/nodejs/node/issues/47984
PR-URL: https://github.com/nodejs/node/pull/48160
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
2023-06-24 15:52:29 +00:00
Node.js GitHub Bot
cd28ebbcb7 deps: update icu to 73.2
PR-URL: https://github.com/nodejs/node/pull/48502
Reviewed-By: Debadree Chatterjee <debadree333@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Richard Lau <rlau@redhat.com>
2023-06-23 13:50:48 +00:00
Node.js GitHub Bot
b352e0c36a tools: update lint-md-dependencies
Updates: rollup@3.25.1 to-vfile@8.0.0 vfile-reporter@8.0.0
PR-URL: https://github.com/nodejs/node/pull/48486
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com>
Reviewed-By: Mestery <mestery@protonmail.com>
2023-06-22 16:34:31 +00:00
Tobias Nießen
0ae8bf8dbc msi: do not create AppData\Roaming\npm
This effectively reverts e431cae7e7 due to
security concerns. The directory is being created with elevated
privileges but its path may depend on an unprivileged user's environment
variables. Creating a directory in certain sensitive locations can cause
Windows to become inoperable.

Creating AppData\Roaming\npm was an intentional addition in order to
resolve https://github.com/nodejs/node-v0.x-archive/issues/8141, which
appears to have been a common issue for users of npm. However, this was
implemented before 4cfe5eb9af, which
changed the MSI installation scope to perMachine. There were concerns
about creating the npm directory in that PR, albeit not related to
security (see https://github.com/nodejs/node-v0.x-archive/pull/25640).

Refs: https://github.com/nodejs/node-v0.x-archive/issues/8141
Refs: https://github.com/nodejs/node-v0.x-archive/pull/8838
Refs: https://github.com/nodejs/node-v0.x-archive/pull/25640
PR-URL: https://github.com/nodejs-private/node-private/pull/408
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
CVE-ID: CVE-2023-30585
2023-06-20 17:30:15 -03:00
Luigi Pinca
e7646a5dc0 tools: replace sed with perl
For cross-platform compatibility use perl instead of sed.

Fixes: https://github.com/nodejs/node/issues/48496
PR-URL: https://github.com/nodejs/node/pull/48499
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com>
Reviewed-By: Mestery <mestery@protonmail.com>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2023-06-20 09:11:55 +00:00
Marco Ippolito
51ca71cb51 tools: automate update openssl v16
PR-URL: https://github.com/nodejs/node/pull/48377
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Paolo Insogna <paolo@cowtech.it>
2023-06-19 12:53:09 +00:00
Node.js GitHub Bot
9bdd17230d tools: update eslint to 8.43.0
PR-URL: https://github.com/nodejs/node/pull/48487
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2023-06-18 06:25:18 +00:00
Node.js GitHub Bot
6287d4d3f8 tools: update doc to to-vfile@8.0.0
PR-URL: https://github.com/nodejs/node/pull/48485
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
2023-06-18 06:12:23 +00:00
Rich Trott
04bd9fd5b3 tools: prepare tools/doc for to-vfile 8.0.0
toVFile.readSync() is removed in favor of readSync().

PR-URL: https://github.com/nodejs/node/pull/48485
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
2023-06-18 06:12:22 +00:00
Node.js GitHub Bot
f3b713d187 tools: update lint-md-dependencies
- `@rollup/plugin-commonjs@25.0.1`
- `rollup@3.24.1`

PR-URL: https://github.com/nodejs/node/pull/48417
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2023-06-14 22:57:44 +00:00
Node.js GitHub Bot
d402e2ab78 crypto: update root certificates to NSS 3.90
This is the certdata.txt[0] from NSS 3.90, released on 2023-04-06.

This is the version of NSS that shipped in Firefox 113 on
2023-05-09.

Certificates added:
- BJCA Global Root CA1
- BJCA Global Root CA2

[0] https://hg.mozilla.org/projects/nss/raw-file/NSS_3_90_RTM/lib/ckfw/builtins/certdata.txt

PR-URL: https://github.com/nodejs/node/pull/48416
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
2023-06-13 00:55:36 +00:00
Joyee Cheung
718f62bfcf bootstrap: unify snapshot builder and embedder entry points
- Run the embedder entry point directly through
  runEmbedderEntryPoint(), instead of going through another
  JS -> C++ trip through the function returned by
  getEmbedderEntryFunction()
- For --build-snapshot, read the snapshot script code directly in C++
  and pass it to SnapshotBuilder::Generate(), this makes the entry point
  more explicit instead of hiding it in JS land, and also makes it
  possible to invoke SnapshotBuilder::Generate() internally to create
  a custom snapshot.
- Previously we used process.execPath for the embedder to create
  __filename and __dirname in the snapshot builder script while using
  process.argv[1] for --build-snapshot (where it's always set) which
  results in inconsistencies. We now require the embedder to also set
  args[1] when creating the Environment if they intend to run snapshot
  scripts with a context that contains __filename and __dirname, which
  would be derived from args[1]. If they prefer not to include
  build-time paths in the snapshot, we now provide
  node::GetAnonymousMainPath() as an alternative.

PR-URL: https://github.com/nodejs/node/pull/48242
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
2023-06-11 00:34:19 +02:00
Richard Lau
da1c9e3ecb tools: update eslint-plugin-jsdoc
Run a subset of `tools/dep_updaters/update-eslint.sh` to update
`eslint-plugin-jsdoc` to get rid of a spurious ENOENT error when
running the linter.

PR-URL: https://github.com/nodejs/node/pull/48393
Fixes: https://github.com/nodejs/node/issues/48374
Reviewed-By: Debadree Chatterjee <debadree333@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
2023-06-09 03:40:02 +00:00
Andrea Fassina
c54115391f tools: add version update to external dependencies
Refs: nodejs/security-wg#973
Most of the duplicated code in all the dependencies updaters
has been moved in the `utils.sh` file

PR-URL: https://github.com/nodejs/node/pull/48081
Refs: https://github.com/nodejs/security-wg/issues/973
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
2023-06-06 09:07:34 +00:00
Node.js GitHub Bot
1b4ce6981d tools: update eslint to 8.42.0
PR-URL: https://github.com/nodejs/node/pull/48328
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Mestery <mestery@protonmail.com>
Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com>
2023-06-06 02:04:58 +00:00
Node.js GitHub Bot
cd6bd3f0fb tools: update rollup lint-md-dependencies
- @rollup/plugin-node-resolve@15.1.0
- rollup@3.23.0

PR-URL: https://github.com/nodejs/node/pull/48329
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Debadree Chatterjee <debadree333@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
2023-06-04 10:46:29 +02:00
Ben Noordhuis
fe76e0964c tools: don't gitignore base64 config.h
The file is checked into git. Ignoring it causes a very non-obvious way
of breaking tarball builds:

1. Download and unpack tarball
2. Check the sources into git with `git init; git add .; git commit -a`
3. Clean the source tree with `git clean -dfx`
4. Run `./configure && make`
5. Observe build failure because config.h is missing

Fixes: https://github.com/nodejs/node/issues/47638
PR-URL: https://github.com/nodejs/node/pull/48174
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
2023-05-30 11:32:20 +00:00
Marco Ippolito
3e071584dc tools: automate histogram update
PR-URL: https://github.com/nodejs/node/pull/48171
Refs: https://github.com/nodejs/security-wg/issues/828
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2023-05-30 08:32:27 +00:00
Luigi Pinca
4aa17bc8dd tools: use shasum instead of sha256sum
By default, there is no sha256sum command in macOS.

PR-URL: https://github.com/nodejs/node/pull/48229
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Mestery <mestery@protonmail.com>
Reviewed-By: Yongsheng Zhang <zyszys98@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2023-05-29 19:15:08 +00:00
Antoine du Hamel
2fac041508 tools: harmonize dep_updaters scripts
PR-URL: https://github.com/nodejs/node/pull/48201
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Mestery <mestery@protonmail.com>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
2023-05-29 10:59:52 +00:00
Andrea Fassina
40b89c51a8 tools: deps update authenticate github api request
PR-URL: https://github.com/nodejs/node/pull/48200
Fixes: https://github.com/nodejs/node/issues/48119
Refs: https://github.com/nodejs/security-wg/issues/973
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Mestery <mestery@protonmail.com>
2023-05-29 10:51:37 +00:00
Andrea Fassina
242362440d doc: fix broken link to new folder doc/contributing/maintaining
PR-URL: https://github.com/nodejs/node/pull/48205
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com>
Reviewed-By: Mestery <mestery@protonmail.com>
Reviewed-By: Deokjin Kim <deokjin81.kim@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
2023-05-28 21:28:19 +02:00
Michaël Zasso
d81151e100 tools: refactor v8_pch config
Avoid repetition by defining a new GYP target.

PR-URL: https://github.com/nodejs/node/pull/47364
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
2023-05-28 12:01:50 +00:00
Andrea Fassina
847b9e0884 tools: log and verify sha256sum
PR-URL: https://github.com/nodejs/node/pull/48088
Refs: https://github.com/nodejs/security-wg/issues/973
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
2023-05-25 19:46:07 +00:00
Andrea Fassina
860d7e3906 tools: use latest upstream commit for zlib updates
Zlib rarely gets new tags or releases, so now we use the latest commit
on the upstream default branch to check if an update is available.

Refs: https://github.com/nodejs/security-wg/issues/973
PR-URL: https://github.com/nodejs/node/pull/48054
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
2023-05-25 00:40:24 +02:00
Joyee Cheung
4da7bc915c build: replace js2c.py with js2c.cc
PR-URL: https://github.com/nodejs/node/pull/46997
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
2023-05-24 13:33:01 +02:00
Joyee Cheung
7fba2c223d tools: port js2c.py to C++
This makes it easier to use third-party dependencies in this tool
(e.g. adding compression using algorithms not available in Python).
It is also much faster - locally js2c.py takes ~1.5s to generate the
output whereas this version takes ~0.1s - and consumes less memory
(~110MB v.s. 66MB).

This also modifies the js2c.py a bit to simplify the output, making
it easier to compare with one generated by the C++ version. Locally
the output from the two are identical. We'll remove js2c.py in a
subsequent commit when the C++ version is used by default.

PR-URL: https://github.com/nodejs/node/pull/46997
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
2023-05-24 13:32:58 +02:00
Santiago Gimeno
ceb2a21edd tools: update LICENSE and license-builder.sh
A libuv `LICENSE-extra` file was added and a couple of files were
removed (stdint-msvc2008.h and pthread-fixes.c).

PR-URL: https://github.com/nodejs/node/pull/48078
Fixes: https://github.com/nodejs/node/issues/43931
Fixes: https://github.com/nodejs/node/issues/42496
Fixes: https://github.com/nodejs/node/issues/47715
Fixes: https://github.com/nodejs/node/issues/47259
Fixes: https://github.com/nodejs/node/issues/47241
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com>
Reviewed-By: Debadree Chatterjee <debadree333@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
2023-05-24 11:07:07 +00:00
Santiago Gimeno
9e68f9413e deps: upgrade to libuv 1.45.0
- linux: introduce io_uring support https://github.com/libuv/libuv/pull/3952
- src: add new metrics APIs https://github.com/libuv/libuv/pull/3749
- unix,win: give thread pool threads an 8 MB stack https://github.com/libuv/libuv/pull/3787
- win,unix: change execution order of timers https://github.com/libuv/libuv/pull/3927

Fixes: https://github.com/nodejs/node/issues/43931
Fixes: https://github.com/nodejs/node/issues/42496
Fixes: https://github.com/nodejs/node/issues/47715
Fixes: https://github.com/nodejs/node/issues/47259
Fixes: https://github.com/nodejs/node/issues/47241
PR-URL: https://github.com/nodejs/node/pull/48078
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com>
Reviewed-By: Debadree Chatterjee <debadree333@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
2023-05-24 11:07:04 +00:00
Tobias Nießen
300f68e9d0 tools: fix race condition when npm installing
The update scripts that install dependencies from npm blindly assume
that `npm install` will always install the version that was previously
fetched as `dist-tags.latest`. That is not necessarily true, so instead
always install the specific version that the script thinks is current.

PR-URL: https://github.com/nodejs/node/pull/48101
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
Reviewed-By: Mestery <mestery@protonmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
2023-05-23 09:45:56 +00:00
Rich Trott
92a938b4dd tools: refloat 7 Node.js patches to cpplint.py
Cherry-pick 12c8b4d154
Original commit message:
    This commit is a suggestion for adding a rule for NULL usages in the
    code base. This will currently report a number of errors which could be
    ignored using // NOLINT (readability/null_usage)

    PR-URL: https://github.com/nodejs/node/pull/17373
    Reviewed-By: Jon Moss <me@jonathanmoss.me>
    Reviewed-By: Anna Henningsen <anna@addaleax.net>
    Reviewed-By: Timothy Gu <timothygu99@gmail.com>
    Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
    Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
    Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
    Reviewed-By: Tobias Nießen <tniessen@tnie.de>

Refs: 12c8b4d154

Cherry-pick fc81e80191
Original commit message:

    Update cpplint.py to check for inline headers when the corresponding
    header is already included.

    PR-URL: https://github.com/nodejs/node/pull/21521
    Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
    Reviewed-By: James M Snell <jasnell@gmail.com>

Refs: fc81e80191

Cherry-pick cbc3dd997e
Original commit message:

    src, tools: add check for left leaning pointers

    This commit adds a rule to cpplint to check that pointers in the code
    base lean to the left and not right, and also fixes the violations
    reported.

    PR-URL: https://github.com/nodejs/node/pull/21010
    Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
    Reviewed-By: Anna Henningsen <anna@addaleax.net>
    Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
    Reviewed-By: James M Snell <jasnell@gmail.com>

Refs: cbc3dd997e

Cherry-pick 902998190a
Original commit message:

    tools: fix cpplint.py header rules

    THIS COMMIT SHOULD GO WITH THE NEXT. IT WILL FIND NEW LINT.

    PR-URL: https://github.com/nodejs/node/pull/26306
    Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>

Refs: 902998190a

Cherry-pick 0a25ace9c3
Original commit message:

    tools: move cpplint configuration to .cpplint

    PR-URL: https://github.com/nodejs/node/pull/27098
    Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
    Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>

Refs: 0a25ace9c3

Cherry-pick afa9a7206c
Original commit message:

    tools: refloat update link to google styleguide for cpplint

    This commit updates two old links to Google's C++ styleguide which
    currently result in a 404 when accessed.

    PR-URL: https://github.com/nodejs/node/pull/30876
    Reviewed-By: Michaël Zasso <targos@protonmail.com>
    Reviewed-By: David Carlier <devnexen@gmail.com>
    Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
    Reviewed-By: Richard Lau <riclau@uk.ibm.com>
    Reviewed-By: Rich Trott <rtrott@gmail.com>

Refs: afa9a7206c

Cherry-pick e23bf8f771
Original commit message:

    tools,src: refloat forbid usage of v8::Persistent

    `v8::Persistent` comes with the surprising catch that it requires
    manual cleanup. `v8::Global` doesn’t, making it easier to use,
    and additionally provides move semantics. New code should always
    use `v8::Global`.

    PR-URL: https://github.com/nodejs/node/pull/31018
    Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
    Reviewed-By: Richard Lau <riclau@uk.ibm.com>
    Reviewed-By: James M Snell <jasnell@gmail.com>
    Reviewed-By: David Carlier <devnexen@gmail.com>
    Reviewed-By: Rich Trott <rtrott@gmail.com>
    Reviewed-By: Gus Caplan <me@gus.host>
    Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
    Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
    Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>

PR-URL: https://github.com/nodejs/node/pull/35569
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>

PR-URL: https://github.com/nodejs/node/pull/35719
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>

PR-URL: https://github.com/nodejs/node/pull/35866

PR-URL: https://github.com/nodejs/node/pull/36213
Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>

PR-URL: https://github.com/nodejs/node/pull/36235
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>

PR-URL: https://github.com/nodejs/node/pull/36324
Reviewed-By: Beth Griggs <bgriggs@redhat.com>

PR-URL: https://github.com/nodejs/node/pull/38851
Reviewed-By: Khaidi Chu <i@2333.moe>

PR-URL: https://github.com/nodejs/node/pull/42416
Reviewed-By: Mestery <mestery@protonmail.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/48098
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
2023-05-23 05:44:59 +00:00
Yagiz Nizipli
40d8b366eb tools: update cpplint to 1.6.1
PR-URL: https://github.com/nodejs/node/pull/48098
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
2023-05-23 05:44:58 +00:00
Node.js GitHub Bot
c55aa01e48 tools: update eslint to 8.41.0
PR-URL: https://github.com/nodejs/node/pull/48097
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2023-05-23 00:49:59 +00:00
Node.js GitHub Bot
0f25097cb4 tools: update lint-md-dependencies
Update to remark-parse@10.0.2, remark-stringify@10.0.3, and
rollup@3.22.0.

PR-URL: https://github.com/nodejs/node/pull/48096
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
2023-05-23 00:49:47 +00:00
Node.js GitHub Bot
6b8d72513c tools: update doc to remark-parse@10.0.2
PR-URL: https://github.com/nodejs/node/pull/48095
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Rich Trott <rtrott@gmail.com>
2023-05-23 00:49:37 +00:00
Marco Ippolito
f858dc5b5b tools: add debug logs
PR-URL: https://github.com/nodejs/node/pull/48060
Reviewed-By: Ruy Adorno <ruyadorno@google.com>
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Deokjin Kim <deokjin81.kim@gmail.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: Mestery <mestery@protonmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2023-05-22 08:22:10 +00:00
Luigi Pinca
95d24292ed tools: fix zconf.h path
Use the `DEPS_DIR` variable to build the path instead of hardcoding it.

PR-URL: https://github.com/nodejs/node/pull/48089
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
2023-05-21 16:58:01 +00:00
Node.js GitHub Bot
6774144404 tools: update remark-preset-lint-node to 4.0.0
PR-URL: https://github.com/nodejs/node/pull/47995
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
2023-05-17 05:05:53 +00:00
Marco Ippolito
d27301df44 tools: debug log for nghttp3
PR-URL: https://github.com/nodejs/node/pull/47992
Refs: https://github.com/nodejs/node/pull/47576
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com>
Reviewed-By: Deokjin Kim <deokjin81.kim@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2023-05-14 15:20:40 +00:00
Jithil P Ponnan
abb1c45af7 src: add cjs_module_lexer_version base64_version
src: add cjs_module_lexer_version base64_version
PR-URL: https://github.com/nodejs/node/pull/45629
Refs: https://github.com/nodejs/node/issues/45260
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Minwoo Jung <nodecorelab@gmail.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
2023-05-14 12:16:47 +00:00
Keyhan Vakil
0736d0b3f5 src: register external references for source code
Currently we use external strings for internalized builtin source code.
However when a snapshot is taken, any external string whose resource
is not registered is flattened into a SeqString (see ref). The
result is that module source code stored in the snapshot does not
use external strings after deserialization. This patch registers an
external string resource for each internalized builtin's source. The
savings are substantial: ~1.9 MB of heap memory per isolate, or ~44%
of an otherwise empty isolate's heap usage:

```console
$ node --expose-gc -p 'gc(),process.memoryUsage().heapUsed'
4190968
$ ./node --expose-gc -p 'gc(),process.memoryUsage().heapUsed'
2327536
```

The savings can be even higher for user snapshots which may include
more internal modules.

The existing UnionBytes implementation was ill-suited, because it only
created an external string resource when ToStringChecked was called,
but we need to register the external string resources before the
isolate even exists. We change UnionBytes to no longer own the data,
and shift ownership of the data to a new external resource class
called StaticExternalByteResource.  StaticExternalByteResource are
either statically allocated (for internalized builtin code) or owned
by the static `externalized_builtin_sources` map, so they will only be
destructed when static resources are destructed. We change JS2C to emit
statements to register a string resource for each internalized builtin.

Refs: d2c8fbe9cc/src/snapshot/serializer.cc (L633)
PR-URL: https://github.com/nodejs/node/pull/47055
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
2023-05-10 11:17:59 +00:00
Marco Ippolito
1b177932a1 tools: automate icu-small update
PR-URL: https://github.com/nodejs/node/pull/47727
Refs: https://github.com/nodejs/security-wg/issues/828
Reviewed-By: Steven R Loomis <srl295@gmail.com>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
2023-05-09 21:01:08 +00:00
Node.js GitHub Bot
4f69aae6a0 tools: update lint-md-dependencies to rollup@3.21.5
PR-URL: https://github.com/nodejs/node/pull/47903
Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Rich Trott <rtrott@gmail.com>
2023-05-09 09:48:48 +00:00