3 ms·
Stable ABIs don't seem like a good solution though. It is preferable that the system running the code should make the decisions on how best execute it. Especial
by SubjectToChange 6y ago
Stable ABIs don't seem like a good solution though. It is preferable that the system running the code should make
the decisions on how best execute it. Especially as hardware becomes more specialized and diverse. Additionally,
guarantees of stability necessarily increase maintenance burdens, so they should be avoided whenever possible.
IMO, the best solution would be something like SPIR-V. That is, programs are shipped in an intermediate
representation which a platform-specific compiler would reduce to the final program. That way no stable ABI is
needed, there is less maintenance for distros and toolchains, and end users still get high quality binaries.
Of course there are issues with protecting the intermediate representations of programs from reverse engineering.
But the combination of strong DRM with obfuscation should satisfy most software vendors. After all, most companies
are comfortable shipping Java based programs.
- tn1 6y agoI believe Apple sort of does this for iOS: developers submit LLVM IR to them and they compile it to send to end users