en
Feedback
Блог*

Блог*

Open in Telegram

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

Show more
1 923
Subscribers
+124 hours
-17 days
-730 days
Posts Archive
Знаниями, разумеется. А вы о чём подумали?

Сижу, наполняю себя пищей. А хочется... Кое-чем другим.

Repost from someone's shitpost
раньше я программировал без костылей теперь вот, обзавелся можно смело учить раст
раньше я программировал без костылей теперь вот, обзавелся можно смело учить раст

#prog #rust #rustreleasenotes Вышла версия Rust 1.78.0! Как всегда, тут только то, что показалось мне интересным, а всё остальное в детальных заметках о релизе. ▪️Появилось новое пространство имён для атрибутов: diagnostic. В настоящий момент там только один атрибут: on_unimplemented (о котором я рассказывал). Он позволяет кастомизировать сообщение, выдаваемое компилятором для случаев, когда обобщённому коду, который требует этот трейт на обобщённом параметре, предоставляется тип, не реализующий этот трейт. Это уже используется в axum. ▪️В std при debug_assertions теперь проверяются некоторые из предусловий на unsafe функциях. Раньше это было невозможно из-за того, что std всегда поставлялась в релизной сборке. ▪️Некоторые из функций на указателях стали более полезными, поскольку теперь обещают более строгие результаты. 🔸pointer::align_offset возвращает смещение, необходимое для того, чтобы выровнять указатель до указанного выравнивания, или usize::MAX, если это невозможно. Раньше ей разрешалось всегда возвращать usize::MAX. 🔸slice::align_to и slice::align_to_mut переводят &{mut} [T] в (&{mut} [T], &{mut} [U], &{mut} [T]), где слайс в середине теперь максимально возможного размера с учётом ограничений на выравнивание и размер. Раньше функциям разрешалось возвращать, скажем, исходный слайс целиком как первый элемент тройки. Обе оговорки были связаны с применением этих функций в const-контексте. Сейчас их убрали, поскольку они и сейчас нестабильны в const-контекстах. ▪️async-методы теперь могут возвращать в реализациях конкретные типы, реализующие Future (а не только impl Future). ▪️Реализация RwLock теперь полностью кастомная и не зависит от pthread. Это позволяет оградиться от багов на старых системах, а также избежать аллокаций (т. к. примитивы синхронизации pthread неперемещаемы) и повысить производительность. ▪️В метод char::is_grapheme_extended добавлена проверка на ASCII, чтобы избежать лукапа по юникодным таблицам (последовавший за ним PR переместил эту проверку в код, генерируемый по таблицам Unicode). Звучит, как что-то узкоспециализированное, но этот метод в конечном счёте вызывается в реализации Debug для str. Как следствие, это изменение более чем вдвое ускорило дерайв Debug! ▪️В паттернах теперь нельзя использовать константы типов, не реализующих PartialEq и NaN. ▪️Компилятор теперь по умолчанию не компилирует код с неверными #[doc]-атрибутами. ▪️Компилятор теперь детектирует больше избыточных импортов. Это изменение позволило убрать лишние импорты и в самом компиляторе во многих местах. ▪️Компилятор теперь предлагает переместить macro_rules! выше по тексту, если декларативный макрос вызывается раньше, чем определяется в этом файле. ▪️Компилятор теперь диагностирует каст ссылки из одного типа в другой с бо́льшим размером.

😒🤚 "Я простудился и у меня жар" 😏👉 "Я горяч"

photo content

Repost from brat_oracle
Грустный день
Грустный день

Repost from N/a
photo content

#meme про ХВ

Памагити, я хочу по рабочей задаче форкнуть кодогенератор по Protobuf

Уже 11000+ :/

Теперь Яндекс - маркетплейс и доставка, которая еще умеет и поиск делать.

photo content

sticker.webp0.03 KB

photo content

photo content