Forwarded from Kedr to Earth | Земля, я Кедр (✅ Yuri Ammosov)
Roem.ru
На "Поиск и портал" пришлсоь 93 ярда выручки (41%), на коммерцию, райдтех и доставку — 122 ярда выручки (54%).
Теперь Яндекс - маркетплейс и доставка, которая еще умеет и поиск делать.
😁10🤷1
Блог*
Какой ужас, 7000+ сообщений с "Избранном" в телеге. Надо что-то с этим делать
Уже 11000+ :/
🤯2😁1😭1
#prog #rust #rustreleasenotes
Вышла версия Rust 1.78.0! Как всегда, тут только то, что показалось мне интересным, а всё остальное в детальных заметках о релизе.
▪️Появилось новое пространство имён для атрибутов:
▪️В std при
▪️Некоторые из функций на указателях стали более полезными, поскольку теперь обещают более строгие результаты.
Обе оговорки были связаны с применением этих функций в const-контексте. Сейчас их убрали, поскольку они и сейчас нестабильны в const-контекстах.
▪️Реализация
▪️В метод
▪️В паттернах теперь нельзя использовать константы типов, не реализующих PartialEq и NaN.
▪️Компилятор теперь по умолчанию не компилирует код с неверными
▪️Компилятор теперь детектирует больше избыточных импортов. Это изменение позволило убрать лишние импорты и в самом компиляторе во многих местах.
▪️Компилятор теперь предлагает переместить
▪️Компилятор теперь диагностирует каст ссылки из одного типа в другой с бо́льшим размером.
Вышла версия 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
Блог*
Сижу, наполняю себя пищей. А хочется... Кое-чем другим.
Знаниями, разумеется. А вы о чём подумали?
💔11🤡2🌚1🤨1
bash — это как асбест: вреден для здоровья и присутствует во многих старых конструкциях
👌16👍5👎3😁3🤡1
#prog #article
Zed Decoded: Rope & SumTree
Об основной структуре данных в основе текстового редактора Zed и о том, какие преимущества она предоставляет (спойлер: rope — производная от этой структуры).
Zed Decoded: Rope & SumTree
Об основной структуре данных в основе текстового редактора Zed и о том, какие преимущества она предоставляет (спойлер: rope — производная от этой структуры).
zed.dev
Rope & SumTree
From the Zed Blog: In this episode of Zed Decoded, Thorsten asks the founders — Nathan, Max, Antonio — about the data structures at the heart of Zed: Rope and SumTree.
👍6🤡1