Back to archive
#ai#agents#coding-agents

Paint.NET testuje bibliotekę Direct2D napisaną głównie przez Claude’a

Paint.NET 5.2 Alpha można eksperymentalnie uruchomić w Wine dzięki własnej bibliotece Direct2D. Według autora programu Claude w trzy tygodnie napisał większość z około 180 tys. linii tej biblioteki. Rozwiązanie omija braki Wine, ale nie przeszło pełnego przeglądu; autor opisuje je jako wolne i niestabilne.

Uruchamianie Paint.NET 5.2 Alpha w Wine

Paint.NET 5.2 Alpha w kompilacji 9739 można eksperymentalnie uruchomić w Wine na Linuksie. Po użyciu parametru /wine program omija niepełną obsługę Direct2D w Wine i ładuje własny odpowiednik tej biblioteki. Został napisany od zera w zarządzanym kodzie i znajduje się w pliku PaintDotNet.Windows.Direct2D1.Managed.dll.

Według Ricka Brewstera, autora Paint.NET, Claude napisał większość z około 180 tys. linii nowej biblioteki w ciągu trzech tygodni. Brewster przejrzał kod łączący ją z aplikacją, lecz nie zdołał przeczytać całej implementacji. Podczas pracy znalazł między innymi brak odpowiednika AddRef() dla obiektów COM oraz złe decyzje architektoniczne. Ostrzega, że obecna wersja jest wolna, niestabilna i nie nadaje się jeszcze do zwykłej pracy.

Wymagania Wine i pierwsze zgłoszenie błędu

Oficjalne wydanie w serwisie GitHub potwierdza numer kompilacji, wersję przenośną i osobną instrukcję dla Wine. Do uruchomienia potrzeba co najmniej Wine 11.14 oraz DXVK. Trzeba też skonfigurować Wine tak, by używał dołączonej wersji d3dcompiler_47. Program uruchamia się następnie z parametrem /wine. Już wcześniejsza kompilacja 9719 dodała przełączniki wyłączające elementy animacji i kompozycji, które nie działały poprawnie w Wine.

Społecznościowy projekt Paint.NETOnWine opisywał te przeszkody jeszcze przed premierą. Nowe wersje programu mocno zależą od niepełnych implementacji Direct2D i UIAnimation w Wine; według ówczesnego opisu seria 5.2 ulegała awarii przy uruchamianiu. Repozytorium zawiera również wcześniejsze poprawki do Wine i skrypty przygotowane przez kilku współtwórców.

Autor zgłoszenia w WineHQ uruchomił kompilację 9739 na Wine 11.16, podał sumę kontrolną pobranego archiwum i opisał zbyt szerokie okno narzędzi. Zgłoszenie potwierdza uruchomienie aplikacji w tej konfiguracji, lecz nie zawiera oceny poprawności renderowania. Chiński serwis Solidot opisał premierę i sposób instalacji, ale nie przetestował samej biblioteki Direct2D.

Nie da się niezależnie sprawdzić liczby linii, udziału Claude’a ani deklaracji, że nowy kod powstał bez zaglądania do źródeł oryginalnej biblioteki. Źródła Paint.NET są zamknięte, a repozytorium wydania zawiera tylko plik README i gotowe paczki. Te trzy twierdzenia opierają się wyłącznie na relacji Brewstera. Zewnętrznego audytu kodu nie opublikowano.

Testy renderowania i zarządzania zasobami

Starsze rozmowy użytkowników Wine i Paint.NET od lat wracały do tego samego problemu: współczesne wydania programu nie działały na Linuksie z powodu braków w Direct2D i UIAnimation. Nowa kompilacja omija znaną przeszkodę, ale opublikowano dotąd zbyt mało testów, by ocenić zgodność efektów, szybkość działania i liczbę awarii na różnych dystrybucjach.

Brewster nie przejrzał całej biblioteki liczącej około 180 tys. linii. Porównuje obrazy generowane przez nową implementację z wynikami wersji referencyjnej i testuje zachowanie całej aplikacji. Porównanie obrazów pozwala wykryć źle narysowany efekt, lecz nie sprawdza zwalniania zasobów ani czasu życia obiektów. Znaleziony przez Brewstera brak AddRef() może nie zmienić wyglądu obrazu. Osobnego przeglądu wymaga również konstrukcja kodu pod kątem jego późniejszego utrzymania.

Praca Brewstera i stan eksperymentalnego wydania

Brewster wybrał architekturę, przygotował środowisko, połączył bibliotekę z aplikacją i poprawiał błędy. Społeczność wcześniej rozpoznała braki po stronie Wine. Według Brewstera praca z Claude’em pozwoliła w trzy tygodnie stworzyć komponent o rozmiarze odpowiadającym mniej więcej jednej czwartej pozostałego kodu Paint.NET. Nikt niezależny nie potwierdził tego czasu ani udziału modelu.

Biblioteka pozostaje częścią eksperymentalnego wydania, które według Brewstera jest wolne i niestabilne. Dotychczasowe porównania obrazów i testy aplikacji nie wystarczyły, by uznać ją za gotową do zwykłej pracy.

Brak pomiarów zgodności, wydajności i awaryjności

Nie opublikowano wyników zgodności z Direct2D, pomiarów wydajności ani statystyk awarii. Nie wiadomo, jaką część kodu obejmują testy, kto będzie go utrzymywał i czy rozwiązanie trafi do stabilnej wersji programu. Zamknięte źródła utrudniają też ocenę ryzyka licencyjnego. Jedno zgłoszenie z WineHQ nie wystarcza, by potwierdzić działanie na większej liczbie konfiguracji.

Źródła

Źródła pierwotne

Niezależne analizy i relacje

Dyskusje publiczne