Stabilność ABI i jej znaczenie

Spis treści

  1. Co to jest ABI?
  2. Co to jest stabilność ABI?
  3. Dlaczego stabilność ABI jest tak ważna dla Swift Developers?
  4. Największe zalety stabilności ABI
  5. Przydatne linki

Co to jest ABI?

W czasie runtime pliki binarne Swift oddziałują z innymi bibliotekami i komponentami za pośrednictwem ABI. ABI oznacza Application Binary Interface – jest to specyfikacja, z którą niezależnie skompilowane jednostki bibliotek muszą się zgadzać, aby być ze sobą połączone i wykonywalne. Te jednostki binarne muszą uzgodnić wiele szczegółów niskiego poziomu, takich jak sposób wywoływania funkcji, sposób reprezentowania ich danych w pamięci, a nawet to, gdzie znajdują się metadane i jak uzyskać do nich dostęp.

Co to jest stabilność ABI?

Stabilność ABI oznacza zablokowanie ABI do tego stopnia, że ​​przyszłe wersje kompilatora mogą generować pliki binarne zgodne ze stabilnym ABI. Gdy ABI jest stabilne, ma tendencję do utrzymywania się przez czasu istnienia platformy dzięki stale rosnącym wzajemnym zależnościom.

Dlaczego stabilność ABI jest tak ważna dla Swift Developers?

Przed Swift 5 programiści muszą zdawać sobie sprawę z problemów ze zgodnością wersji, ponieważ poprzednie wersje Swift różnią się od siebie. Nie było uzgodnionych plików binarnych do komunikowania się ze sobą. Prowadzą one do wielu problemów migracyjnych. Konieczna była migracja całego kodu do najnowszej wersji Swift, aby mieć pewność, że się nie zepsuje.

Migracja w Swift

Nie było wbudowanych bibliotek, więc rozmiar aplikacji był zawyżany przez wszystkie biblioteki, za każdym razem, gdy aplikacja zbudowała dynamiczną bibliotekę Swift, zostaje osadzona w pakiecie aplikacji w celu obsługi określonej wersji Swift, dla której budowana jest aplikacja.

Dzięki zwiększonej stabilności ABI która pojawiła się z wprowadzeniem Swift 5, wszystkie przyszłe wersje zostaną spakowane i połączone bezpośrednio z systemem operacyjnym. Oznacza to, że jeśli w przyszłych wersjach Swift pojawią się jakiekolwiek zmiany, będą one dostarczane z systemem operacyjnym, nad którym pracuje programista, i będą automatycznie używane przez aplikację, gdy jest uruchomiona w tym systemie operacyjnym, bez potrzeby ponownej kompilacji i ponownego dostarczenia aplikacji.

Ponadto, ponieważ biblioteki Swift nie będą musiały być osadzane w aplikacji, rozmiar pakietu aplikacji zmniejszy się, co prowadzi do mniejszego zużycia pamięci. Zmniejszenie ogólnego rozmiaru aplikacji jest również zaletą dla użytkowników, ponieważ mogą zużywać mniej zasobów do pobrania aplikacji z App Store.

Największe zalety stabilności ABI:

Zmniejszony rozmiar pakietu

Nie ma już potrzeby dołączania standardowej biblioteki Swift do folderu Framework, ponieważ stabilne środowisko wykonawcze Swift jest włączone do systemu operacyjnego.

Kompatybilność źródła

Nigdy więcej kłopotliwych migracji – nowsze kompilatory mogą kompilować kod napisany w starszej wersji Swift.

Kompatybilność binarna

Aplikacja zbudowana z jedną wersją kompilatora Swift będzie mogła komunikować się z biblioteką zbudowaną z innej wersji.

Rzadsze zmiany języka

Przydatne linki:

https://github.com/apple/swift/blob/master/docs/ABIStabilityManifesto.md

https://swift.org/blog/abi-stability-and-more/

https://www.raywenderlich.com/1301449-what-s-new-in-swift-5-abi-stability

5 (100%) 1 vote[s]