Projekt Darling, rozwijający warstwę podobną do Wine do uruchamiania aplikacji macOS w systemie Linux, zatwierdził możliwość wykorzystania narzędzi AI w rozwoju. Do składu Darling teraz oficjalnie dozwolone jest przyjmowanie kodu stworzonego za pomocą AI, pod warunkiem spełnienia określonych wymagań. Decyzja została podjęta w warunkach niedoboru programistów i zasobów w projekcie, a także w obliczu ciągłego wzrostu liczby proprietary frameworks Apple (jeśli w macOS 10.14 było 273 publicznych i 878 prywatnych frameworków, to w macOS 27 jest ich 464 i 2754 odpowiednio).
Zakłada się, że nowe zasady zapobiegną stagnacji rozwoju i fragmentacji społeczności, a także umożliwią połączenie wysiłków z programistami forków aktywnie wykorzystującymi AI. Takie forki poczyniły postępy i pokazują wysoką szybkość rozwoju, na przykład fork darling-lol osiągnął uruchomienie macOS wersji gry League of Legends, a VibeDarling odniósł sukces w wsparciu architektury ARM64 i realizacji wielu oryginalnych aplikacji macOS.
W ciągu najbliższych dwóch miesięcy do głównej wersji Darling planuje się zintegrowanie osiągnięć z zewnętrznych forków, wykorzystując narzędzia AI do łączenia zmian. Planowane jest również wprowadzenie oficjalnego wsparcia dla architektur i386, x86-64 i ARM64 (aarch64) oraz umożliwienie uruchamiania ARM64 wersji aplikacji na systemach x86-64, korzystając z rekompilatora Dynarmic. Długoterminowe plany obejmują stabilizację warstwy zgodności z AppKit oraz stworzenie własnych narzędzi graficznych do zarządzania środowiskiem Darling (na przykład przeglądarki logów w stylu Console.app), które także będą pełnić rolę wzorcowych aplikacji testowych.
Jeśli chodzi o przyjmowanie pull requestów z kodem przygotowanym za pomocą AI, będą one akceptowane tylko, jeśli deweloper przekazujący zmianę bierze odpowiedzialność za każdy wiersz kodu, jest w stanie wyjaśnić zmiany własnymi słowami i nie używa AI w kontakcie z osobami przeglądającymi. Wprowadzone zostaną również ścisłe zasady „czystego pomieszczenia”, które pozwalają na ponowne wdrażanie funkcjonalności wyłącznie na podstawie dokumentacji API, plików nagłówkowych, standardów, RFC, publicznych źródeł i analizy zachowań, bez użycia proprietarnych kodów Apple, wycieków informacji i dezasemblerowania w celu bezpośredniego odtworzenia kodu.
Projekt Darling rozwija się od 2012 roku i ma na celu umożliwienie uruchamiania aplikacji Linuxowych, stworzonych dla macOS, bez użycia wirtualizacji. W skład projektu wchodzi ładowarka plików wykonywalnych w formacie Mach-O oraz działające w przestrzeni użytkownika jądro darlingserver, które implementuje Mach IPC, interfejsy POSIX i wywołania systemowe Darwin na poziomie Linux. Oddzielnie rozwijane są alternatywne implementacje różnych frameworków Apple, takich jak Foundation, AppKit, CoreAudio i CoreFoundation. Niskopoziomowe komponenty, takie jak XNU i libSystem, opierają się na odpowiadających im otwartych komponentach opublikowanych przez Apple. Wysokopoziomowe komponenty są realizowane przy użyciu istniejących odpowiedników i dostępnych bibliotek. Wsparcie dla API graficznego Metal zapewnione jest poprzez translację do API Vulkan.
Źródło: opennet.ru
