es
Feedback
Блог*

Блог*

Ir al canal en Telegram

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

Mostrar más
1 927
Suscriptores
+124 horas
+17 días
-530 días
Archivo de publicaciones
#prog #cpp #meme
#prog #cpp #meme

#quotes #трудовыебудни
#quotes #трудовыебудни

#prog #rust #rustreleasenotes Вышла версия Rust 1.75.0! Как всегда, тут только избранные моменты, а все изменения отдельно (BTW ссылка теперь ведёт не RELEASES.md, а на отдельную страницу). ▪️Само значимое изменение: теперь возможно использовать impl Trait в возвращаемых типах методов трейта и, как следствие, эквивалентные методам с RPIT async-методы. Однако текущая реализация ИМЕЕТ СУЩЕСТВЕННЫЕ ОГРАНИЧЕНИЯ, так что это не рекомендуется к использованию для публичного API. Подробнее об ограничениях (и костылях) — тут. А, и ещё RPIT в трейтах захватывает времена жизни иначе, чем RPIT в inherent методах и свободных функциях. Подробнее тут (осторожно, может вызвать головную боль). Этот способ планируют сделать для всех impl Trait типов в возвращаемых позициях в edition 2024. ▪️В const fn сейчас нельзя использовать &mut-ссылки. Проверка для этого в компиляторе была, однако, излишне строгой. Теперь её ослабили и в const fn можно манипулировать fn pointer-ами, у которых есть мутабельные ссылки в аргументах. Но вызывать их по прежнему нельзя. ▪️Ещё изменение касательно const fn: вычисления в них с нарушением выравнивания теперь приводят к ошибке компиляции. Раньше на это был deny default линт, который можно было явно отключить. ▪️И ещё касательно невыровненных ссылок: компилятор теперь корректно ловит создание ссылок на unsized поля в #[repr(packed)] структурах. ▪️В язык и std добавлено несколько новых гарантий, о которых я упоминал: 🔸char имеет одинаковый с u32 размер и выравнивание 🔸null всегда имеет нулевой адрес 🔸для некоторых типов Option<T> вызов transmute на памяти, забитой нулями, валиден и гарантированно даёт None А также: 🔸задокументированно, когда атомарные load валидны на readonly памяти. ▪️match теперь может матчиться на usize/isize значениях с проверкой полноты покрытия без _, а также может матчиться по (частично) перемещённым значениям, если паттерны не смотрят на значение. Это поведение консистентно с поведением let _ = expr;. ▪️Метод std::split_inclusive теперь возвращает итератор, который корректно реализует DoubleEndedIterator в том плане, что возвращает одни и те же кусочки строки при итерации как в прямом, так и в обратном порядке. ▪️Стабилизированы некоторые новые API, в частности: 🔸Конструкторы ссылок на Atomic-типы из сырых указателей (unsafe, разумеется) 🔸Пачку API (включая платформо-специфичные) для манипуляции временны́ми атрибутами файлов 🔸Битовые операции над IP-адресами 🔸Option::as{, _mut}_slice. 🔸Пачку методов для сырых указателей с указаниями смещений в байтах, а не в размерах указываемого типа. Также в const контексте теперь можно вызывать: 🔸
MaybeUninit::assume_init_read
🔸
MaybeUninit::zeroed
🔸
mem::discriminant
🔸
mem::zeroed

Насчёт Option::as_slice у вас мог возникнуть резонный вопрос, чем этот метод лучше opt_value.map_or(&[], std::slice::from_ref). Дело в том, что такой прямолинейный метод будет использовать некий посторонний адрес для случая, когда значение является None, а новый метод старается по возможности вернуть ссылку на слайс с адресом, совпадающим с адресом исходного опционального значения. ▪️Некоторые улучшения rustdoc: 🔸Генерируется предупреждение, когда трейт не является object safe. 🔸Атрибут #[repr(transparent)] скрывается, если поле, над которым тип является transparent, является приватным (поскольку в этом случае repr наверняка является деталью реализации) 🔸Для C-like (с вариантами без полей) enum теперь показываются дискриминанты вариантов. ▪️Компилятор (конкретно librustc_driver) теперь оптимизируется при помощи BOLT — специального инструмента для оптимизации скомпилированных программ, который переставляет инструкции для лучшей утилизации кеша. Даёт прибавку в скорости. ▪️Маленькие функции теперь автоматически инлайнятся через границу крейтов. Дало большой выигрыш и по primary, и по secondary бенчмаркам — причём для времени компиляции даже лучше, чем для рантайм-бенчмарков.

А вы подводите итоги года? Я вот тоже не оправдал их ожиданий

Итоги года для канала "Блог*" от @TGStat
Итоги года для канала "Блог*" от @TGStat

#rust #quotes Source
#rust #quotes Source

А, только сейчас заметил, что пропустил слово

Repost from Лентач
ЯГОМИК не пошёл по стопам ВСЕГЕИ и решил остаться ЯГОМИКом. Якутский государственный объединенный музей истории и культуры на
ЯГОМИК не пошёл по стопам ВСЕГЕИ и решил остаться ЯГОМИКом. Якутский государственный объединенный музей истории и культуры народов Севера им. Ярославского не планирует отказываться от своего названия, заявил директор музея Николай Бугаев в комментарии для «КП-Якутия». «Что касается аббревиатуры — мы ведь ее уже лет 20 нигде не используем, а для сокращения пишем «Якутский музей». Просто кто-то вспомнил об этом в свете изменения аббревиатуры ВСЕГЕИ и счел это забавным. Нам же подобный интерес только на руку». Напомним, что Всероссийский научно-исследовательский геологический институт имени А. П. Карпинского (ВСЕГЕИ) изменил логотип на своем сайте после принятия закона о запрете ЛГБТ*-пропаганды в России. *Движение ЛГБТ признано экстремистским и запрещено в РФ.

Repost from Лентач
Рубль в этом году обвалился почти ко всем «экзотическим» валютам Почитайте, что будет с курсом в 2024 году: https://lentach.m
Рубль в этом году обвалился почти ко всем «экзотическим» валютам Почитайте, что будет с курсом в 2024 году: https://lentach.media/V0fQv

Какие вам больше нравятся?
Anonymous voting

Repost from N/a
Вот определение Верховного суда, по которому Международное общественное движение ЛГБТ не является Международным общественным
+1
Вот определение Верховного суда, по которому Международное общественное движение ЛГБТ не является Международным общественным движением ЛГБТ и, вероятно, не является экстремистским. Правовая коллизия: чтобы доказать, что мы не экстремисты, нам сначала нужно оспорить это определение и доказать, что экстремисты — мы.

Repost from Neural Machine
Если вы мечтаете о любви, роль лягушки действительно хороша.

Мне удалось пройти Slice&Dice на уровне сложности Unfair!
Мне удалось пройти Slice&Dice на уровне сложности Unfair!

#rust Launching the 2023 State of Rust Survey Тык. Продлится до 15 января.

Глубоко формализованный процесс разработки #rust би лайк:
Глубоко формализованный процесс разработки #rust би лайк:

Занятно, изменения о релизе 1.75.0 в RELEASES.md есть, но сам релиз пока ещё не опубликовали

Писать падающий тест, чтобы начать следовать методичке TDD 🙅 Писать падающий тест, чтобы завтра вспомнить на чём ты остановился 🙌

ЯГОМИК В С Ё «Якутский государственный объединённый музей истории и культуры» переименовали и теперь он называется просто «Як
ЯГОМИК В С Ё «Якутский государственный объединённый музей истории и культуры» переименовали и теперь он называется просто «Якутский музей». Сначала мы потеряли ВСЕГЕИ, теперь ЯГОМИК, что дальше?