Новости Торвальдс снова зол. Создатель Linux публично раскритиковал форматирование Rust-кода и небрежность разработчиков в pull-request

NewsMaker

I'm just a script
Премиум
21,017
46
8 Ноя 2022
Он объяснил, почему rustfmt его бесит.


w9rl3a2hmphnf4ztbyjzwf77xgns0wca.jpg

Создатель Linux Линус Торвальдс вновь публично раскритиковал разработчиков, на этот раз обратив внимание на форматирование текста и кода на Rust. Если накануне он заявил, что поддержка big endian для RISC-V в ядре Linux не планируется, то сегодня речь пошла о «безумном» стиле форматирования в Rust и небрежных пояснениях в заявках.

Поводом стало очередное pull-request для DRM-подсистемы , присланное на рассмотрение. Торвальдс отметил, что текст выглядит как «бессистемный набор слов», в котором потерялась исходная структура.

«Заметьте, там есть несколько под-разделов: Alloc, DMA/Scatterlist, DRM и Rust. Но всё это в случайной куче, потому что вы, видимо, просто вставили это в редактор или MUA и потеряли отступы», — написал он.

По словам Торвальдса, подобная небрежность полностью рушит многоуровневую иерархию, которая изначально явно присутствовала. В шутку он спросил, не использует ли автор древний редактор Edlin из эпохи MS-DOS.

После этого внимание перешло к Rust-коду, который появился в ядре с версии 6.18. Торвальдс отметил, что форматирование директив use вызывает у него серьёзные нарекания.

«Я ненавижу бессмысленную и совершенно безумную проверку rustfmt. Я привёл несколько use crate::xyz; к более аккуратной записи в блоке, чтобы легко добавлять новые строки. Но rustfmtcheck превратил это в сжатую однострочную запись, и я не понимаю, какие вообще у него эвристики», — заявил он.

Торвальдс подчеркнул, что автоматическое средство форматирования «буквально ухудшает сопровождаемость кода», усложняя слияния изменений и будущую разработку.

Особенно его возмутила непоследовательность правил: в одних случаях инструмент настаивает на многострочном формате, в других — на компактной записи, что, по его словам, «создаёт путаницу и раздражает».

Он обратился к Мигелю Охидио, который просил его использовать rustfmtcheck, с просьбой найти «здравое решение». При этом Торвальдс отметил, что оставил код в своём варианте, игнорируя предложения инструмента.

В подтверждение своих слов он привёл ссылку на официальный гайд Rust , отметив, что предложенные там правила могут быть уместны для компактных структур данных, но к директивам <code>use</code> они не подходят, так как речь идёт об «независимых сущностях».

По его мнению, именно из-за «ужасных случайных эвристик rustfmt» многие разработчики предпочитают оставлять каждую директиву use отдельной строкой.

Полная переписка доступна в LKML .
 
Источник новости
www.securitylab.ru

Похожие темы