LINUX.ORG.RU

Линус Торвальдс сказал «нет» коду с предупреждениями компиляции

 , , , ,


0

1

Линус Торвальдс изменил параметры компиляции кода ядра Linux по умолчанию. Теперь при сборке используется параметр -Werror, приводящий к интерпретации любого предупреждения как ошибки и, соответственно, к остановке сборки ядра с этой ошибкой. Данное изменение конфигурируется новым параметром WERROR, который включен по умолчанию.

По мнению Линуса, изменение должно повлиять на качество кода и в частности, на качество пулл-реквестов, которые он получает. Для большего эффекта он постучал по дереву (Knock wood) прямо в сообщении к коммиту.

>>> Подробности



Проверено: Shaman007 ()
Последнее исправление: hobbit (всего исправлений: 3)

Ответ на: комментарий от frost_ii

«разборчивая невеста»

Это про выбор «самого лучшего». Судя по ответу нужен всего лишь «лучше среднего».

anonymous
()

Не очень мудрое решение.

Единожды закомиченный код с -Werror естественным образом склонен к протуханию, даже если в нём не меняется ни символа. Просто потому, что gcc разрабатывается, и в нём появляются новые предупреждения. Сам на такое напарывался с кодом трёхлетней давности.

https://embeddedartistry.com/blog/2017/05/22/werror-is-not-your-friend

Quote
()
Ответ на: комментарий от PPP328

Хорошо было бы если бы какой-нибудь clang-analyzier туда пришпендюрили в автоматическом режиме и не давали компилить если предупреждения появляются.

Что-то я скептически смотрю на вероятность успеха этой затеи. Статические анализаторы имеют ложные срабатывания, а clang-tidy, например, вообще выдает среди предупреждений рекомендации. В зависимости от веления левой пятки разработчиков, успешная сборка ядра может стать зависимой от версии компилятора и анализатора.

m0rph ★★★★★
()
Ответ на: комментарий от anonymous

Первую половину посмотреть, а среди второй уже выбирать, учитывая ранее собранную статистику.

hummer
() автор топика
Ответ на: комментарий от frost_ii

Уточню, что не трети, а 100/e% (примерно 37%).

Забавно, что в диссертации Березовского рассматривается обобщение этой задачи.

Legioner ★★★★★
()
Последнее исправление: Legioner (всего исправлений: 1)
Ответ на: комментарий от anonymous

Ждем патчей с -Wno-error на каждый чих.

anonymous таки правильно предвидел:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=20fbb11fe4ea99e02d77824613f1438bea456683

don't make the syscall checking produce errors from warningsHEADmaster
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat
-rwxr-xr-x	scripts/checksyscalls.sh	2	
		
1 files changed, 1 insertions, 1 deletions
diff --git a/scripts/checksyscalls.sh b/scripts/checksyscalls.sh
index b7609958ee364..fd9777f63f147 100755
--- a/scripts/checksyscalls.sh
+++ b/scripts/checksyscalls.sh
@@ -266,4 +266,4 @@ syscall_list() {
 }
 
 (ignore_list && syscall_list $(dirname $0)/../arch/x86/entry/syscalls/syscall_32.tbl) | \
-$* -E -x c - > /dev/null
+$* -Wno-error -E -x c - > /dev/null
hummer
() автор топика
Ответ на: комментарий от Quote

Ни одного толкового аргумента или примера в статье. Только какое-то сотрясение воздуха.

Вообще это хорошо, что даже сишники начали понимать, что UB - это плохо.

anonymous
()
Ответ на: комментарий от Legioner

Справедливости ради: на собеседовании этот вопрос задают не столько для понимания теоретического базиса, сколько для понимания характера человека и определения его потенциальной роли и места в коллективе.

anonymous
()
Ответ на: комментарий от anonymous

Справедливости ради: на собеседовании этот вопрос задают…

… только для того, чтобы попиз…ть задать вопрос.

anonymous
()
Ответ на: комментарий от hummer

попадётся кто-то лучше среднего показателя

А если дальше каждая будет хуже предыдущей? Или просто все будут хуже среднего по набранной статистике?

grem ★★★★★
()
Ответ на: комментарий от grem

А если…

Ответ (правильность) на этот вопрос не влиял выбор. С таким же успехом могли поговорить о политике Трампа погоде.

anonymous
()

Лучше бы он хипстерским поделкам вроде раста нет сказал.

Reset ★★★★★
()
Ответ на: комментарий от anonymous

О погоде - это долго. Если человек отвечает, как топик стартер ответил, значит он самец, со всеми вытекающими. Самцовость - это движущая сила к лидерству. А бабы любят деньги итд. Отсюда мотивация к работе. Не все так просто:) Привел пример утрированно.

anonymous
()
Ответ на: комментарий от podstrekatel

Да я и получал, пока хипстерские ручонки до святого не добрались. Про старикана турвальдса вообще молчу…

anonymous
()
Ответ на: комментарий от Quote

Так кто же запрещает CONFIG_WERROR установить в n?

Но вообще нынче ядро и с Clang собирают, а у него совершенно другой набор диагностик.

Но имхо это всё же к лучшему. Человек может и пропустит что-то, а компилятор нет.

a1batross ★★★★★
()
Ответ на: комментарий от anonymous

Нет. Не самец кинется на первую/вторую встречную. Другой будет углубляться в теорию и вместо принятия решения рассуждать. Третий… Я не говорю, что кто-то из них плох или хорошь. Просто каждый из них индивид, со своим характерам и задатками. А если собираешь коллектив, нужно понимать как каждый поведет себя в какой ситуации.

anonymous
()
Ответ на: комментарий от anonymous

Я бы кинулся на ту которая меня ждёт и возбуждает с одного слова

podstrekatel
()
Ответ на: комментарий от anonymous

Без причины отфутболил половину красоток. Может, он - импотент, а не самЭц?

Не, самец знает, что он всегда найдет, то что ему нужно. Не самец боится остаться не у дел. Там еще жадность включается и заверте…

anonymous
()
Ответ на: комментарий от Quote

Единожды закомиченный код с -Werror естественным образом склонен к протуханию, даже если в нём не меняется ни символа. Просто потому, что gcc разрабатывается, и в нём появляются новые предупреждения. Сам на такое напарывался с кодом трёхлетней давности.

А не надо -Wall использовать и подобное.

Вот мой конфиг

-Wreturn-type -Wpointer-sign -Wsign-compare -Wshadow -Wpointer-arith -Wimplicit -Wformat -Werror -Wno-parentheses -Wuninitialized

10 лет назад был такой

-Wreturn-type -Wpointer-sign -Wsign-compare -Wshadow -Wpointer-arith -Wimplicit -Werror

(отличия: про -Wformat раньше не знал, -Wuninitialized не поддерживался в старом gcc, -Wno-parentheses добавил из-за того что оно включено по дефолту в дурацком цланге, который теперь иногда встречается)

Никаких неожиданных левых ошибок не появлялось со временем. А вот ловить опечатки и недосмотры - прекрасно справляется. Если в коде есть хоть один из этих варнингов - он явно не доработан, поэтому незачем делаь вид что он скомпилировался.

Ну а если сам добавил новый варнинг в конфиг и код вдруг его получил - ну круто, в коде был баг и мы его наконец нашли, надо срочно исправлять.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от anonymous

Повторюсь, любой ответ не является плохим.

anonymous
()
Ответ на: комментарий от hummer

Судя по всему тест прошли удачно.

Да, предложил первую половину пути никого не выбирать, а собирать статистику и лишь затем выбрать, когда попадётся кто-то лучше среднего показателя.

Тест то вы может прошли и удачно, но ваша стратегия далеко не оптимальна.

https://ru.wikipedia.org/wiki/задача_о_разборчивой_невесте

Crocodoom ★★★★★
()
Ответ на: комментарий от podstrekatel

А может внешняя красота не главное?)

А (унижаться и) искать ответы на глупые вопросы - это главное?

anonymous
()
Ответ на: комментарий от anonymous

мальчишки были на дороге

То задача слишком прямолинейно гуглилась бы для говорливых разборчивых самок невест на собеседовании.

anonymous
()
Ответ на: комментарий от anonymous

мотивация к работе

Глупость мотивация - для достижения цели, а не для работы. Мотивировать к бесцельной работе может только эксплуататор.

anonymous
()

Сначала Торвальдс разрешил раст.

Теперь Торвальдс включил -Werror.

Он что, таки встал на путь «Быдлокодер не скомпилит!»?

apt_install_lrzsz ★★★
()
Ответ на: комментарий от anonymous

Мотивация в данном контексте - это желание обладать самками, которые любят денег… а денег дают за успешно выполненную работу (сферически в вакууме)

anonymous
()
Ответ на: комментарий от apt_install_lrzsz

безаргументно

Неаргументированно, безосновательно, голословно.

Не говорите, развелось старперов. Ворчат, ничего не делают…

И за что мы их кормить только должны?! Отчисляем этим бездельникам в фонды, а они только брюзжат. Нет бы новое ядро запилили, пока мы котиков в стограмме пялим, да на пистонах парсеры ваяем за лут.

anonymous
()
Ответ на: комментарий от anonymous

желание обладать…. , которые любят денег

Сразу пиши, что ты любишь деньги, все любят деньги, все есть деньги. Скрудж Макдак головного мозга.

anonymous
()
Ответ на: комментарий от anonymous

Неаргументированно, безосновательно, голословно.

Оно самое.

Нет бы новое ядро запилили, пока мы котиков в стограмме пялим

Одна из основ интернета, между прочим.

да на пистонах парсеры ваяем за лут

Да кому было бы нужно это всякое ядро, если бы оно петон крутить не могло.

apt_install_lrzsz ★★★
()
Ответ на: комментарий от apt_install_lrzsz

Слабовато. Попробуйте есчо

anonymous
()
Ответ на: комментарий от anonymous

Самец безденежных! Вот зачем писать сообщения от анонима здесь? Здесь нет денег! Здесь нет самок! Здесь нет мотивации!

anonymous
()
Ответ на: комментарий от apt_install_lrzsz

Нет бы новое ядро запилили, пока мы (старперы) котиков в стограмме пялим

Но ведь Вы в своей коНпеляции правильно ведь понимаете, как должно было бы быть.

Хотелось бы экшна уже.

anonymous
()
Ответ на: комментарий от anonymous

Если немножечко включить МНУ и перечитать чуть выше того комента, на который Вы отвечаете, то все встало бы на свои места. Я понимаю, что так делать немодна и несовременна, зато эффективна. Инфа соточка!

anonymous
()
Ответ на: комментарий от anonymous

Я понимаю, что так делать немодна и несовременна, зато эффективна.

Шизик, бессмысленно отправлять анонима читать коменты анонима. Ниафиктивна.

anonymous
()
Ответ на: комментарий от anonymous

Шизик, бессмысленно отправлять анонима читать коменты анонима. Ниафиктивна.

Рилли? Потрайте пожамкать баттом комментарий, на плашке комментарий. Откроете для себя много нового. Прежде чем сказать, проверил. Работает иффиктивна111 вот прям как надо.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.