Torvalds celowo skomplikował użycie wcięć w rejestrze • kconfig

Torvalds celowo skomplikował użycie wcięć w rejestrze • kconfig

Linus Torvalds z najwyższej półki sprawił, że użycie wcięć w plikach konfiguracyjnych jądra stało się bardziej niejednoznaczne – celowo, aby wyeliminować niższe parsery.

Jądro 6.9-rc4, najnowszy Release Candidate dla następnej wersji jądra Linuksa, został wydany wczoraj. Wśród zwykłych sterowników i poprawek zawiera więcej Poprawki dla bcachefsTen sam Nowe rozcieńczenia Przeciwko niedawno wykrytym atakom polegającym na wstrzykiwaniu historii gałęzi nadrzędnej.

Jednak to właśnie zmiana wywołała największe rozbawienie na twarzy rej Biuro Wolnego i Otwartego Oprogramowania (FOSS) to zmiana kodu samego Linusa, zatytułowana Kconfig: Dodaj kilka celowo ukrytych kart. Zmienił niektóre linie z wcięciem tabulacji na wcięte tabulatorem, aby wychwycić parsery niskiej jakości.

Chociaż Torvalds jest znany ze swojego agresywnego podejścia do przekazywania informacji zwrotnych,… ma Pracował nad tym, a w 2018 roku zrobił sobie przerwę, aby pomóc mu lepiej kontrolować emocje w swoich e-mailach.

Ta zmiana może być tego przykładem. Lider jądra wykrył konkretną zmianę kodu, Zatwierdź d96c36004e31 Co miało jeden cel:

Napraw wpis FTRACE_RECORD_RECURSION_SIZE, zastępując tabulator spacją. Pomaga parserom Kconfig odczytać plik bez błędów.

Kconfig On jest Język kompozycji używany do kontroli System budowania jądraI jak wiele innych Języki podstawowe poza stroną, używa wcięć do definiowania bloków. Tak, dużo białych znaków, podobnie jak w Pythonie, YAML i wielu innych językach programowania i kompozycji. Kochasz to lub nienawidzisz, nie możesz od tego uciec.

W tej zmianie celowo skomplikował użycie wcięć w plikach konfiguracyjnych kompilacji jądra, aby zmusić autorów narzędzi analizujących te pliki do ulepszenia swojej gry. Jak wyjaśnia:

Upewnijmy się, że to naprawimy. Ponieważ jeśli nie możesz analizować tabulatorów jako białych znaków, nie powinieneś analizować plików Kconfig jądra.

Wydaje nam się, że to jest tego przykład Prawo Postelaw którym został konsekrowany RFC 761 W 1980 r.: Bądź liberalny w tym, co akceptujesz, i konserwatywny w tym, co wysyłasz. Wiele języków z wcięciem ma zalecany styl, np Python PEP-008Co mówi jasno i wyraźnie:

Użyj 4 spacji na każdy poziom wcięcia.

Ale w rzeczywistości, mimo że specyfikacje są rygorystyczne, kompilator z radością zaakceptuje różną liczbę spacji lub tabulacji w niektórych wierszach i spacji w innych, o ile programiści będą konsekwentni w sposobie ich użycia. To właśnie chce zobaczyć Linus i słusznie uważa, że ​​każde narzędzie analityczne, które zawodzi, gdy napotka tabulatory zamiast spacji, należy podzielić.

Zamiast więc brutalnej odpowiedzi na e-mail, używa jej celowo i celowo więcej Skomplikowane wcięcie w celu odsłonięcia narzędzi, z którymi nie możesz sobie poradzić. Należy wyeliminować najsłabsze narzędzia, pozostawiając jedynie te najodpowiedniejsze i najlepiej przystosowane… nie raniąc przy tym otwarcie niczyich uczuć.

Potraktuj to jako ewolucję w biznesie. ®

Halsey Andrews

„Lekarz gier. Fanatyk zombie. Studio muzyczne. Kawiarni ninja. Miłośnik telewizji. Miły fanatyk alkoholik.

Rekomendowane artykuły

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *