1.84K subscribers
3.27K photos
130 videos
15 files
3.55K links
Блог со звёздочкой.

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

Небольшое прикольное комьюнити: @decltype_chat_ptr_t
Автор: @insert_reference_here
Download Telegram
Forwarded from shitposting 3.0 [+ dragons]
😁13😱1
Forwarded from shitposting 3.0 [+ dragons]
👍6😁3🔥1🙏1
Блог*
Подписчики, а какие вы знаете IDL (interface definition languages) с поддержкой сумм-типов?
#prog #rust #typescript #amazingopensource

Typical — IDL, который предоставляет одновременно:

* типобезопасность
* бинарную совместимость между схемами разных версий
* СУММ-ТИПЫ
* обязательные поля в схеме (я смотрю на тебя, Protobuf)
* возможность постепенно мигрировать поля из статуса опциональных в статус обязательных и наоборот

В Readme подробнее рассказывается, как достигается последний пункт за счёт новой концепции ассиметричных полей. Из недостатков можно отметить разве что небольшое число бекендов: пока что Typical умеет генерировать код только для Rust и Typescript.

(thanks @ployd)
👍6🤔2👎1
Стрипнутая динамическая библиотека
8😁8💩1
Forwarded from shitposting 3.0 [+ dragons]
😁173👍1
Forwarded from shitposting 3.0 [+ dragons]
15😁10
😒🤚 Winning at life
😏👉 Whining at life
😢10🌚3
Блог*
Photo
Первая попытка дальнейшего вознесения провалилась из-за того, что я был слишком медлителен и позволил Вечному (Long в оригинальных терминах) набрать достаточно мощи, чтобы начать атаковать меня напрямую и в итоге затыкать насмерть.

А что стало со второй попыткой? Она кончилась куда быстрее из-за... Болезни. Просто несколько глаголов Болезни подряд, которые скопились быстрее, чем я успевал отлечиться.

Я был несколько... Фрустрирован таким приземлённым исходом. Особенно с учётом того, насколько легко от этого обычно защититься.
👍4👎1
😶
🤣9😁5👍2🥰21
😁1
Дайс D4, когда на него наступают, очевидно, наносит 1d4 урона 🤔
🥴13👍2
#prog #rust #serde #rustlib

ijson — более эффективная по памяти альтернатива serde_json::Value.

This crate offers a replacement for serde-json’s Value type, which is significantly more memory efficient.

As a ballpark figure, it will typically use half as much memory as serde-json when deserializing a value and the memory footprint of cloning a value is more than 7x smaller.

The primary type exposed by this crate is the
IValue type. It is guaranteed to be pointer-sized and has a niche (so Option<IValue> is also guaranteed to be pointer-sized).
5🤣1
🤔3🤣2🌚1
Что ж, мне приснился кошмар. Давно такого не было.

С другой стороны, если мне вдруг понадобится написать хоррор — то, что мне приснилось, кажется, достаточно пугающе, чтобы напугать не только меня.
💔5😱2
Сообщение не поддерживается Вашей версией Telegram. Пожалуйста, обновите приложение, чтобы его увидеть: https://telegram.org/update
🖕29🤡6😁5👌5
👍123
#prog #rust хайлайты:

▪️Парсер теперь обнаруживает попытку написать лямбду в синтаксисе Ruby и предлагает изменения для того, чтобы сделать код компилируемым.

▪️❗️❗️❗️Теперь непосредственно разыменовывание невалидных указателей не является UB. Вместо этого UB возникает при попытке воспользоваться результатом разыменовывания подобного указателя или при попытке совершить на результате арифметику указателей (доступ по полю тоже считается).

Главным образом это позволяет безусловно использовать addr_of!(*ptr) без вызова UB, паттерн, который встречается в реальном коде.

▪️Компилятор теперь проверяет негативные литералы в range pattern на переполнение.

▪️Stabilize const_maybe_uninit_assume_init_read.

▪️Реализован BufRead для VecDeque<u8>.

▪️Для слайсов реализованы методы {, r}split_once с семантикой, аналогичной таким же методам на строке.

▪️Линт на отсутствующие реализации Copy теперь не триггерится на #[non_exhaustive] типах.

▪️#[repr(Rust)] теперь не совместим с иными #[repr]-атрибутами, кроме packed и aligned. Да, до этого фикса можно было написать #[repr(Rust, C)].

▪️Компилятор теперь предлагает добавить ?Sized на ассоциированный тип в случаях, когда мешает неявное ограничение Sized.

▪️Компилятор теперь диагностирует код вида println!("{x}", x);.

▪️Метод Option::unwrap_or_else получил атрибут #[track_caller].
4