3 ms·
Kind of, but that's kind of my point. It's a relatively recent development, and like you also hint, it's still incomplete. (e.g., IIRC /DEBUG:FASTLINK doesn't w
by dataflow 4y ago
Kind of, but that's kind of my point. It's a relatively recent development, and like you also hint, it's still incomplete. (e.g., IIRC /DEBUG:FASTLINK doesn't work, and I think SEH doesn't have full support either... last time I tried using Clang/LLVM I ran into lack of support for some features I wanted and had to revert to MSVC.) For another, Clang is the exception (no pun intended) rather than the norm among these *nix tools. After refusing to adapt like the rest, it finally caved in. Most *nix folks still don't seem to accept that the sensible thing is to follow the platform (case in point being the comment I replied to). And lastly... it's not even always the default behavior for Clang. The versions you get bundled with (say) MinGW still refuse to follow the platform rules, due to the eagerness to cater to GNU. It's only the MSVC-flavored ones that have any respect for the platform they're trying to support. Then people keep bashing (again no pun intended) Windows for not following UNIX conventions...
- pjmlp 4y agoYeah, the usual any OS is good, as long as it is an UNIX clone.
- mook 4y agoI believe SEH (possibly for x86?) used a patented algorithm (Wikipedia says it expired in 2014), so it wasn't possible to actually do anything about it earlier than that.
- gpderetta 4y agoIIRC the Windows 64bit exception unwind table model was also different enough (and not well documented) from DWARF that it took a long time to implement it (I'm not sure if it is fully working yet).
- dataflow 4y agoI don't believe I was complaining about lack of SEH support pre-2014 anywhere. I just said I've run into issues around it with Clang today. Also note that SEH was never the sticking point for ABI compatibility. Even the mangling of "void foo()" wasn't something *nix compilers attempted compatibility with.
- bpye 4y agoI suspect part of the issue was that until Visual Studio 2015 MSVC did not have a stable C++ ABI [0]. [0] - https://learn.microsoft.com/en-us/cpp/porting/binary-compat-2015-2017?view=msvc-170 https://learn.microsoft.com/en-us/cpp/porting/binary-compat-...