Блог*
Открыть в Telegram
Блог со звёздочкой. Много репостов, немножко программирования. Небольшое прикольное комьюнити: @decltype_chat_ptr_t Автор: @insert_reference_here
Больше1 921
Подписчики
+224 часа
-27 дней
-1330 день
Архив постов
1 921
Напоминает спиральный рост кристаллов. И причина, видимо, схожая: винтовая дислокация решётки (атомов кристалла и отдельных сот соответственно)
1 921
Интересные мысли о том, как можно было "дописать" дрнвнегреческую мифологию
https://t.me/figaning_ideas/2438
1 921
Некоторые говорят писать
unsigned int, большинство говорят писать просто unsigned, я же говорю писать на Rust1 921
#prog #rust #rustreleasenotes
Вышла версия Rust 1.72.0! Как обычно, тут только то, что интересует меня, а полный ченджлог тут.
▪️Офигенно полезная вещь: компилятор теперь говорит о том, что имена не определены из-за того, что определяющий их код находится под неактивным
#[cfg].
▪️Компилятор теперь не имеет ограничения на время вычисления const fn (технически ограничено включённым по умолчанию линтом, но его можно и отключить). При этом он всё ещё выдаёт предупреждения, если код из-за этого долго компилируется, но интервал между ними удваивается после каждого вывода, чтобы не спамить в консоль.
▪️Несколько линтов из Clippy втащили в компилятор, а именно:
🔹undropped_manually_drops (warn по умолчанию) — попытка явно дропнуть ManuallyDrop.
🔹invalid_utf8_in_unchecked — разделив при этом на две:
🔸invalid_utf8_in_unchecked (deny по умолчанию) при вызове std::str::from_utf8_unchecked{, _mut} на невалидном UTF-8 — это всегда неопределённое поведение
🔸invalid_from_utf8 (warn по умолчанию) при вызове std::str::from_utf8{, _mut} на невалидном UTF-8 — такой вызов всегда возвращает ошибку
🔹cmp_nan как invalid_nan_comparisons (warn по умолчанию) — явное сравнение с NaN (такое сравнение всегда возвращает ложь)
🔹cast_ref_to_mut — при кастах из &T в &mut T. allow по умолчанию, но исключительно из-за наличия false positive, к следующему релизу планируют сделать уже deny по умолчанию.
▪️Для указания трейт-объектов теперь не нужно выписывать ассоциированные типы, на которых есть ограничение Self: Sized. Это консистентно с where Self: Sized на методах, наличие которых не влияет на object safety, но которые нельзя вызвать на трейт-объектах. Отмечу, что указывать остальные типы для трейт-объектов всё также надо.
▪️Отправляющая половинка mpsc-канала из std наконец-то реализует Sync.
▪️Уточнено поведение HashSet::insert: если ключ уже есть в множестве, то он не заменяется, а переданный ключ дропается.
▪️Как я уже говорил, select_nth_unstable теперь имеет реальную задокументированную линейную сложность.
▪️Опять-таки, как я уже рассказывал, ptr_eq на счётчиках ссылок теперь сравнивает лишь адреса.
▪️Стабилизирован impl TryFrom<&OsStr> for &str
▪️В const-контексте теперь можно использовать CStr::from_bytes_with_nul, CStr::to_bytes, CStr::to_bytes_with_nul и CStr::to_str.1 921
Repost from ☕️ Мерлин заваривает τσάι 🐌
Я так люблю, когда программисты оптимизируют количество нажатий клавиш. Подозреваю, что сэкономленное время они тратят на саморазвитие
Уже доступно! Исследование Telegram 2025 — ключевые инсайты года 
