Uh oh!
There was an error while loading. Please reload this page.
deps: V8: add explicit constructor to CppHeapCreateParams - #45700
Conversation
nodejs-github-bot
commented
Dec 1, 2022
Review requested:
|
nodejs-github-bot
commented
Dec 1, 2022
nodejs-github-bot
commented
Dec 1, 2022
nodejs-github-bot
commented
Dec 1, 2022
targos
commented
Dec 1, 2022
The Windows problem still exists, so we can't revert the change without fixing it another way: |
targos
commented
Dec 1, 2022
@dharesign would you be able to help finding and/or fixing the root cause? |
dharesign
commented
Dec 1, 2022
OK, that's very strange indeed. Looking at the logs, the first error you get is: That's this |
dharesign
commented
Dec 1, 2022
Based on the objects being compiled, I would say it's coming from I haven't used pre-compiled headers, so I don't know if this kind of breakage is par-for-the-course. Maybe to test that theory out, you could modify |
gengjiawen
commented
Dec 2, 2022
@targos Maybe use this patch: https://chromium-review.googlesource.com/c/v8/v8/+/3533019/2/include/v8-cppgc.h#78 |
dharesign
commented
Dec 2, 2022
I think it would be best to have no patch :) I can try building Node locally on a Windows machine next week and see if I can figure out the issue. |
gengjiawen
commented
Dec 2, 2022
Yeap. but without any patch MSVC just not works on building v8. Upload patches to upstream v8 is always the right way to do (it stuck because MSVC not ready on cpp20). Also heads up, build Node.js or V8 in cpp20 on MSVC is still not possible, MSVC still fixing all their bugs. |
Sorry, I guess I should have commented here rather than #45402. Copying my comments here. I figured out why it's breaking: it's because the Can reproduce: https://godbolt.org/z/8Wah9KbP3 Note that the error points to line 9 as the place the class is being instantiated, even though it's line 16 that's really causing it. Relevant: https://devblogs.microsoft.com/oldnewthing/20190927-00/?p=102932 So The only way to then export such a non-copyable class is to have the copy constructors explicitly deleted. Doing that breaks the C++20 aggregate initialization per https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1008r1.pdf I guess the most reasonable way forward is probably to give |
Uh oh!
There was an error while loading. Please reload this page.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
Co-authored-by: Jiawen Geng <technicalcute@gmail.com>
nodejs-github-bot
commented
Jan 1, 2023
nodejs-github-bot
commented
Jan 1, 2023
nodejs-github-bot
commented
Jan 1, 2023
gengjiawen
commented
Jan 4, 2023
@targos upstream is merged. |
targos
commented
Jan 5, 2023
I'm actually just going to close this. We will inherit the fix with a future V8 update. Thanks for upstreaming this @gengjiawen ! |
Refs: #45402
Refs: #45118