Конечно, всегда есть возможность внести столько изменений, что предупреждения перестанут считаться эквивалентными. Сейчас для сравнения используются такие свойства предупреждения:
тип предупреждения,
полное имя функции,
путь к файлу,
специфичная для конкретного типа предупреждения строка (т. н. "details"), идентифицирующая это предупреждение. В неё могут входить, например, имена переменных или выражения, упоминаемые в тексте предупреждения.
Можно подумать о том, чтобы не использовать путь к файлу, так как полного имени функции достаточно для языков, в которых функции находятся в классах и пространствах имён, а для функций на C включать путь к файлу в полное имя функции.
Подход с комментариями в коде тоже имеет свои недостатки. Например, при изменениях в коде или обновлении версии анализатора ложное срабатывание может исчезнуть, а на той же строке появится истинное предупреждение того же типа. В случае с разметкой на сервере details изменится (например, если в сообщении о разыменовании null теперь говорится о другой переменной), и новое предупреждение не будет размеченным, а при использовании комментария в коде оно останется подавленным.
Разумеется, это не нужно повторять постоянно – для этого и предназначен сервер истории. Возможно, Вы каждый раз создаёте новый сервер вместо того, чтобы один раз создать его и загружать результаты последующих анализов на него. Svace сопоставляет предупреждения с ранее выданными даже при изменениях в анализируемом коде, и ранее размеченные предупреждения останутся размеченными.
Добрый день, Анастасия! Меня зовут Михаил, я младший научный сотрудник ИСП РАН и один из разработчиков Svace. Я хотел бы дополнить комментарий Дмитрия.
Вместо подавления ложных срабатываний можно воспользоваться разметкой – пометить предупреждение как истинное (true positive) или ложное (false positive) в веб-интерфейсе сервера истории (как встроенного, так и Svacer), а затем выбрать фильтр, чтобы не показывать предупреждения, размеченные как ложные. Это решает Вашу задачу и при этом не загромождает исходный код комментариями для подавления предупреждений.
Проблема с галочками проявлялась в редкой ситуации, когда в разных каталогах присутствуют файлы с полностью совпадающим содержимым. Эта проблема уже исправлена 27 июля, исправление войдёт в следующий релиз.
Замедление анализа может иметь различные причины: добавление новых чекеров или видов анализа, неоптимальная реализация каких-либо новых алгоритмов или, например, исправление ошибок, из-за которых часть кода не анализировалась предыдущей версией анализатора.
Снаряд и броня – разработчики банковских приложений и Skype совершенствуют методы обнаружения джейлбрейка, разработчики твиков добавляют новые обходы для этих проверок.
За месяц, конечно. Это же мобильный интернет. Если музыку в машине через стриминг слушать, а не предварительно скачанную, то 5 гигов (езжу не каждый день).
А кто платит за безлимитный KION? Если расходы провайдера зависят в основном от стоимости трафика за пределами его сети, который он покупает у своего аплинка, то на KION он мало тратит. Если же оператор больше на поддержку и развитие инфраструктуры тратит, то тогда да, платят все абоненты.
Неочевидно. Если бы значение перечитывалось, то для свойства, имеющего только сеттер, выдавалась бы ошибка компиляции, как и если бы было написано просто int a = X;.
А ещё трафик StackOverflow падает из-за бесконечного количества зеркал StackOverflow, которые машинным переводом переводят вопросы и ответы со StackOverflow на русский язык и в поиске находятся намного выше, чем сам StackOverflow.
Конечно, всегда есть возможность внести столько изменений, что предупреждения перестанут считаться эквивалентными. Сейчас для сравнения используются такие свойства предупреждения:
тип предупреждения,
полное имя функции,
путь к файлу,
специфичная для конкретного типа предупреждения строка (т. н. "details"), идентифицирующая это предупреждение. В неё могут входить, например, имена переменных или выражения, упоминаемые в тексте предупреждения.
Можно подумать о том, чтобы не использовать путь к файлу, так как полного имени функции достаточно для языков, в которых функции находятся в классах и пространствах имён, а для функций на C включать путь к файлу в полное имя функции.
Подход с комментариями в коде тоже имеет свои недостатки. Например, при изменениях в коде или обновлении версии анализатора ложное срабатывание может исчезнуть, а на той же строке появится истинное предупреждение того же типа. В случае с разметкой на сервере details изменится (например, если в сообщении о разыменовании
null
теперь говорится о другой переменной), и новое предупреждение не будет размеченным, а при использовании комментария в коде оно останется подавленным.Разумеется, это не нужно повторять постоянно – для этого и предназначен сервер истории. Возможно, Вы каждый раз создаёте новый сервер вместо того, чтобы один раз создать его и загружать результаты последующих анализов на него. Svace сопоставляет предупреждения с ранее выданными даже при изменениях в анализируемом коде, и ранее размеченные предупреждения останутся размеченными.
Добрый день, Анастасия! Меня зовут Михаил, я младший научный сотрудник ИСП РАН и один из разработчиков Svace. Я хотел бы дополнить комментарий Дмитрия.
Вместо подавления ложных срабатываний можно воспользоваться разметкой – пометить предупреждение как истинное (true positive) или ложное (false positive) в веб-интерфейсе сервера истории (как встроенного, так и Svacer), а затем выбрать фильтр, чтобы не показывать предупреждения, размеченные как ложные. Это решает Вашу задачу и при этом не загромождает исходный код комментариями для подавления предупреждений.
Проблема с галочками проявлялась в редкой ситуации, когда в разных каталогах присутствуют файлы с полностью совпадающим содержимым. Эта проблема уже исправлена 27 июля, исправление войдёт в следующий релиз.
Замедление анализа может иметь различные причины: добавление новых чекеров или видов анализа, неоптимальная реализация каких-либо новых алгоритмов или, например, исправление ошибок, из-за которых часть кода не анализировалась предыдущей версией анализатора.
Эта ссылка – на Windows Services for UNIX, а не Linux. WSL сразу была Windows Subsystem for Linux.
Просто копипастить же начнут, это же код на Swift, а не псевдокод)
Снаряд и броня – разработчики банковских приложений и Skype совершенствуют методы обнаружения джейлбрейка, разработчики твиков добавляют новые обходы для этих проверок.
А закрыть файл, если его удалось открыть?
Ну это уже фактически использование мобильного интернета вместо стационарного. Тогда неудивительно.
За месяц, конечно. Это же мобильный интернет. Если музыку в машине через стриминг слушать, а не предварительно скачанную, то 5 гигов (езжу не каждый день).
В 3 гига немного не укладываюсь, 4 обычно хватает.
Неочевидно. Если бы значение перечитывалось, то для свойства, имеющего только сеттер, выдавалась бы ошибка компиляции, как и если бы было написано просто
int a = X;
.а теперь то же самое, но со свойством:
кто вспомнит, не подглядывая в спецификацию и не запуская код, какое из "самих значений" вернёт операция присваивания?
iPhone как веб-камеру – это уже есть: https://support.apple.com/ru-ru/HT213244
Не знаю, работает ли это с iPad, у меня нет iPad.
Там ещё и Dont, а не Don't
Повезло, что он был не BOOLEAN
wildbeᴙʀies
А ещё трафик StackOverflow падает из-за бесконечного количества зеркал StackOverflow, которые машинным переводом переводят вопросы и ответы со StackOverflow на русский язык и в поиске находятся намного выше, чем сам StackOverflow.
Власти, режим, призыв, пресса.
А с https://www.xcom-shop.ru?