Блог*
رفتن به کانال در Telegram
Блог со звёздочкой. Много репостов, немножко программирования. Небольшое прикольное комьюнити: @decltype_chat_ptr_t Автор: @insert_reference_here
نمایش بیشتر1 927
مشترکین
اطلاعاتی وجود ندارد24 ساعت
-67 روز
-230 روز
آرشیو پست ها
1 926
#prog #article
Мой плохой код — это ваша вина
Очередной плач про то, как в этом вашем IT всё криво
(от @blog_pogromista)
1 926
#prog #rust #article
How to stop fighting with coherence and start writing context-generic trait impls
Транскрипт выступления, если что. Мне помогло понять, что же всё-таки такое context-generic programming, как это называет автор
1 926
Repost from лингвист реалист
Шикарные мои подписчицы, поздравляю вас с 8 марта!
Пусть никто не затыкает вам рот, а вы говорите всё, что посчитаете нужным. Я бы ещё пожелал делать это на желаемом языке, но тут уже всё зависит от вас. Впрочем, не сомневаюсь в вашей целеустремлённости и трудолюбии!
Под лежачий камень права не текут, так что пусть у вас всегда будет энергия поднимать этот камень.
А украшением будьте не в коллективах, но для самих себя! 🍾
1 926
Repost from N/a
Дорогие дамы, поздравляю вас с днём женщин! С приобретением права голосовать, иметь свое имущество, разводится, одеваться как хочется именно вам и работать на оплачиваемой работе. Впереди ещё много за что нам предстоит бороться, берегите свои права и не отрекайтесь от них. 🌷
1 926
#prog #rust #rustreleasenotes
Вышла версия Rust 1.94.0! Как всегда, тут только то, что интересно мне, остальное в детальных заметках о релизе.
▪️Атрибуты для линта
dead_code (allow/warn/deny/expect) на трейтах и их частях теперь наследуются impl-ами:
#[allow(dead_code)]
trait Foo {
const FOO: u32;
}
impl Foo for u32 {
const FOO: u32 = roundtrip(0);
}
// нет предупреждения о мёртвом коде
const fn roundtrip(x: u32) -> u32 {
x
}
▪️Касты между сырыми указателями на unsized типы с указанием лайфтаймов теперь требуют, чтобы предыдущий тип жил не меньше нового. Или, иными словами, каст из *mut dyn Trait + 'a в *mut dyn Trait + 'b теперь требует 'a: 'b
▪️Стабилизировали array_windows! Украду пример прямо из блогпоста:
For example, part of one 2016 Advent of Code puzzle is looking for ABBA patterns: "two different characters followed by the reverse of that pair, such as xyyx or abba." If we assume only ASCII characters, that could be written by sweeping windows of the byte slice like this:
fn has_abba(s: &str) -> bool {
s.as_bytes()
.array_windows()
.any(|[a1, b1, b2, a2]|
(a1 != b1)
&& (a1 == a2)
&& (b1 == b2)
)
}
▪️LazyCell и LazyLock обзавелись методами get, get_mut и force_mut.
▪️Для iter::Peekable добавили методы next_if_map и next_if_map_mut. Пример из документации:
let mut iter = "125 GOTO 10".chars().peekable();
let mut line_num = 0_u32;
while let Some(digit) = iter.next_if_map(|c| c.to_digit(10).ok_or(c)) {
line_num = line_num * 10 + digit;
}
assert_eq!(line_num, 125);
assert_eq!(iter.collect::<String>(), " GOTO 10");
▪️cargo теперь использует для парсинга манифестов наконец-то вышедшую версию TOML 1.1. С практической точки зрения это главным образом означает, что inline-таблицы можно писать на нескольких строках и с запятой после — или, иными словами, зависимость в Cargo.toml с большим количеством фичей теперь можно писать среди остальных и не пихать её в одну длинную строку.
▪️Ещё стабилизация: cargo теперь позволяет разбить манифест на несколько файлов и объединить их при помощи top-level ключа include (документация).1 926
#science #video
Видео о том, как археологические открытия позволили доказать, что извержение Везувия, похоронившее Помпеи, произошло в октябре, а не в августе, как было принято считать ранее.
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
