-
Notifications
You must be signed in to change notification settings - Fork 30k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP] Update V8 to 5.2 #7824
[WIP] Update V8 to 5.2 #7824
Conversation
In which next node version it is possible to see that's new shiny V8? 🤔 |
@bricss Probably not until v7.0.0, unless the ABI incompatibility issues can be smoothed over before August. |
Noting some errors. freebsd
smartos 64
V8 bug: https://bugs.chromium.org/p/v8/issues/detail?id=5227 smartos 32
|
v8 CI run - https://ci.nodejs.org/job/node-test-commit-v8-linux/228/. To check for PPC, s390, should be ok there. |
nice job |
@targos I independently ran into the the ICU transliteration issue. Here's the fix I put together with help from @srl295: ofrobots@fcd0595. We should reconcile the two fixes. |
deps: edit v8 gitignore to allow trace event copy deps: update v8 trace event to 54b8455be9505c2cb0cf5c26bb86739c236471aa
V8 needs it for case conversion. Ref: https://codereview.chromium.org/1812673005
The location of various gypfiles has changed in V8 5.2.
The next major release will make it a fatal error to use non-primitive values in function templates and object templates. Print a warning that includes the C and JS stack trace to tell people to upgrade their add-ons. The C stack trace is only printed on platforms that support it (the BSDs, OS X and Linux+glibc.) The warning can be disabled with the new `--nowarn_template_set` flag. Refs: nodejs#6216 PR-URL: nodejs#6277 Reviewed-By: James M Snell <jasnell@gmail.com>
Original commit message: S390:Update inline asm constraint in test-platform The GetStackPointer() routine in test-platform uses an inline assembly code to store the current stack pointer value into a static variable sp_addr. The existing asm code for S390 uses an ST/STG instruction, with the memory operand associated with the general ('=g') constraint to sp_addr. On GCC 4.8.5, the GCC compiler got confused and treated sp_addr as an integer operand instead of memory operand, resulting in a store being emitted that writes to an invalid meory location. Given the specific store instructions being inlined here, we should restict the sp_addr operand to explicitly be a memory operand using '=m' instead of '=g'. R=bmeurer@chromium.org,jkummerow@chormium.org,rmcilroy@chromium.org,yangguo@chromium.org BUG= Review-Url: https://codereview.chromium.org/2158523002 Cr-Commit-Position: refs/heads/master@{nodejs#37809} Fixes: nodejs#7659 PR-URL: nodejs#7771 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com> Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
@ofrobots thanks, it's done. |
I made an attempt to fix the compiling issues. smartos-64
freebsd
Edit: V8 bug ? https://bugs.chromium.org/p/chromium/issues/detail?id=605349 |
While playing with this branch in one of my projects, I found a bug: async function test() {
await 1;
throw new Error('bad');
}
test().catch(function(e){
e.stack;
}); This code fails at a check:
The bug is fixed in V8's master branch but not in 5.2 or 5.3. |
I am hoping we can get V8 5.4 in Node |
Yes let's please coordinate. @ofrobots is there a separate issue tracking this? |
@@ -25,7 +25,7 @@ | |||
"zone": "locales", | |||
"converters": "none", | |||
"stringprep": "locales", | |||
"translit": "none", | |||
"translit": "locales", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yeah - "locales" may not be quite right here in fact. It's more complex which is why I'd like a separate issue tracking this (translit enablement for v8) For now, I'd actually remove the translit
line altogether from this file.
I commented on some outdated diffs for discussion.
What I'd like to see is a separate PR that enables transliteration support if to the v8 version requires it. This could go in prior to v8 going in and would make node.js always build ICU the right way. Related here is 7de59ef#diff-eda374a7b1c3fccd439785b07caa1372 from @jasnell ’s #7355 which also enabled some additional ICU code and data, but for a core feature and not for a v8 requirement. |
The V8 crash bug mentioned above makes debugging challenging in bigger projects. Programming errors and typos in async functions, e.g. something that normally prints error If possible, it'd be nice to see the fix backported. |
More specifically I keep seeing the crash in this situation:
If I comment out [1] then the app doesn't crash anymore. But then you don't know what the problem is. This looks like a variation of the test case @targos already posted. |
meta: given that v5 is EOL and there will be no further releases in that line, I'm going to go ahead and remove the dont-land-on-v5.x label and likely delete it. |
This (and a bug 5174 fix in 5.2) appear to be going nowhere? Could be better to skip 5.2 and go straight to 5.3? It has been out for a month now, and there will soon be a 5.4... |
@Kovensky I plan to skip directly to 5.4 when the branch is cut. |
Closing (superseded by #8317) |
Checklist
make -j4 test
(UNIX), orvcbuild test nosign
(Windows) passesAffected core subsystem(s)
v8
Description of change
This is almost ready, but I am still waiting for https://bugs.chromium.org/p/v8/issues/detail?id=5174 to be fixed in the 5.2 branch.
I'm creating the PR now to start a CI run.
CI: https://ci.nodejs.org/job/node-test-pull-request/3370/CI: https://ci.nodejs.org/job/node-test-pull-request/3383/CI: https://ci.nodejs.org/job/node-test-pull-request/3420/