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

Я в ходе обсуждения потерял что именно должен искать этот

статический анализ. У меня есть предположение, что "инженерный" способ решения задачи - это переход на динамический анализ.

Соответственно вопрос - какие именно проблемы предполагается искать?

25 ответов

57 просмотров

В целом, я агитирую за композиционный анализ и против whole-program вне зависимости от того, что он ищет. 😊

Alex- Автор вопроса
Alexander Chichigin
В целом, я агитирую за композиционный анализ и про...

Как человек, долго работавший в парадигме whole program, не соглашусь :) поэтому и интересуюсь, из-за чего конкретно сыр-бор

Alex
Как человек, долго работавший в парадигме whole pr...

Я выше описывал свои претензии. Whole-program не масштабируется, что приводит к ряду проблем down the line.

Alex- Автор вопроса
Alexander Chichigin
Я выше описывал свои претензии. Whole-program не м...

Я имею представление о проблемах. Whole-program спокойно тянет несколько миллионов строк плюсового кода (и это в однопоток!). Весь вопрос только в том, на сколько он нужен для решения конкретной задачи

Alexander Chichigin
И что же он там находит? 😊

Несколько миллионов строк плюсового кода и находит.

Alex- Автор вопроса
Alexander Chichigin
И что же он там находит? 😊

У нас он для alias анализа используется, для девиртуализации и inline. Также находит нарушения strict-aliasing. Это то, что навскидку приходит в голову

Alex
У нас он для alias анализа используется, для девир...

Звучит как кусок компилятора. У Вас whole-program C++ compiler?

Alex- Автор вопроса
Alexander Chichigin
Звучит как кусок компилятора. У Вас whole-program ...

Да, это компилятор. Поэтому я и говорю что для whole program надо смотреть, что именно ищется

Alex
Да, это компилятор. Поэтому я и говорю что для who...

Whole-program C++ compiler, который "спокойно тянет несколько миллионов строк кода"?

Alex- Автор вопроса
Alexander Chichigin
Whole-program C++ compiler, который "спокойно тяне...

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

Alex
У нас он для alias анализа используется, для девир...

девиртуализация? это имеет отношения к vtable?

Alex- Автор вопроса
Artem Hevorhian
девиртуализация? это имеет отношения к vtable?

Опосредованное. Но да, это замена виртуальных вызовов на вызовы по имени

Alex
Скажем так, там есть, куда оптимизировать, но спек...

Кажется, кроме как верить на слово других вариантов нет? 😊

Alex- Автор вопроса
Alexander Chichigin
Кажется, кроме как верить на слово других варианто...

Какой конкретно из пунктов следует подтвердить? То, что спеки 2017 эльбрусовских компилятором собираются в whole program вроде давно известно, при необходимости могу поискать. Не уверен, что там есть тесты более миллиона строк, но более 300 тыс были. Сам себя компилятор, так собирал, а это уже более 2 млн строк. Подтверждений не будет. По внешнему проекту размером более 2 млн строк подтверждений не будет (не могу найти в открытых источниках про какой именно режим они пишут)

Alex- Автор вопроса
Alex
У нас он для alias анализа используется, для девир...

Алекс, вы распараллеливаете? Там стат-анализ используется для отлова разных проблем в OCaml. Поскольку OCaml очень хорошо спроектирован по сравнению с С++, то из PVS-овской кучи ошибок остаётся ну процентов 10. А ведь чем меньше нужно проблем покрывать, тем меньше abstract domain => тем быстрее проходит анализ.

Alex
В несколько раз дольше гцц)

Это не то, что я бы назвал "спокойно тянет", не в контексте статического анализа кода в дополнение к компиляции. 😊

Alex- Автор вопроса
Konstantin Romanov
Алекс, вы распараллеливаете? Там стат-анализ испол...

Нет. По крайней мере на момент несколько лет назад. Но распарралеливание для реальных проектов очень нужно

Alex
Какой конкретно из пунктов следует подтвердить? То...

Это lcc, ваш неуловимый Джо? А начиная с какой версии?

Alex- Автор вопроса
Konstantin Romanov
Это lcc, ваш неуловимый Джо? А начиная с какой вер...

Эммм, на whole-program как базовый режим сборки спеков перешли году в 14-15, наверное

Alex
Нет. По крайней мере на момент несколько лет назад...

Я думаю, что на ОКамле распараллеливание будет проще сделать. Но, насколько я понял, это ещё очень исследовательская задача.

Alex- Автор вопроса
Konstantin Romanov
Я думаю, что на ОКамле распараллеливание будет про...

Задача вполне инженерная, просто рук для неё не хватает

Alex
Задача вполне инженерная, просто рук для неё не хв...

Я не столь оптимистичен. Для этого нужно понимать, как хорошо параллелить fix-point вычисления на типичном control flow graph. То есть, вы, конечно, сможете сделать решётку, бросать какие-то green threads для подсчёта каких-то обновлений на локальных участках кода, но будет ли это эффективно? Не потеряете ли вы на синхронизации больше, чем получите на распараллеливании? Отмечу, что тот же yukari - это 32 потока. Простую-то вещь на Хаскеле на столько не враз распараллелишь.

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта