Будь-хто може зробити свій внесок у ядро Linux, але пропозиція будь-якої особи може стати предметом майстра ядра та тезки Лінуса Торвальдса. Відомо, що Торвальдс не надто прихильний до милосердя, хоча він працює над цим з 2018 року. Ви можете побачити проблиски цього нового, менш проклятого підходу в тому, як Торвальдс нещодавно звернувся до коміту, з яким він категорично не погоджувався. Він включає вкладки.
Комміт минулого тижня змінив рівно одну річ в одному рядку, замінивши символ табуляції пробілом: «Це допомагає аналізаторам Kconfig читати файл без помилок». Торвальдс відповів власним комітом, як помітив The Register, який «навмисно додає кілька прихованих вкладок». Спроба згладити питання «табуляції проти пробілів», здавалося, пробудила Торвальдса думку про необхідність зробити помилки виявлення табуляції «більш очевидними». Торвальдс додав би більше, писав він, але «не хотів робити речі потворнішими, ніж потрібно. Але це *може* знадобитися, якщо виявиться, що ми бачимо більше такого роду безглуздих інструментів».
Якщо ви дочитали до цього місця й не розумієте, що відбувається, будь ласка, дозвольте мені, невдалому неповнолітньому CS, запропонувати коротке пояснення: вкладки проти пробілів ніколи не будуть по-справжньому вирішені, кодифіковані чи встановлені правильно за стандартами, а енергія Витрачені на це питання з часом можуть, якщо їх використати, ймовірно, принести силу одній чи кільком малим націям. Тим не менш, ядро Linux має власний стиль кодування, і воно прямо цитує “K&R” або Kernighan & Річі, автори біблії програмування Мова програмування C,яка є книгою вкладок. Якщо ви надсилаєте код ядра, йому краще використовувати табуляції (в ідеалі, вісім символів табуляції, хоча це частково пов’язано з історією телетайпу та рядкового принтера).
Оголошення
Намагаючись згладити одну крихітну частину ядра, щоб інструмент синтаксичного аналізу міг бачити пробіл як розмежований пробіл, Прасад Пандіт ненавмисно викликав серйозне спростування:
Незрозуміло, що це за інструмент, але давайте переконаємося, що його виправлять. Тому що, якщо ви не можете аналізувати вкладки як пробіли, вам не слід аналізувати файли Kconfig ядра.
Насправді, давайте зробимо таку поломку більш очевидною, ніж якийсь езотеричний варіант розміру запису ftrace. Якщо ви не можете аналізувати вкладки, ви не можете мати розміри сторінок.
Так, плутанина між табуляцією та пробілом є, на жаль, традиційною річчю Unix, і «make» відомий тим, що він зламаний у цьому відношенні. Але ні, це не означає, що це нормально.
Приховані вкладки Torvalds з’являються в четвертому випуску-кандидаті для ядра Linux 6.9, у якому, за словами Торвладса, «не відбувалося нічого особливо незвичайного» протягом тижня його випуску.
Оприлюднення: автор є табулятором, оскільки він має будь-яке уявлення про те, що він робить.
Цю публікацію було оновлено о 18:33 за східним часом, щоб виправити деякі проблеми з розривом рядків у цитаті Торвальдса. Іронія була належним чином помічена. Краще посилання щодо Tabs Vs. Spaces дебати також були замінені.