Size: a a a

2021 January 05
Блог*
#prog #cpp #article

Валидаторпапир о нём) компиляций, проводимых LLVM, по отношению к многопоточным программам. Поспособствовал выявлению нескольких багов в LLVM.

"We construct a validator that checks whether the transformations performed by LLVM are correct according to the C11 memory model or our inferred LLVM memory model. The validator takes as inputs the programs before and after a set of transformations. It compares them by matching their memory access patterns and reports on whether it could find a matching demonstrating that transformation is correct."

Анализатор, к сожалению, не вполне справляется с циклами и использует для них эвристику, которая может поймать только неправильную компиляцию между первыми двумя итерациями цикла. Это вполне объяснимо, поскольку частью анализа является сопоставление потока исполнения программы до и после трансформаций, а эта задача с введением циклов резко усложняется. Для программ же без циклов проводимый анализ точен и корректен (sound).

Надо отметить, что модель памяти, подразумеваемая LLVM, менее строгая, чем модель памяти C11, поскольку допускает добавление спекулятивных доступов к значениям. В связи с этим валидатор может работать, проверяю корректность трансформаций на основе обоих моделей.
источник
2021 January 06
Блог*
#prog #article

Статья о том, как Coverity разрабатывает и продаёт свой статический анализатор. Спойлер: над техническими проблемами превалируют загоны сраных мешков с мясом.
источник
2021 January 07
Блог*
#meme
источник
Блог*
источник
Блог*
#prog #meme
Я: "У меня куча проектов, я ничего не успеваю!"
Также я:
источник
2021 January 08
Блог*
#prog #rust #article

Статья (pdf) с эмпирическим изучением связанных с memory safety багов в программах на Rust.

Из примечательного:
Среди багов много категории buffer overflow, причём паттерны схожи с теми, которые допускают при написании программ на C и C++.
Из-за дропов в Rust очень просто сделать ошибку double free, поскольку вызов деструкторов нужно отменять явно. Как оказалось, ManuallyDrop лучше подходит для этого, чем mem::forget.
источник
Блог*
#prog #article

Статья о том, как выполнять различные операции, используя довольно ограниченный и неортогональный набор инструкций SSE/SSE2.
источник
Блог*
Initial states:
   m: 0.991 x: 9.876 y: 8.478 vx: 0.008 vy: 0.023
   m: 0.925 x: 7.348 y: -0.973 vx: -0.173 vy: 0.258
   m: 0.856 x: 1.261 y: -2.610 vx: -0.005 vy: 0.119
Interest-ness score: 63
источник
Блог*
#prog #rust #abnormalprogramming

Как написать на Rust код, обобщённый относительно мутабельности. Осторожно, nigthly.

github.com/zesterer/mutation
источник
Блог*
#prog #rust

Сборник сотни программ на Rust. Собрано из твиттерского треда, так что описания довольно краткие. Но со скриншотами!
источник
Блог*
#prog #python

Минималистичная библиотека для (де)сериализации NamedTuple и датаклассов в/из CSV, использующая аннотации типов для восстановления структуры классов. По умолчанию поддерживает только скалярные типы и их объединения, но можно добавить поддержку своих типов, предоставив словарь из "типов" в пары функций для сериализации и десериализации. Собственно, внутри эта библиотека работает именно так.

Советую глянуть исходники, на удивление понятный и читабельный код.
источник
2021 January 09
Блог*
#prog #rust #amazingopensource

Посмотрите, возможно, это ровно то, что вам надо.

А, ну и, конечно, вафель в очередной раз доказал, что он умница.
источник
Блог*
У меня тут новый крейт релизнулся: vecrem.

tl;dr: он позволяет быстро высасывать элементы из Vec<_> (что-то вроде drain_filter но не совсем)
источник
Блог*
#meme
источник
Блог*
Тупо я
источник
Блог*
Да, #politota, но #meme смешной
источник
Блог*
Активист SJW Джо Виет хочет запретить использовать дискриминант, так как он вызывает негативные ассоциации и способствует распространению дискриминации в обществе.
источник
Блог*
во-первых это красиво
источник
Блог*
Допустим, я организую в Москве встречу с подписчиками
Анонимный опрос
6%
Приду обязательно
11%
Вероятно, приду
11%
Скорее всего, не приду
73%
Точно не приду
Проголосовало: 216
источник
2021 January 11
Блог*
источник