185 похожих чатов

Я, наверное, задолбал этой темой, но, в принципе, можно и

раз в день гонять этот анализ, присылая результаты наутро. В смысле, не так всё отчаянно плохо — можно «договориться» тем или иным образом. Чем-то придётся пожертвовать, но это не так чтобы «совсем бесполезно». Это не win/loose, тут целый спектр.

Если кода достаточно много, даже простая проверка Сшных include guards (тупой regexp, два дня на написание и проверку) выявляет сотни случаев.

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

14 ответов

6 просмотров

Это всё ещё про сложные анализы режима "вся программа"?

> можно и раз в день гонять этот анализ, присылая результаты наутро На практике такое работает очень плохо. Основных проблем 2. 1. Наутро разработчики уже забыли, что конкретно они меняли, и вообще, исправления репортов от статического анализатора в бэклоге не было, так что уезжает на какой-нибудь будущий спринт, который никогда не наступит. 2. Если статический анализатор выдаёт достаточно много ложноположительных срабатываний, но между прогонами "забывает" про них (или вообще нет механизма отметить известные ложноположительные случаи) — это очень быстро всем надоест, и на него просто забьют.

Я так понимаю тут сложность будет где-то 4/3 в степени n, где n - число переменных влияющих на результат проверки. Если у вас число превысит 2 в 20 степени, то можно считать, что это не работает.

Alexander Chichigin
> можно и раз в день гонять этот анализ, присылая ...

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

Mikhail
У нас работает норм. Статический анализ гонится не...

Ваш анализатор использует sat решатель?

Mikhail
У нас работает норм. Статический анализ гонится не...

Так анализ гоняется на каждый pull request или "от балды"? Блочит мердж или нет? На предмет каких проблем анализирует?

Лимон Цитрусовый
Ваш анализатор использует sat решатель?

уверенно ничего не понимаю. у нас пивас сейчас, периодически тыкаю палочкой шланг с z3.

Alexander Chichigin
Так анализ гоняется на каждый pull request или "от...

От балды, на каждый мр слишком медленно

Mikhail
От балды, на каждый мр слишком медленно

И примерный объем кода проверяемого ещё напишите для понимания.

Лимон Цитрусовый
И примерный объем кода проверяемого ещё напишите д...

------------------------------------------------------------------------------------ Language files blank comment code ------------------------------------------------------------------------------------ C++ 8382 396303 86958 2297196 C/C++ Header 9480 197202 104427 1065150 C# 7278 114689 42557 628749

Konstantin-Romanov Автор вопроса
Alexander Chichigin
> можно и раз в день гонять этот анализ, присылая ...

Не, ну пункт 1 — это болезнь такая. Альцгеймер.

Konstantin Romanov
Не, ну пункт 1 — это болезнь такая. Альцгеймер.

Есть такое понятие — скорость обратной связи.

Konstantin-Romanov Автор вопроса
Alexander Chichigin
Есть такое понятие — скорость обратной связи.

Я не спорю, что это чудесно. Я вообще люблю, когда обратная связь имеет хотя бы 0.2 сек, а лучше 60 fps. Но я всё клоню к тому, что это не математическая, а инженерная проблема => она не решается на 100%. Но ведь абсолютной неприменимости тоже нет. По Salto ведь даже статьи нет, только презентация. Статью обещали написать. Язык поддерживается не полностью (в смысле, на ряд конструкций стоит failwith "Unimplemented"). В общем, будем посмотреть, что выйдет. Я постараюсь проследить, и, если интересно, рассказать тут.

Konstantin Romanov
Я не спорю, что это чудесно. Я вообще люблю, когда...

Whole-program vs. Compositional (modular, incremental) analysis — именно что математическая проблема. Если её "решать инженерными костылями", то результаты будут абы какими. Если статический анализ невозможно встроить в CI, то результаты тоже будут "как получится", потому что проблемы начнут решаться "по возможности, как время будет". Для академических проектов это "приятный бонус", но для индустриальных коммерческих проектов — очень серьёзная проблема.

Похожие вопросы

Обсуждают сегодня

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Добрый день. Хочу сделать отрисовку по команде на панели. Почему-то рисуется только при втором вызове. С чем может быть связано, не подскажете? procedure TForm1.FormDblClick(...
Kirill Filippenok
20
Всем доброго дня! Подскажите может кто использовал связку Pagebuilder + Clientsetting. Сами параметры с типом pagebuilder в модуле Clientsetting работают нормально, можно такж...
Александр Добриков
12
А почему в си некоторые вещи работают с двойными кавычками некоторые с одинарными? Нельзя было все сделать с одними или чтоб работало с разными? например чтоб выводить строки ...
.
15
Всем привет! Нужен совет от опытных. Переношу свой проект с Делфи 10.2 Токио на Лазарус 3.2 установленный через инсталлятор fpcupdeluxe-x86_64-win64. При импортировании проект...
Дмитрий Завгородний
7
Эх кто-то пришел и весь праздник испортил :( You need complex FBX scene importing setup to change things on import? good luck with that. You need navigation and pathfinding? g...
Serg Gini
5
Всем привет! procedure TForm1.FormCreate(Sender: TObject); type TStartEnd = record S: Byte; E: Byte; end; var a, b: TStartEnd; begin {1} a.S := 1; {2} a.E := 2; ...
Руслан Михайлович
10
Всем привет!) я тут новенький и пытаюсь освоить evolution методом тыка. У меня при переходе между папками файлов выскакивают вот такие уведомления Можете подсказать как их от...
Диман Samoed
10
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Какого хера? /Sources/App/Modules/User/Models/UserLinkApple.swift:21:20: warning: stored property '_id' of 'Sendable'-conforming class 'UserLinkApple' is mutable @ID(...
Alexander Sherbakov
14
Карта сайта