-
Notifications
You must be signed in to change notification settings - Fork 29.6k
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
deps: V8: add explicit constructor to CppHeapCreateParams #45700
Conversation
Review requested:
|
The Windows problem still exists, so we can't revert the change without fixing it another way:
|
@dharesign would you be able to help finding and/or fixing the root cause? |
OK, that's very strange indeed. Looking at the logs, the first error you get is:
That's this |
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 |
@targos Maybe use this patch: https://chromium-review.googlesource.com/c/v8/v8/+/3533019/2/include/v8-cppgc.h#78 |
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. |
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 |
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 <[email protected]>
@targos upstream is merged. |
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