LINUX.ORG.RU
ФорумTalks

Почему во многих программах не исправляют варнинги?


0

2

Смотря за сборкой программ на своей Gentoo, давно мучаюсь вопросом, почему так много предупреждений выскакивает при сборке приложений и их никто не исправляет?

★★★★

Последнее исправление: keeper_b (всего исправлений: 1)

потому что программы работают во множестве сред: десяток версий gcc, тучи версий сторонних либ, разные архитектуры и т.п. Уберёшь в одном месте варнинг - у тебя в другой конфигурации вылезет 10 других.
Плюс разные версии языка. Поставь например -ansi -pedantic и посмотри, сколько ещё варнингов оно тебе вывалит.

Так что либо обкладываться ifdef'ами по самое не хочу, загромождая вполне себе рабочий код, либо забить на какие-то тупые варнинги в некоторых конфигурациях.

Либо не писать на C/++, а использовать какую-нибудь расово верную платформу, где одна реализация и неизменное API. Вы таких знаете?

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

Я последние минут десять только то и делаю :)

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

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

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

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

> Так что либо обкладываться ifdef'ами по самое не хочу, загромождая вполне себе рабочий код, либо забить на какие-то тупые варнинги в некоторых конфигурациях.

еще можно выборочно отключить варнинги через #pragma GCC diagnostic и #pragma warning

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

начальство требовало даже notice исправлять

А что, в наше время кто-то NOTICE ещё игнорирует? :)

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

Хм. «Стандартные» уже довольно давно:

; error_reporting
;   Default Value: E_ALL & ~E_NOTICE
;   Development Value: E_ALL | E_STRICT
;   Production Value: E_ALL & ~E_DEPRECATED

Как бы намекает :)

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

>EMERGE_DEFAULT_OPTS="--jobs=4", и подобных вопросов не возникает...

Только не так давно у меня машина, имея 3Гб оперативки и 2Гб свопа с --jobs=2 (и -j2 в make) зависала по исчерпанию памяти. При чём сценарий такой был: запускаю обновление и ухожу на работу. Прихожу — всё висит. С учётом http://balancer.ru/g/p2478672 грешил на перегрев, но после чистки кулера ситуация не улучшилась. Подумал, что мать уже от старости накрывается. И только на выходных, сидя за машиной, просёк, что с какого-то момента стала стремительно кончаться память :D qt/kde всякое отжирало при компиляции. Сейчас стоит --jobs=2 и убрано -j в MAKEOPTS :)

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

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

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