| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
PR-URL: #46826 Reviewed-By: Jacob Smith <jacob@frende.me> Reviewed-By: Geoffrey Booth <webadmin@geoffreybooth.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Removes flakiness from the mentioned test due to the x86 memory limit PR-URL: #48750 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Debadree Chatterjee <debadree333@gmail.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
PR-URL: #48726 Reviewed-By: Matthew Aitken <maitken033380023@gmail.com> Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
* The first argument `node` should be a const pointer. * The second argument `spaces` should not be a signed integer type. * The local variable `child` should be size_t. * The local variable `pair` in the range declaration should be a reference type to avoid copying the object. Refs: #48677 PR-URL: #48770 Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
PR-URL: #48751 Reviewed-By: Moshe Atlow <moshe@atlow.co.il> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: Michael Dawson <midawson@redhat.com>
PR-URL: #48586 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
PR-URL: #48722 Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
... as it's not valid implementation and also has not been used PR-URL: #48732 Reviewed-By: Darshan Sen <raisinten@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
PR-URL: #48789 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Moshe Atlow <moshe@atlow.co.il> Reviewed-By: Michaël Zasso <targos@protonmail.com>
The test test/parallel/test-experimental-shared-value-conveyor.js was added to test the --harmony-struct feature of V8. However, when used with pointer compression, the process crashes. This commit skips the test for pointer compression builds. This change uses a child process because starting a Node pointer compression build with --harmony-struct immediately crashes the process. Once this crash is addresses, this commit can be reverted. PR-URL: #48738 Reviewed-By: Moshe Atlow <moshe@atlow.co.il> Reviewed-By: Michael Dawson <midawson@redhat.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Debadree Chatterjee <debadree333@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Richard Lau <rlau@redhat.com>
PR-URL: #48765 Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
PR-URL: #48769 Reviewed-By: Ruy Adorno <ruyadorno@google.com> Reviewed-By: Richard Lau <rlau@redhat.com> Reviewed-By: Tobias Nießen <tniessen@tnie.de> Reviewed-By: Michael Dawson <midawson@redhat.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
PR-URL: #48709 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Stephen Belanger <admin@stephenbelanger.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
PR-URL: #48719 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: Debadree Chatterjee <debadree333@gmail.com>
PR-URL: #48793 Reviewed-By: Moshe Atlow <moshe@atlow.co.il> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
PR-URL: #48791 Reviewed-By: Moshe Atlow <moshe@atlow.co.il> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com>
Example is not runnable because `path` is used, but it's not declared. PR-URL: #48556 Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Adding the per-realm binding data tracking introduced a call to a realm method when realm was potentially null. This is triggered whenever the function is called from `ContextifyContext::New` which passes `nullptr` as the `realm`. PR-URL: #48802 Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> Reviewed-By: Chengzhong Wu <legendecas@gmail.com> Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com> Reviewed-By: Tobias Nießen <tniessen@tnie.de>
- refactor table so that it does not grow for every new version of Node.js - refer to latest version of table as the canonical reference - add info for Node-API v9 Refs: #48277 Signed-off-by: Michael Dawson <mdawson@devrus.com> PR-URL: #48774 Reviewed-By: Richard Lau <rlau@redhat.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Major functional changes:
- Allow `import()` to work within loaders that require other loaders,
- Unflag the use of `Module.register`.
A new interface `Customizations` has been created in order to unify
`ModuleLoader` (previously `DefaultModuleLoader`), `Hooks` and
`CustomizedModuleLoader` all of which now implement it:
```ts
interface LoadResult {
format: ModuleFormat;
source: ModuleSource;
}
interface ResolveResult {
format: string;
url: URL['href'];
}
interface Customizations {
allowImportMetaResolve: boolean;
load(url: string, context: object): Promise<LoadResult>
resolve(
originalSpecifier:
string, parentURL: string,
importAssertions: Record<string, string>
): Promise<ResolveResult>
resolveSync(
originalSpecifier:
string, parentURL: string,
importAssertions: Record<string, string>
) ResolveResult;
register(specifier: string, parentUrl: string): any;
forceLoadHooks(): void;
importMetaInitialize(meta, context, loader): void;
}
```
The `ModuleLoader` class now has `setCustomizations` which takes an
object of this shape and delegates its responsibilities to this object
if present.
Note that two properties `allowImportMetaResolve` and `resolveSync`
exist now as a mechanism for `import.meta.resolve` – since `Hooks`
does not implement `resolveSync` other loaders cannot use
`import.meta.resolve`; `allowImportMetaResolve` is a way of checking
for that case instead of invoking `resolveSync` and erroring.
Fixes #48515
Closes #48439
PR-URL: #48559
Reviewed-By: Jacob Smith <jacob@frende.me>
Reviewed-By: Geoffrey Booth <webadmin@geoffreybooth.com>
Refs: nodejs/TSC#1411 Refs: nodejs/TSC#1410 Signed-off-by: Michael Dawson <mdawson@devrus.com> PR-URL: #48841 Reviewed-By: Moshe Atlow <moshe@atlow.co.il> Reviewed-By: Debadree Chatterjee <debadree333@gmail.com> Reviewed-By: Tobias Nießen <tniessen@tnie.de>
PR-URL: #48734 Reviewed-By: Chengzhong Wu <legendecas@gmail.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
PR-URL: #48826 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Original commit message:
Skip regress-1320641 when the system does not have enough memory
Change-Id: I23a5232f6437c4bc77390796ee2986f1600cb1bf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4689686
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Joyee Cheung <joyee@igalia.com>
Cr-Commit-Position: refs/heads/main@{#88973}
Refs: v8/v8@c1a54d5
PR-URL: #48830
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Debadree Chatterjee <debadree333@gmail.com>
Original commit message:
Fix mistake in the skip branch of test/mjsunit/regress-1320641.js
It was doing a `string.test(regex)` which was wrong. It's supposed
to be `regex.test(string)`. It wasn't caught in the CI because
the skip path is not normally taken in the V8 CI.
Change-Id: Id1bdab5bbc41968bba8adc1cb3664e8f95fb5d72
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4697855
Commit-Queue: Joyee Cheung <joyee@igalia.com>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/main@{#89044}
Refs: v8/v8@9f4b769
PR-URL: #48830
Refs: v8/v8@c1a54d5
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Debadree Chatterjee <debadree333@gmail.com>
PR-URL: #48788 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com>
Sorry, something went wrong.
Sorry, something went wrong.
Sorry, something went wrong.
Sorry, something went wrong.
Sorry, something went wrong.
|
This seems ready for Monday :) |
Sorry, something went wrong.
|
@juanarbol heads up that Monday is a US Federal holiday. |
Sorry, something went wrong.
There was a problem hiding this comment.
LGTM. @UlisesGascon don't forget to update the release date in the PR description. Good job folks.
Sorry, something went wrong.
|
I know this is close to release, but the .env feature currently contradicts its documentation. It overrides variables that already exist in the environment, whereas it shouldn't. There is discussion of this, and a fix in #49424. I wonder if that can be snuck in so that this feature launches correctly? |
Sorry, something went wrong.
I think that environment variable is more general that a specific .env variable, so in fact .env should overrides any environment variable. |
Sorry, something went wrong.
|
This is not the right place to discuss whether or not #49424 should land. While it is unfortunate that the feature description does not match the implementation, this release is already delayed by weeks, so waiting for a fix for an experimental feature likely isn't worth any additional delay (and new CI runs, reviews, etc). |
Sorry, something went wrong.
Notable changes: deps: * V8: cherry-pick 93275031284c (Joyee Cheung) #48660 doc: * add new TSC members (Michael Dawson) #48841 * add rluvaton to collaborators (Raz Luvaton) #49215 esm: * unflag import.meta.resolve (Guy Bedford) #49028 * add `initialize` hook, integrate with `register` (Izaak Schroeder) #48842 * unflag `Module.register` and allow nested loader `import()` (Izaak Schroeder) #48559 inspector: * (SEMVER-MINOR) open add `SymbolDispose` (Chemi Atlow) #48765 module: * implement `register` utility (João Lenon) #46826 * make CJS load from ESM loader (Antoine du Hamel) #47999 src: * add built-in `.env` file support (Yagiz Nizipli) #48890 * initialize cppgc (Daryl Haresign and Joyee Cheung) #48660 and #45704 test_runner: * (SEMVER-MINOR) expose location of tests (Colin Ihrig) #48975 PR-URL: #49185
|
Thank you and congratulations @nodejs/releasers! |
Sorry, something went wrong.
|
I want to provide a bit of feedback on what I see as a process breakdown here.
Use of timeline pressure to push forward a release over raised concern without addressing or triaging the severity of the issue has created a dilemma:
This is a remarkable decision to make to ship over top of concern that the top line feature of the release appeared to have significant issues. The proposed fix is a complete inversion of the precedence which is without a doubt materially incompatible. https://github.com/nodejs/node/pull/49424/files?w=1#diff-16952113caf4254d32120f31060ec512394a126ac2ddbdaed85b7d0d35ee6fcfR54 For more discussion, see my notes on the PR proposal to fix the bug: #49424 (comment) |
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
2023-09-04, Version 20.6.0 (Current), @juanarbol prepared by @UlisesGascon
Notable changes
built-in .env file support
Starting from Node.js v20.6.0, Node.js supports .env files for configuring environment variables.
Your configuration file should follow the INI file format, with each line containing a key-value pair for an environment variable.
To initialize your Node.js application with predefined configurations, use the following CLI command: node --env-file=config.env index.js.
For example, you can access the following environment variable using process.env.PASSWORD when your application is initialized:
In addition to environment variables, this change allows you to define your NODE_OPTIONS directly in the .env file, eliminating the need to include it in your package.json.
This feature was contributed by Yagiz Nizipli in #48890.
import.meta.resolve unflagged
In ES modules, import.meta.resolve(specifier) can be used to get an absolute URL string to which specifier resolves, similar to require.resolve in CommonJS. This aligns Node.js with browsers and other server-side runtimes.
This feature was contributed by Guy Bedford in #49028
New node:module API register for module customization hooks; new initialize hook
There is a new API register available on node:module to specify a file that exports module customization hooks, and pass data to the hooks, and establish communication channels with them. The “define the file with the hooks” part was previously handled by a flag --experimental-loader, but when the hooks moved into a dedicated thread in 20.0.0 there was a need to provide a way to communicate between the main (application) thread and the hooks thread. This can now be done by calling register from the main thread and passing data, including MessageChannel instances.
We encourage users to migrate to an approach that uses --import with register, such as:
Using --import ensures that the customization hooks are registered before any application code runs, even the entry point.
This feature was contributed by Izaak Schroeder in #48842 and #48559
Module customization load hook can now support CommonJS
Authors of module customization hooks can how handle both ES module and CommonJS sources in the load hook. This works for CommonJS modules referenced via either import or require, so long as the main entry point of the application is handled by the ES module loader (such as because the entry point is an ES module file, or if the --import flag is passed). This should simplify the customization of the Node.js module loading process, as package authors can customize more of Node.js without relying on deprecated APIs such as require.extensions.
This feature was contributed by Antoine du Hamel in #47999
Node.js C++ addons now have experimental support for cppgc (Oilpan), a C++ garbage collection library in V8.
Now when Node.js starts up, it makes sure that there is a v8::CppHeap attached to the V8 isolate. This enables users to allocate in the v8::CppHeap using <cppgc/*> headers from V8, which are now also included into the Node.js headers available to addons. Note that since Node.js only bundles the cppgc library coming from V8, the ABI stability of cppgc is currently not guaranteed in semver-minor and -patch updates, but we do not expect the ABI to break often, as it has been stable and battle-tested in Chromium for years. We may consider including cppgc into the ABI stability guarantees when it gets enough adoption internally and externally.
To help addon authors create JavaScript-to-C++ references of which V8's garbage collector can be aware, a helper function node::SetCppgcReference(isolate, js_object, cppgc_object) has been added to node.h. V8 may provide a native alternative in the future, which could then replace this Node.js-specific helper. In the mean time, users can use this API to avoid having to hard-code the layout of JavaScript wrapper objects. An example of how to create garbage-collected C++ objects in the unified heap and wrap it in a JavaScript object can be found in the Node.js addon tests.
The existing node::ObjectWrap helper would continue to work, while cppgc-based object management serves as an alternative with some advantages mentioned in the V8 blog post about Oilpan.
This feature was contributed by Daryl Haresign and Joyee Cheung in #48660 and #45704.
Other notable changes
Commits