#undefined_behavior — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #undefined_behavior, aggregated by home.social.
-
Твой async fn на самом деле enum, а Pin нужен потому, что Rust наступил на грабли самоссылающихся структур
async fn в Rust — это не магия и не зелёный поток, а обычный enum, который компилятор генерирует за тебя. Разбираем, почему Future это машина состояний, зачем нужен Pin, как работает Waker и executor, и как одна .await -точка может незаметно заставить твой сервис есть память гигабайтами.
https://habr.com/ru/articles/1033710/
#rust #async #tokio #pin #futures #executor #waker #async_fn #cargoexpand #undefined_behavior
-
Твой код на Rust компилируется, проходит тесты и является UB. Ты просто об этом не знаешь
Если взять случайный крейт с crates.io и поставить его под Miri, шанс увидеть undefined behavior где-то в зависимостях стремится к единице. Разбираемся, почему: pointer provenance, Stacked Borrows, Tree Borrows и почему noalias в LLVM выключали три раза.
https://habr.com/ru/articles/1033328/
#rust #unsafe #miri #stacked_borrows #tree_borrows #provenance #llvm #noalias #undefined_behavior
-
Как найти UB, которое никто не хочет замечать: разбираем clang-tidy изнутри
Привет, Хабр! Меня зовут Анастасия Черникова, я занимаюсь разработкой компиляторных технологий и инструментов на базе LLVM в Синтакоре. Неопределенное поведение (undefined behavior, UB) по-разному выглядит с точки зрения компилятора и разработчика. Для первого оно, как правило, открывает дополнительные возможности для оптимизации. Для программиста же UB может стать проблемой, особенно если оно остается незамеченным и не учитывается при разработке. В этой статье рассмотрим подход к поиску UB с использованием статического анализа. В качестве примера я использую clang-tidy: сначала разберу, как устроены существующие чекеры и как работают AST matchers, а затем покажу, как расширять их и добавлять собственные проверки, если стандартных возможностей оказывается недостаточно. Отправимся на поиски и поимку UB →
https://habr.com/ru/companies/yadro/articles/1017930/
#llvm #clangtidy #ast #check #cpp #undefined_behavior #UB #compiler #sanitizers
-
Как найти UB, которое никто не хочет замечать: разбираем clang-tidy изнутри
Привет, Хабр! Меня зовут Анастасия Черникова, я занимаюсь разработкой компиляторных технологий и инструментов на базе LLVM в Синтакоре. Неопределенное поведение (undefined behavior, UB) по-разному выглядит с точки зрения компилятора и разработчика. Для первого оно, как правило, открывает дополнительные возможности для оптимизации. Для программиста же UB может стать проблемой, особенно если оно остается незамеченным и не учитывается при разработке. В этой статье рассмотрим подход к поиску UB с использованием статического анализа. В качестве примера я использую clang-tidy: сначала разберу, как устроены существующие чекеры и как работают AST matchers, а затем покажу, как расширять их и добавлять собственные проверки, если стандартных возможностей оказывается недостаточно. Отправимся на поиски и поимку UB →
https://habr.com/ru/companies/yadro/articles/1017930/
#llvm #clangtidy #ast #check #cpp #undefined_behavior #UB #compiler #sanitizers
-
Как найти UB, которое никто не хочет замечать: разбираем clang-tidy изнутри
Привет, Хабр! Меня зовут Анастасия Черникова, я занимаюсь разработкой компиляторных технологий и инструментов на базе LLVM в Синтакоре. Неопределенное поведение (undefined behavior, UB) по-разному выглядит с точки зрения компилятора и разработчика. Для первого оно, как правило, открывает дополнительные возможности для оптимизации. Для программиста же UB может стать проблемой, особенно если оно остается незамеченным и не учитывается при разработке. В этой статье рассмотрим подход к поиску UB с использованием статического анализа. В качестве примера я использую clang-tidy: сначала разберу, как устроены существующие чекеры и как работают AST matchers, а затем покажу, как расширять их и добавлять собственные проверки, если стандартных возможностей оказывается недостаточно. Отправимся на поиски и поимку UB →
https://habr.com/ru/companies/yadro/articles/1017930/
#llvm #clangtidy #ast #check #cpp #undefined_behavior #UB #compiler #sanitizers
-
Как найти UB, которое никто не хочет замечать: разбираем clang-tidy изнутри
Привет, Хабр! Меня зовут Анастасия Черникова, я занимаюсь разработкой компиляторных технологий и инструментов на базе LLVM в Синтакоре. Неопределенное поведение (undefined behavior, UB) по-разному выглядит с точки зрения компилятора и разработчика. Для первого оно, как правило, открывает дополнительные возможности для оптимизации. Для программиста же UB может стать проблемой, особенно если оно остается незамеченным и не учитывается при разработке. В этой статье рассмотрим подход к поиску UB с использованием статического анализа. В качестве примера я использую clang-tidy: сначала разберу, как устроены существующие чекеры и как работают AST matchers, а затем покажу, как расширять их и добавлять собственные проверки, если стандартных возможностей оказывается недостаточно. Отправимся на поиски и поимку UB →
https://habr.com/ru/companies/yadro/articles/1017930/
#llvm #clangtidy #ast #check #cpp #undefined_behavior #UB #compiler #sanitizers
-
constexprall the things! Since the evaluation of a constant expression never results in an erroneous behavior (EB, C++26)! (But useconstexprsince C++11)This was mentioned by many at the conference, not to forget: @DanielaKEngert, Mikhail Svetkin, and others.
@meetingcpp #cpp #cpp26 #cpp11 #meetingcpp #dev #undefined_behavior #ub #erroneous_behavior #eb
-
constexprall the things! Since the evaluation of a constant expression never results in an erroneous behavior (EB, C++26)! (But useconstexprsince C++11)This was mentioned by many at the conference, not to forget: @DanielaKEngert, Mikhail Svetkin, and others.
@meetingcpp #cpp #cpp26 #cpp11 #meetingcpp #dev #undefined_behavior #ub #erroneous_behavior #eb
-
constexprall the things! Since the evaluation of a constant expression never results in an erroneous behavior (EB, C++26)! (But useconstexprsince C++11)This was mentioned by many at the conference, not to forget: @DanielaKEngert, Mikhail Svetkin, and others.
@meetingcpp #cpp #cpp26 #cpp11 #meetingcpp #dev #undefined_behavior #ub #erroneous_behavior #eb
-
constexprall the things! Since the evaluation of a constant expression never results in an erroneous behavior (EB, C++26)! (But useconstexprsince C++11)This was mentioned by many at the conference, not to forget: @DanielaKEngert, Mikhail Svetkin, and others.
@meetingcpp #cpp #cpp26 #cpp11 #meetingcpp #dev #undefined_behavior #ub #erroneous_behavior #eb
-
constexprall the things! Since the evaluation of a constant expression never results in an erroneous behavior (EB, C++26)! (But useconstexprsince C++11)This was mentioned by many at the conference, not to forget: @DanielaKEngert, Mikhail Svetkin, and others.
@meetingcpp #cpp #cpp26 #cpp11 #meetingcpp #dev #undefined_behavior #ub #erroneous_behavior #eb
-
Что делать, если ваш слон думает, что он баг?
Мы окунулись в веб-разработку и нашли там необычное животное. Это был слон с повадками бага. Мы изучили код проекта PHP и поняли, в чём дело. Давайте вместе посмотрим на необычные случаи, которые могут привести к неожиданным результатам.
https://habr.com/ru/companies/pvs-studio/articles/941970/
#программирование #php #c #c++ #статический_анализ #static_analysis #ошибки_в_программе #memory_allocation #undefined_behavior #неопределённое_поведение
-
Встреча ISO C++ в Софии: С++26 и рефлексия
Привет! На связи Антон Полухин из техплатформы городских сервисов Яндекса, и сейчас я расскажу о софийской встрече Международного комитета по стандартизации языка программирования C++, в которой принимал активное участие. Это была последняя встреча, на которой новые фичи языка, с предодобренным на прошлых встречах дизайном, ещё могли попасть в C++26. И результат превзошёл все ожидания: compile-time-рефлексия рефлексия параметров функций аннотации std::optional<T&> параллельные алгоритмы Об этих и других новинках расскажу в посте
https://habr.com/ru/companies/yandex/articles/920470/
#c++29 #с++29 #c++26 #с++26 #с++ #c++ #reflection #constexpr #exception #simd #safety #security #undefined_behavior #annotations #parallel_programming #executor #executors #ranges #coroutines
-
C++26 — встреча ISO в Хагенберге
В середине февраля в Хагенберге состоялась встреча международного комитета по стандартизации языка программирования C++. В этот раз прорабатывались следующие большие темы: std::hive Constexpr, ещё больше constexpr Безопасность, контракты, hardening, профили, UB и std::launder Relocate #embed Об этом и других новинках расскажу в посте
https://habr.com/ru/companies/yandex/articles/882518/
#c++29 #с++29 #c++26 #с++26 #с++ #c++ #reflection #constexpr #exception #simd #safety #security #undefined_behavior #memory #byte #bit #contracts #relocation #hive #object_pool #embed
-
ISO C++ — встреча международного комитета в Польше
В конце ноября состоялась встреча международного комитета по стандартизации языка программирования C++. В этот раз без внимания не остались темы: Рефлексия времени компиляции и оператор «монобровь» Constexpr, много constexpr SIMD Structured bindings as a pack Безопасность, контракты, libc++ hardening, профили, UB и std::launder Сколько бит в байте? Об этом и других новинках расскажу в посте
https://habr.com/ru/companies/yandex/articles/860308/
#c++26 #с++26 #с++ #c++ #reflection #constexpr #consteval #exception #simd #safety #security #undefined_behavior #memory #byte #bit