1.83K subscribers
3.31K photos
132 videos
15 files
3.58K links
Блог со звёздочкой.

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

Небольшое прикольное комьюнити: @decltype_chat_ptr_t
Автор: @insert_reference_here
Download Telegram
Блог*
#prog #rust #моё Кое-что я при разработке этого макроса упустил: проверка на недостижимость кода недостаточно точна. Если строка не начинается с префикса, скажем, "java", то пытаться отщипнуть префикс "javascript" уже не имеет смысла, потому что он заведомо…
Что ж, с этим разобрались. Проверим теперь, как это работает на практике, и для этого модифицируем use_prefixes:

fn use_prefixes(s: &str) -> String {
prefixes!(match s {
"foo".. => s.to_string(),
"bar".. => [s, s].concat(),
"foobar".. => [s, "3"].concat(),
_ => String::new(),
})
}

Эта функция закономерно вызывает жалобы у компилятора на несоответствие типов. Отлов ошибок работает! Теперь немного поменяем определение:

fn use_prefixes(s: &str) -> String {
prefixes!(match s {
"foo".. if true => s.to_string(),
"bar".. => [s, s].concat(),
"foobar".. => [s, "3"].concat(),
_ => String::new(),
})
}

...И теперь у компилятора нет вопросов.

Есть недостатки у нашего решения? Определённо — помимо тех, о которых я уже писал. Во-первых, теперь это жёсткая ошибка вместо предупреждения компилятора — но да, это спорный недостаток. А во-вторых — и вот это уже недостаток куда как более существенный — ошибка компиляции не говорит о том, какие паттерны перекрываются. И я, к сожалению, не придумал, как их показывать, не выходя за пределы того, что умеет stable Rust.
#prog

Определение понятия "говнокод"
Forwarded from TJ
20% запросов к хранилищу файлов «Викисклад» приходятся на одно и то же фото цветка — инженеры выяснили, что трафик идёт от индийского приложения, набравшего популярность в стране после блокировки тиктока.

При этом приложение не отображает картинку, а отправляет к ней запрос во время запуска.

https://tjournal.ru/internet/337806
Forwarded from мне не нравится реальность (вафель 🧇🍓)
Вышел Rust 1.50!

Интересные (на мой взгляд) обновления:
Присваивание полям union'ов типа MaybeUninit<_> теперь safe
Теперь можно использовать константы в выражениях массива [x; N] (до этого можно было только :Copy типы)

ops::{Index, IndexMut} теперь реализованы для массивов всех длин
На unix системах, std::fs::File теперь имеет "нишу" -1, это значит что Option<File> и File могут иметь один размер

Стабилизировали bool::then, {Ord, f32, f64}::clamp, <[_]>::fill. Многие методы чисел стабилизировали как const (например pow).

Так-же метод compare_and_swap у атомиков депрекейтнули в пользу compare_exchange{,_weak} (pr), забавно что планировали это сделать ещё в (!) Rust 1.12, но забыли.

[анонс в блоге]
Forwarded from Dr. Friedrich von Never
«Башскрипт» звучит как название какой-нибудь башкирской госконторы.
Forwarded from DC8044 F33d
DC8044_telegram_crash.txt
5 KB
Один из коммунити-мемберов DC8044 нашел ошибку, при которой картинка из ASCII крашит клиент Телеграм. Воспроизвести удалось на последней десктопной версии клиента под Виндовс. Для реализации необходимо скопировать содержимое конкретного файла и попробовать вставить в любой из диалогов. Происходит краш клиента _отправителя_. Возможно исследователям удастся творчески раскрутить найденную ошибку до каких-то интересных масштабов.
P.S.: зарепортить багу в Телеграм не удается, так как там крашится бот, принимающий репорты....
Forwarded from Так говорит Алиса (John Meow)
Внутри меня два волка, но один из них почему-то кошкодевочка, а другой вообще умер
Forwarded from Журнал «Код»
Нужно больше странных фоток.

Что это: Icons8 — архив стоковых фотографий, где можно не только скачивать готовые, но компоновать свои варианты: подобрать фон, добавить или убрать предметы, людей, лица и всё что хочется.
По работе наконец-то смержили мой MR, устраняющий unsoundness в растовом коде

#трудовыебудни
— Имярек писал сервис метрик, а получился криптомайнер.

(контекст: сервис метрик выжирает всё отведённое ему процессорное время)

#quotes #трудовыебудни
Forwarded from Bortlog
В "This week in Rust" запостили интересную ссылочку на обсуждение того как гошный рантайм очень уверенно побеждает Tokio при работе с блокирующими системными вызовами (в 3 раза).
В топовом комменте на редите объясняется почему так, и как подкрутить настройки Tokio чтобы почти убрать разницу, ну и почему эти настройки не применяются по дефолту.
Вот такое вот перформанс доминирование у нас получается.
Нормальные пословицы, а не эта ваша народная мудрость

twitter.com/fellvein/status/1347425508707987456
Forwarded from Так говорит Алиса (John Meow)
Начало цикла статей по процедурным макросам в Rust

#prog #rust #proc_macro #article