-
Notifications
You must be signed in to change notification settings - Fork 17
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
Breaking: Revert "[WIN/LINUX] Implement vtable dummies (virtual dtors) through extra trait" #50
Conversation
I have unfortunately not found a clear way to detect the version of |
…extra trait" This reverts commit c37cb03. [This commit] is squashed in the merge of PR #5, and does not exist in-tree. microsoft/DirectXShaderCompiler#3793 has finally been merged on October 13th 2022 and now allows us to drop the vtable dummies for virtual destructors again, as those are not part of the ABI and shouldn't have been in the vtable in the first place. [This commit]: c37cb03
4b4de09
to
a61fe02
Compare
We've previously done this by stating all the many commits that we landed upstream, together with DXC release tags. I've converted those overly verbose and hard-to-scan-through paragraphs to a simple table, describing exactly what DXC version is going to be needed for a given hassle-rs release: the only breaks happened with |
It's been quite a while ago (about two years) since we landed a whole bunch of compatibility fixes for DXC, and I hope everyone is using (much) newer releases by now. I also doubt anyone is interested in detailed descriptions of what we fixed (including the how and why), and just wants a clear answer on the DXC release or commit they must minimally use for compatibility with a certain `hassle-rs` release.
a61fe02
to
d626576
Compare
CC @cwfitzgerald, such breaking changes in DXC releases and |
Thanks for the heads up! What are the consequences of loading an old version? |
@cwfitzgerald It'll segfault, because the COM vtables changed (for the better, mind you!). And only on Linux, if you use DXC to compile SPIR-V (or for precompiling DXIL on a Linux server). |
It only segfaults on linux? If so, that's spooky but tolerable as we will only use DXC on windows. |
It's spooky but only because we previously worked around clearly-wrong vtable layouts, and it quite frankly took well over a year to fix upstream :/ |
DXC |
This reverts commit c37cb03. This commit is squashed in the merge of PR #5, and does not exist in-tree.
microsoft/DirectXShaderCompiler#3793 has finally been merged on October 13th 2022 and now allows us to drop the vtable dummies for virtual destructors again, as those are not part of the ABI and shouldn't have been in the vtable in the first place.
Note that releasing
hassle-rs
with this change relies on a DXC built with at least that PR, which was meged on October 13th.