en
Feedback
Блог*

Блог*

Open in Telegram

Блог со звёздочкой. Много репостов, немножко программирования. Небольшое прикольное комьюнити: @decltype_chat_ptr_t Автор: @insert_reference_here

Show more
1 927
Subscribers
+124 hours
+17 days
-530 days
Posts Archive
А пооомните несколько лет назад ходило фото платья которые одни видели чёрно-синим, другие - жёлто-белым и в упор не понимали
+1
А пооомните несколько лет назад ходило фото платья которые одни видели чёрно-синим, другие - жёлто-белым и в упор не понимали, как можно иначе? Так вот. Я наткнулся на рисунок, который позволяет это ПОНЯТЬ, УВИДЕТЬ. ААААААААААА.

#prog #rust #article Semantic fuzzing of the Rust compiler and interpreter Авторы сделали Rustlantis — фаззер, который генерирует программы на уровне MIR. Так как вывод программы предсказать заранее трудно, авторы применили подход differential testing: именно, они использовали несколько интерпретаторов и находили те программы, на которых они расходятся. Разумеется, подобный подход не имеет смысла для кода с UB, поэтому авторы специально написали генератор таким образом, чтобы избежать генерации UB. В качестве верификаторов авторы использовали miri, компиляцию с помощью LLVM (с и без оптимизациями на уровне MIR) и Cranelift. Не смотря на крайне узкий охват пространства возможных программ, за 4,5 CPU-лет авторам удалось найти 13 новых багов. ┌─────────┬──────────────┬─────┐ │ │Miscompilation│Crash│ ├─────────┼──────────────┼─────┤ │rustc │ 3 │ 2 │ ├─────────┼──────────────┼─────┤ │LLVM │ 6 │ 2 │ ├─────────┼──────────────┼─────┤ │cranelift│ 0 │ 0 │ └─────────┴──────────────┴─────┘ * Как видите, авторам не удалось найти баги, связанные с Cranelift, даже не смотря на то, что авторы ожидали противоположного. Авторы называют несколько возможных причин: cranelift намеренно не реализует много оптимизаций и он уже постоянно фаззится (аллокатор регистров — ещё и через symbolic execution). * Проектом заинтересовалась Rust foundation, так что есть шанс, что Rustlantis будет жить и развиваться дальше, а не помрёт, как очередная академическая штуковина. * Один из выявленных фаззером багов был спровоцирован, судя по фиксу, тем, что для одного из типов данных сравнение выполнялось неправильно: для него не была определена операция сравнения, но был определён неявный оператор каста в другой тип, для которого операция сравнения была, из-за чего сравнение начального типа учитывало лишь часть существенной информации.

Why are you all making restful services instead of, dunno, hard-working services or at least active ones?

#prog #java #go #meme Source
#prog #java #go #meme Source

#prog #rust хайлайты: ▪️Добавили линт на биндинги типа (). Линт не срабатывает, если () есть явно с одной или иной стороны или тип явно записан, как (), также не работает на коде из макросов. ▪️Стабилизировали ptr::addr_eq, которая сравнивает указатели по адресам без учёта метаданных. ▪️На NonNull добавили методов с обычных указателей. ▪️Парсер теперь обрабатывает слайсинг с синтаксисом Python и предлагает использовать эквивалентный нативный синтаксис. ▪️К реализациям арифметических операций добавили #[track_caller]. ▪️Серьёзность IMPLIED_BOUNDS_ENTAILMENT подняли с обычного линта до фатальной ошибки компиляции. Этот линт указывает на ситуации, когда реализация трейта из-за implied bounds (таких, как 'b: 'a в &'a &'b T) является более ограничительной, чем декларация трейта. ▪️LinkedList добавили retain{, _mut} ▪️Стабилизировали {Rc, Arc}::unwrap_or_clone. Эти функции достают значение из счётчика ссылок при помощи клонирования, но избегают этого, если значение единственно. ▪️Реализация Vec::dedup_by теперь делает два прохода по вектору и начинает второй проход только в том случае, если элементы действительно нужно удалять. Это позволяет делать меньше работы для векторов уникальных значений, а также немного ускоряет все остальные случаи за счёт того, что теперь при перемещении элементов вместо ptr::copy используется ptr::copy_nonoverlapping.

О, и в Армении снег пошёл

Так, я этот пост вообще случайно отправил, почему на обычном числе столько реакций?

Repost from Neural Machine
Прошлое прошло

69

Repost from I’m CEO, beach
Команда, скоро день зарплаты. Для меня это очень грустный день. Мне жаль снова осознавать, что вы работаете ради какой-то еды и одежды, а не ради нашей крутой идеи. Ну и денег тоже жалко.

Repost from Segment@tion fault
- приглашаем вас к нам на работу, у нас отличный коллектив, интересные проекты, каждому выдаём макбук - надбавка будет? - за что? - за работу на макбуке

Анекдот дня: Всероссийский научно-исследовательский геологический институт (ВСЕГЕИ) изменил логотип на сайте. Аббревиатура ВС
Анекдот дня: Всероссийский научно-исследовательский геологический институт (ВСЕГЕИ) изменил логотип на сайте. Аббревиатура ВСЕГЕИ пропала, вместо неё появилась надпись «Институт Карпинского». В Твиттере предполагают, что всё из-за нового закона о запрете ЛГБТ-движения. ВСЕГЕИ всё, Сергеям приготовиться!

photo content

#meme про... женщин

#prog #amazingopensource wuffs (Wrangling Untrusted File Formats Safely) — язык (и компилятор) для написания программ обработки данных, который компилируется в C. Язык намеренно весьма ограниченный — в частности, в нём отсутствует IO и способы динамически управлять памятью, да и в принципе доступ к сисколам. Язык также memory safe: компилятор отказывается компилировать программу, в которой индексы выходят за границу массива (а также если в ней где-то есть переполнение). Несмотря на ограниченность языка и намеренно простые проверки диапазонов переменных, на практике он с успехом подходит для написания (де)кодировщиков медиаформатов — реализации на wuffs по производительности обгоняют существующие реализации на C и Rust. (thanks @experimentalchill за привлечение внимания к этой вещи — взято из поста про ошибки реализации в CRC32 в Linux)

#rust #article Adopting Rust: the missing playbook for managers and CTOs Взгляд на привнесение Rust в разработку с точки зрения руководящих должностей.

#prog #rust #rustasync #article Common Mistakes with Rust Async Common mistake №0: using async Rust Ну а если серьёзно — неплохая подборка неочевидных ошибок при использовании async. Правда, если вы читали Блог*, как минимум часть из них вам наверняка будет уже знакома.

Repost from N/a
photo content

Блог* - Statistics & analytics of Telegram channel @dereference_pointer_there