1.84K subscribers
3.26K photos
129 videos
15 files
3.54K links
Блог со звёздочкой.

Много репостов, немножко программирования.

Небольшое прикольное комьюнити: @decltype_chat_ptr_t
Автор: @insert_reference_here
Download Telegram
#meme про ХВ
Forwarded from ТГ Шевченка
🤡11😁9❤‍🔥5🤮3😭3👎1🥰1🎉1
Forwarded from brat_oracle
Грустный день
😭29👎1💯1
Forwarded from Dead (zaebalo) inside 💀
😁6👍1
😒🤚 "Я простудился и у меня жар"
😏👉 "Я горяч"
🥰11👎4🤡2🔥1🤮1
#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! выше по тексту, если декларативный макрос вызывается раньше, чем определяется в этом файле.

▪️Компилятор теперь диагностирует каст ссылки из одного типа в другой с бо́льшим размером.
👍8🔥3
Forwarded from someone's shitpost
раньше я программировал без костылей
теперь вот, обзавелся

можно смело учить раст
🤔8🤡7😁5👍4😢1💩1🫡1
Сижу, наполняю себя пищей. А хочется... Кое-чем другим.
🤮12🥰11🤡5💩3😁1
Блог*
Сижу, наполняю себя пищей. А хочется... Кое-чем другим.
Знаниями, разумеется. А вы о чём подумали?
💔11🤡2🌚1🤨1
bash — это как асбест: вреден для здоровья и присутствует во многих старых конструкциях
👌16👍5👎3😁3🤡1
Тогда неинтересно
🌚5🤡2
#prog #article

Zed Decoded: Rope & SumTree

Об основной структуре данных в основе текстового редактора Zed и о том, какие преимущества она предоставляет (спойлер: rope — производная от этой структуры).
👍6🤡1
Note: D&D is cool
👍10🤮41
Единственный достойный лозунг в память о ВМВ
👍2610🤮8💩3🤡3😁1🤣1🖕1
Науки бывают естественные, неестественные и противоестественные
🤡73😱1
Как же порой хочется, чтобы папищеки мне дали денег
🤡75🙏3🤮2👎1🖕1
#prog про YAML опять
Forwarded from Segment@tion fault
- А давайте настраивать log::LevelFilter через YAML
- А давайте!
- info
- passed
- warn
- passed
- error
- passed
- off
- SchemaValidationError: false is not one of ["trace","debug","info","warn","error","off"]
😁17😍6🤣2