Линус Торвальдс выступил против парсеров Kconfig, не поддерживающих табуляцию

Линус Торвальдс отказался принимать в ядро изменение, заменяющее символ табуляции на пробел в разделителе параметра FTRACE_RECORD_RECURSION_SIZE в конфигурации ядра Kconfig. Изменение было предложено разработчиком проекта Fedora с примечанием, что использование табуляций приводит к сбою в работе парсера конфигурации. Вместо предложенного изменения Линус включил в ядро свой патч, специально добавляющий символы табуляции в определение настройки PAGE_SHIFT, задающей смещение для различных размеров страниц памяти.

Добавление табуляций в настройки, более значительные, чем FTRACE_RECORD_RECURSION_SIZE, объясняется тем, что в файле с настройками ядра допускается использование как пробелов, так и табуляций, поэтому если парсер не может нормально разобрать строку с табуляцией – это проблема парсера, которая должна быть устранена в нём. Команда “make defconfig” корректно принимает табуляции, поэтому и внешние парсеры тоже должны их обрабатывать.

Присутствие в поставляемом в ядре Kconfig не только пробелов, но и табуляций, позволит выявлять проблемные парсеры и стимулировать их исправление. Идея подгонять ядро под сбойные парсеры воспринимается как ущербная, так как даже если в эталонном Kconfig всегда будут только пробелы, обычный пользователь волен использовать табуляции в настройках на своих системах и подобное использование может привести к сбоям в неисправленных сторонних парсерах.

Release. Ссылка here.