Size: a a a

Compiler Development

2021 January 18

KR

K R in Compiler Development
MaxGraey
Фззеры хороши, но стоит также учитывать, что они способны находить ошибки которые никогда не возникают в реальном коде и не находить (или очень редко находить) действитеьлно важных ошибок (все зависит собственно от покрытия всех комбинаций и стат параметров). Но пока ничего лучше не придумали
Монте-Карло же.

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

Насколько я понимаю, в программировании к этому ближе всего AFL.

Но вообще фаззеров, которые анализируют код программы, и добиваются минимальности входных данных для 100% покрытия комбинаций переходов нет.
источник

KR

K R in Compiler Development
FORTRAN ONE LOVE
а что, Rust for GCC не считается?
А он работает?
источник

FO

FORTRAN ONE LOVE in Compiler Development
K R
А он работает?
не знаю...
источник

BD

Berkus Decker in Compiler Development
MaxGraey
Фззеры хороши, но стоит также учитывать, что они способны находить ошибки которые никогда не возникают в реальном коде и не находить (или очень редко находить) действитеьлно важных ошибок (все зависит собственно от покрытия всех комбинаций и стат параметров). Но пока ничего лучше не придумали
ну идея то в том чтобы  оно не падало на инпуте который невозможен
источник

BD

Berkus Decker in Compiler Development
пушо мало ли что, всякое возможно )
источник

M

MaxGraey in Compiler Development
Berkus Decker
ну идея то в том чтобы  оно не падало на инпуте который невозможен
Не только. Фаззеры часто используют вместе с эталонным интерпретатором например. Или это например может быть сверка результатов для неоптимизированной сборки и оптимизированной, или сравнивают результаты для разных таргетов
источник

M

MaxGraey in Compiler Development
Еще фаззеры делятся на те, что генерируют с нуля вход, те что только мутируют первоначальный вход и гибридные
источник

JT

James Tevision in Compiler Development
Прикольный факт
При написании фронтэнда для гцц
Инклюдить tree.h надо реньше чем cgraph.h
Иначе - не компилиться


Они там про хедер-протекторы слышали?


Правда возмодно и в моем коде ошибка
Но как порядок инклюда хедеров может повлиять.........
источник

BD

Berkus Decker in Compiler Development
James Tevision
Прикольный факт
При написании фронтэнда для гцц
Инклюдить tree.h надо реньше чем cgraph.h
Иначе - не компилиться


Они там про хедер-протекторы слышали?


Правда возмодно и в моем коде ошибка
Но как порядок инклюда хедеров может повлиять.........
очень часто в сях порядок включения влияет, верю что в GCC  изо всех сил старались этого избежать, но бывают хедеры  с взаимными зависимостями и там туши свет
источник

М

Михаил in Compiler Development
Если в хедере есть макросы, например, которые нужны другому хедеру
источник

М

Михаил in Compiler Development
У меня тоже gcc не собирался один раз по схожей причине
источник

KR

K R in Compiler Development
Михаил
Если в хедере есть макросы, например, которые нужны другому хедеру
Ну для этого ставят #ifdef траляля
источник

M

MaxGraey in Compiler Development
K R
Ну для этого ставят #ifdef траляля
Не, это делают что бы дважды один и тот же хедер не включить. У GCC есть еще pragma once но оно уже давно устаревшее
источник

KR

K R in Compiler Development
Ой, это работает в паре с #include всего требуемого в каждом файле
источник

KR

K R in Compiler Development
Короче - включать всё и два раза не вставать.
источник

KR

K R in Compiler Development
Но мы неправы - тут решение в том, чтобы сделать нормальную область видимости для макросов. То есть, типа ML.

Например, макросы из stdio.h использовать с префиксом Stdio.
источник

DP

Dmitry Ponyatov in Compiler Development
Defragmented Panda
какой самый малый jit компилятор? из всех
SP-FORTH ранних версий (2.54?)
источник

DP

Dmitry Ponyatov in Compiler Development
K R
Монте-Карло же.

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

Насколько я понимаю, в программировании к этому ближе всего AFL.

Но вообще фаззеров, которые анализируют код программы, и добиваются минимальности входных данных для 100% покрытия комбинаций переходов нет.
Карловы VARы
источник

JT

James Tevision in Compiler Development
Михаил
Если в хедере есть макросы, например, которые нужны другому хедеру
Можно же их вынести в третий хедер разорвав цикл
Лучше еще раз заинклюдить протектнутый файл
Чем надеятся на порядок юзера
источник

BD

Berkus Decker in Compiler Development
MaxGraey
Не, это делают что бы дважды один и тот же хедер не включить. У GCC есть еще pragma once но оно уже давно устаревшее
оно давно не устаревшее, все c++11 компили это поддерживают
источник