Swift ABI Resilience - Victor Ciura - Meeting C++ 2023
ฝัง
- เผยแพร่เมื่อ 26 ส.ค. 2024
- Swift ABI Resilience - Victor Ciura - Meeting C++ 2023
Slides: slides.meeting...
Survey: survey.meeting...
No, this is not an "ABI - Now or Never" talk. What happens in Prague, stays in Prague :) But wg21.link/P1863 will probably come up in the discussions, so we might as well prepare for it.
We're taking a different route, by following the design and evolution of the Swift ABI model and seeing what we can learn from it. From ABI stability & dynamic linking to designing for ABI resilience - a journey through resilient type layout, reabstraction & materialization, resilience in library evolution and (opt-out) performance costs.
What can we learn from Swift's ABI resilience? Can C++ be liberated from the ABI conundrum?
Great talk, as I normally expect from Victor Ciura!!!
34:43 I think outlining can be important the more people use templates and strong-typedefs. For example std::lower_bound instantiated on “vector::iterator and std::less” will likely have the same asm as when instantiated on “vector::const_iterator and std::less”, and probably also on std::chrono::duration are used (where int is the representation).
Another place where I’ve seen people ’outline’ is to try and force some code out of an icache (where people also use [[unlikely]]). Sometimes “immediately invoked lambda expressions” can be used to hint to a compiler to outline some code.
37:56 Doug Gregor’s talk: th-cam.com/video/MgPBetJWkmc/w-d-xo.html