#prog (и, пожалуй, #blogrecommendation, даже не смотря на иишные иллюстрации)
Немного про возможности и фундаментальные ограничения различных примитивов синхронизации: t.iss.one/types_and_archetypes/29
Немного про возможности и фундаментальные ограничения различных примитивов синхронизации: t.iss.one/types_and_archetypes/29
Telegram
Типы и Архетипы
Иерархия Херлихи: периодическая таблица конкурентности
Сегодня в рамках «распределённых вторников» рассмотрим вопрос, который стоит за всей lock-free/wait-free инженерией: почему вообще неблокирующая синхронизация возможна и почему одни примитивы могут "выразить"…
Сегодня в рамках «распределённых вторников» рассмотрим вопрос, который стоит за всей lock-free/wait-free инженерией: почему вообще неблокирующая синхронизация возможна и почему одни примитивы могут "выразить"…
👍4🔥2👏1
#science #video
Видео о том, как археологические открытия позволили доказать, что извержение Везувия, похоронившее Помпеи, произошло в октябре, а не в августе, как было принято считать ранее.
Видео о том, как археологические открытия позволили доказать, что извержение Везувия, похоронившее Помпеи, произошло в октябре, а не в августе, как было принято считать ранее.
YouTube
The Discovery That Rewrote Pompeii
Howdy friends. In this video we explore the ruins of the infamous cities of Pompeii, Herculaneum, and several others to find clues that shed light on the great mystery of these ancient cities: when were they really destroyed. We will be taking a deep dive…
🔥6😁1
#prog #rust #rustreleasenotes
Вышла версия Rust 1.94.0! Как всегда, тут только то, что интересно мне, остальное в детальных заметках о релизе.
▪️Атрибуты для линта
▪️Касты между сырыми указателями на unsized типы с указанием лайфтаймов теперь требуют, чтобы предыдущий тип жил не меньше нового. Или, иными словами, каст из
▪️Стабилизировали array_windows! Украду пример прямо из блогпоста:
Благодаря выводу типов ещё и размер, как правило, не нужно указывать на методе явно.
▪️
▪️Для
▪️cargo теперь использует для парсинга манифестов наконец-то вышедшую версию TOML 1.1. С практической точки зрения это главным образом означает, что inline-таблицы можно писать на нескольких строках и с запятой после — или, иными словами, зависимость в Cargo.toml с большим количеством фичей теперь можно писать среди остальных и не пихать её в одну длинную строку.
▪️Ещё стабилизация: cargo теперь позволяет разбить конфиг на несколько файлов и объединить их при помощи top-level ключа
Вышла версия 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 (документация).👍5
Forwarded from Нюта из Наруто • дочка Василечка (Нюта из Наруто рисует)
Дорогие дамы, поздравляю вас с днём женщин! С приобретением права голосовать, иметь свое имущество, разводится, одеваться как хочется именно вам и работать на оплачиваемой работе. Впереди ещё много за что нам предстоит бороться, берегите свои права и не отрекайтесь от них. 🌷
❤11🥴3🍌2💯1
Forwarded from лингвист реалист
Шикарные мои подписчицы, поздравляю вас с 8 марта!
Пусть никто не затыкает вам рот, а вы говорите всё, что посчитаете нужным. Я бы ещё пожелал делать это на желаемом языке, но тут уже всё зависит от вас. Впрочем, не сомневаюсь в вашей целеустремлённости и трудолюбии!
Под лежачий камень права не текут, так что пусть у вас всегда будет энергия поднимать этот камень.
А украшением будьте не в коллективах, но для самих себя! 🍾
Пусть никто не затыкает вам рот, а вы говорите всё, что посчитаете нужным. Я бы ещё пожелал делать это на желаемом языке, но тут уже всё зависит от вас. Впрочем, не сомневаюсь в вашей целеустремлённости и трудолюбии!
Под лежачий камень права не текут, так что пусть у вас всегда будет энергия поднимать этот камень.
А украшением будьте не в коллективах, но для самих себя! 🍾
🤔6❤2
#prog #rust #article
How to stop fighting with coherence and start writing context-generic trait impls
Транскрипт выступления, если что. Мне помогло понять, что же всё-таки такое context-generic programming, как это называет автор
How to stop fighting with coherence and start writing context-generic trait impls
Транскрипт выступления, если что. Мне помогло понять, что же всё-таки такое context-generic programming, как это называет автор
🔥2