3 ms·
Targeting only a hand full of frozen releases is not abi stability. Abi stability is when any app can be compiled off any release and run on any future release
by zer0zzz 3y ago
Targeting only a hand full of frozen releases is not abi stability. Abi stability is when any app can be compiled off any release and run on any future release (and ideally older releases too).
- yjftsjthsd-h 3y ago> Abi stability is when any app can be compiled off any release and run on any future release (and ideally older releases too). Hang on, if that's the standard why is MacOS getting a pass? I'd believe that Windows meets that bar, but I see posts on a routine enough basis about Apple forcing rewrites, unless I really misunderstood something there.
- zer0zzz 3y agoApple's actually quite good at this, but they do break things on purpose from time to time for reasons which they announce pretty publicly at WWDC when they do (32->64bit, deprecating GL, etc). So, for example a dev can target an app at iOS 8 and it still works fine on iOS 17. Thats almost a decade of OS updates that didn't affect an app. Here's an example: https://apps.apple.com/us/app/bebot-robot-synth/id300309944 https://apps.apple.com/us/app/bebot-robot-synth/id300309944
- jwells89 3y agoSimilarly, it’s possible to compile a Mac app that targets PowerPC, x86, and ARM supporting all of the versions of macOS implied by that spread of CPUs. X Lossless Decoder[0] is one such app, supporting all three archs and Mac OS X 10.4 up through macOS 14.x (current) in a single binary. It’ll work just as well on that circa 2000 400Mhz G3 iMac you picked up from a local yard sale as it will on a brand new M3 Pro MBP. [0]: https://tmkk.undo.jp/xld/index_e.html https://tmkk.undo.jp/xld/index_e.html
- zlg_codes 3y agoSuch a platform is doomed to never take a step forward because "oh no, something changed and now I have to increment my dependencies".
- zer0zzz 3y agoThe Apple ecosystem of platforms take steps forward all the time, and they do a pretty good job at keeping binary compatibility with releases decently well while they are at it. They partly do this by only shipping C, ObjC and Swift platform frameworks though.