src: mitigate MSVC dynamic initialization bug#25596
Conversation
|
The change LGTM, but as @seishun says in the other thread – it shouldn’t do anything at all? Along the lines of #25593 (comment): This shouldn’t be an issue when the definitions are all in one file, and it’s likely that something else is going on here… |
|
Let's not make magical workarounds. We should figure out why this is happening and (most likely) submit a bug report to Visual Studio. |
|
I agree this is "magical". AFAICR that is why I didn't submit a PR with this till now. |
|
If the underlying issue in the compiler is not fixed then it might break in another way in the next version. |
bzoz
left a comment
There was a problem hiding this comment.
Until we get new VS with the bug fixed, we need to do something to make Node work again.
FYI it works - just not the debug build. |
|
In any case, the commit message should explain what the problem is and how it's being mitigated. |
|
The problem is now "Under Investigation" so maybe it will be fixed very soon. |
|
@refack I think with an updated commit message this should be ready to go 👍 (And I’m assuming we want to merge this even if it gets fixed in the compiler itself) |
I don't think so - I find it slightly more readable when an instance definition follows the class definition. |
|
I've tested |
a7ad6a8 to
0c256f1
Compare
0c256f1 to
31f4c4f
Compare
PR-URL: nodejs#25596 Fixes: nodejs#25593 Refs: https://developercommunity.visualstudio.com/content/problem/432157/dynamic-initializers-out-of-order.html Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
31f4c4f to
e3c4b67
Compare
PR-URL: #25596 Fixes: #25593 Refs: https://developercommunity.visualstudio.com/content/problem/432157/dynamic-initializers-out-of-order.html Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
Fixes: #25593
Refs: https://developercommunity.visualstudio.com/content/problem/432157/dynamic-initializers-out-of-order.html
Checklist
make -j4 test(UNIX), orvcbuild test(Windows) passes