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

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

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

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

25 ответов

16 просмотров

В целом, я агитирую за композиционный анализ и против 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 потока. Простую-то вещь на Хаскеле на столько не враз распараллелишь.

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

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

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Эх кто-то пришел и весь праздник испортил :( 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
Всем привет! Подскажите. Я написал приложение на 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
У тебя в конфиге нигде нет deny all; или вообще любого deny?
Alexander Sherbakov
10
Привет всем. Подскажите где можно посмотреть, какая версия электрон, поддерживает версии windows? Некий changelog. Мне бы желательно, поддержку 7,8,10... latest, как понимаю и...
Anonym Squad
21
Почему стало ломаться на D11? "739002.86400000' is not a valid timestamp" function IncDateTime(aStamp:TTimeStamp;aKind:TTriggerKind;aInterval:Integer):TDateTime; //aStamp = 2...
Катерина Свиридова
8
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Ребят, чет я уже не догоняю... Крч в коде на асм там происходит нечто вроде a+число (a+1, a+2 и т.д.). Но почему строка lea ecx, [edx+1] работает как a+1?? В edx берется адрес...
Alan 🔝 Бэброу
4
думаешь я не смогу также сделать? мне это просто не удобно
int 💳 𝙖𝙞𝙧 𝙗𝙞𝙜 𝙗𝙤𝙗 🔫 check bio / spam block / AFK / nohello.com / GMT+3
9
Карта сайта