How Swift Achieved Dynamic Linking Where Rust Couldn't A look at what's required to ship a dynamically linked system interface, the most interesting parts of Swift's stabilized ABI, and their incredibly ambitious resilient library evolution system https://gankra.github.io/blah/swift-abi/
-
-
were you using a hybrid monomorph/polymorph approach like swift does? that seems to smooth over the pain in a lot of places.
-
My takeaway at the time—that I still think I believe?—is that JITs are the only really elegant solution here.
- 2 more replies
New conversation -
-
-
A problem we're running into is that unspecialized value witnesses tend to accrete and become super slow because tiny functions bump one refcount then call another generic field value witness
-
It seems like, at system scale, the interpreter approach could start winning because you can always build a flat interpreter string and do away with the intermediate abstraction barriers. Also you can use it as a uniquing key to find prespecialized layout-specific value witnesses
- 1 more reply
New conversation -
-
-
We use a runtime interpreter for mangled names to represent generic instantiations of types, but we still emit code for value witness functions
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.