You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For multi versions, we have special issue on msvc which is hard to trace and fix.
Build v8 with every commit in upstream will help us find root commit soon.
Currently we have daily build on https://github.com/nodejs/node-v8, but it's not good enough. Mainly it can be broken due to gyp issue or other issue. Then we lost track of which commit start to broken.
In the end, the msvc issues has been fixed, right ?
Yes. But the prices comes very high. You know how about cpp, it's very hard to find the exact error. On windows, it's worse. I have to take 40 minites or longer to verify my fix, even a single line. Windows doesn't support ninja or ccache for now. @targos and I spent weeks on v8 8.5 and 8.6 just to fix msvc issues.
So, if in upstream v8 doesn't has msvc build in every commit (don't has to be success, just to track which starts to broken will help a lot). This will super helpful for us maintaining v8 update.
Honestly I don't understand how we have so many issues with V8 and MSVC. We probably need to look into the GYP configuration to make it closer to what they have.
Honestly I don't understand how we have so many issues with V8 and MSVC. We probably need to look into the GYP configuration to make it closer to what they have.
But many msvc issue seems not strong connection with gyp. Like #36139 (comment) (debug build failure) and #34337 (comment) (Msvc has strong checks).
Is it because they lacks debug build and arm64 for windows in CI ?
Another confused me is that #34337 (comment) just won't build in msvc. if so, how do this passing the CI.
I'd suggest opening an issue in the v8 issue tracker or asking in v8-dev regarding the state of their MSVC build bot. I vaguely remember that they switched to clang+llvm on Windows for consistent builds, so not sure why there is still a MSVC bot, but my memory could be wrong.
We don't, strictly speaking, support MSVC, so keeping that build working is more best effort and community-led; we don't want to block any of our engineers by making them fix MSVC issues. That said, it'd maybe still be useful to have an FYI bot with MSVC so that we at least see when it's broken -- I'll chat to our infra team about it.
The V8 team just announced they'll be dropping msvc (and gcc) support wholesale in September, i.e., they'll remove all the hacks and tweaks needed for compilers that aren't clang. Refs:
"V8 will follow Chromium's lead and will discontinue support for MSVC. To give projects time to adjust, we will stop support after V8 version 13.0 in September 2024. After that, we will remove the infrastructure bots and MSVC compatibility hacks in the code base."
"V8 will follow Chromium's lead and will stop providing infrastructure for GCC builds. We will still accept patches from the community but we will not invest in keeping this build functioning. To give projects time to adjust, we will perform this change after V8 version 13.0 in September 2024."
Activity
targos commentedon Jan 13, 2021
V8 already has an MSVC builder in their CI, which runs on every CL: https://ci.chromium.org/p/v8/builders/try/v8_win64_msvc_compile_rel
Honestly I don't understand how we have so many issues with V8 and MSVC. We probably need to look into the GYP configuration to make it closer to what they have.
targos commentedon Jan 13, 2021
Noting:
https://github.com/v8/v8/blob/1bd5755bba33303edf128a6e01dfaab9b6c552d0/BUILD.gn#L983-L985
gengjiawen commentedon Jan 14, 2021
But many msvc issue seems not strong connection with gyp. Like #36139 (comment) (debug build failure) and #34337 (comment) (Msvc has strong checks).
Is it because they lacks debug build and arm64 for windows in CI ?
Another confused me is that #34337 (comment) just won't build in msvc. if so, how do this passing the CI.
gengjiawen commentedon Jan 26, 2021
Another showcase bnoordhuis/v8-cmake#40. I am pretty positive upstream v8 msvc support has flaws. @nodejs/tsc Maybe you can push this forward ?
gengjiawen commentedon Feb 19, 2021
Given the upcoming V8 8.9 windows build failed in https://github.com/nodejs/node-v8 and bnoordhuis/v8-cmake#45. I am pretty positive upstream V8 CI not working.
gengjiawen commentedon Feb 22, 2021
Fixed in #37330 (comment).
ping @nodejs/tsc @Trott @mhdawson Can you reach out V8 team for this. This is the best way V8 builds works consistently on msvc.
mhdawson commentedon Feb 23, 2021
@hashseed is this something you can help with? @targos do you know who are best/most responsive contact is these days?
targos commentedon Feb 24, 2021
Unfortunately no.
mmarchini commentedon Feb 25, 2021
cc @nodejs/v8 @verwaest
gengjiawen commentedon Oct 11, 2021
ping @nodejs/tsc , this keep dragging us, anyone from google side can helps ?. https://chromium-review.googlesource.com/c/v8/v8/+/3199856 takes really long time to close.
In the long run, if it's not on v8 CI system, we have to spend more time on this.
joyeecheung commentedon Oct 11, 2021
I'd suggest opening an issue in the v8 issue tracker or asking in v8-dev regarding the state of their MSVC build bot. I vaguely remember that they switched to clang+llvm on Windows for consistent builds, so not sure why there is still a MSVC bot, but my memory could be wrong.
gengjiawen commentedon Oct 12, 2021
https://chromium-review.googlesource.com/c/v8/v8/+/3199856/comments/49f62820_b7e38917
Let's hope some good news.
bnoordhuis commentedon Jun 17, 2024
The V8 team just announced they'll be dropping msvc (and gcc) support wholesale in September, i.e., they'll remove all the hacks and tweaks needed for compilers that aren't clang. Refs:
https://groups.google.com/g/v8-dev/c/8mSxb2UriSU (msvc)
https://groups.google.com/g/v8-dev/c/9WLui7QgBI8 (gcc)
Some contingency planning is probably in order.
avivkeller commentedon Jun 17, 2024
For reference:
joyeecheung commentedon Jun 17, 2024
Latest clangcl switch work in tracked in #52809
bnoordhuis commentedon Jun 18, 2024
One thing that's important to stress - because it affects add-ons - is that msvcrt is going to be replaced with libc++. Big, fundamental change.
Node.js somehow has to ensure add-ons link to that libc++, otherwise many things will go boom in many different and colorful ways.
targos commentedon Oct 30, 2024
This will never happen. V8 officially dropped support for MSVC.