Я просто обязан поделиться с вами этим. Hacker News на днях прилегли на некоторое время.
Кто-то смог угадать в чём была проблема....
https://twitter.com/jonahedwards/status/1545648218158993409
Из-за overflow во внутреннем uptime таймере SSD после 40 тысяч часов (примерно 4.5 года) превратились в кирпичи.
?????????аааааааааааааааа
Кто-то смог угадать в чём была проблема....
https://twitter.com/jonahedwards/status/1545648218158993409
Из-за overflow во внутреннем uptime таймере SSD после 40 тысяч часов (примерно 4.5 года) превратились в кирпичи.
?????????аааааааааааааааа
Twitter
There's psychic debugging, and then there's this
https://www.youtube.com/watch?v=2y3IK1l6PI4
Интересный небольшой доклад (17m) на тему нового алгоритма сортировки "glidesort". По заверениям автора на случайных данных он в 4 раза быстрее чем стабильная сортировка в стандартной библиотеке Rust 👀
Впрочем насколько я понял сорцы пока не опубликованы, так что не то чтобы много понятно.
Интересный небольшой доклад (17m) на тему нового алгоритма сортировки "glidesort". По заверениям автора на случайных данных он в 4 раза быстрее чем стабильная сортировка в стандартной библиотеке Rust 👀
Впрочем насколько я понял сорцы пока не опубликованы, так что не то чтобы много понятно.
YouTube
Glidesort: Efficient In-Memory Adaptive Stable Sorting on Modern Hardware by Orson Peters
Speaker: Orson Peters
Title:
Glidesort: Efficient In-Memory Adaptive Stable Sorting on Modern Hardware
Abstract:
Sorting is one of the most common algorithms used in programming, and
virtually every standard library contains a routine for it. Despite
also…
Title:
Glidesort: Efficient In-Memory Adaptive Stable Sorting on Modern Hardware
Abstract:
Sorting is one of the most common algorithms used in programming, and
virtually every standard library contains a routine for it. Despite
also…
Оцените прошедший день
Final Results
21%
+2 (прекрасно)
16%
+1
26%
0 (нейтрально)
14%
-1
24%
-2 (ужасно)
Оцените прошедший день
Final Results
16%
+2 (прекрасно)
25%
+1
29%
0 (нейтрально)
10%
-1
20%
-2 (ужасно)
Оцените прошедший день
Final Results
15%
+2 (прекрасно)
23%
+1
35%
0 (нейтрально)
6%
-1
21%
-2 (ужасно)
посадил родителей играть в keep talking & nobody explodes, это будет весело 😌
Оцените прошедший день
Final Results
20%
+2 (прекрасно)
25%
+1
29%
0 (нейтрально)
9%
-1
16%
-2 (ужасно)
Оцените прошедший день
Final Results
18%
+2 (прекрасно)
20%
+1
30%
0 (нейтрально)
4%
-1
29%
-2 (ужасно)
так увлёкся фиксом микро-утилиты что забыл про остывающую еду :(
"После 15 минут наблюдения за выводом
dbg!(&import) я решил что пора закругляться"Окей, как выясняется структура была self-referential и
Debug приводил к бесконечной рекурсии X)Оцените прошедший день
Final Results
19%
+2 (прекрасно)
17%
+1
25%
0 (нейтрально)
14%
-1
25%
-2 (ужасно)
Похвастаюсь и здесь что-ли: я реализовал Rust RFC 3216. Вот прям PR уже смерджили.
TL;DR: фича позволяет явно писать лайфтайм параметры для замыканий:
TL;DR: фича позволяет явно писать лайфтайм параметры для замыканий:
let _f = for<'a, 'b> |a: &'a A, b: &'b B| -> &'b C { b.c(a) };
// ^^^^^^^^^^^--- new!
https://github.com/rust-lang/rust/pull/98705Оцените прошедший день
Final Results
19%
+2 (прекрасно)
19%
+1
37%
0 (нейтрально)
5%
-1
19%
-2 (ужасно)
"Лего" субмарина становится всё более и более совершенной...
https://www.youtube.com/watch?v=KLEH8RJsYgI
https://www.youtube.com/watch?v=KLEH8RJsYgI
YouTube
Building a Lego-powered Submarine 4.0 - automatic depth control
This radio-controlled submarine can maintain a steady depth or a certain distance from the bottom. It is equipped with a pressure sensor and a laser distance sensor. Raspberry Pi and PID control are used for automation. Tested in a swimming pool and a small…
IF LET CHAINS ARE STABILIZED IN RUST 1.64
rust-lang/rust/pull/94927#event-7007028976
> 2 years, 4 months, 3 weeks and 1 day of long nights, obstacles and headaches.
> Hope stabilization won't be reverted but regardless, thanks to everyone who helped make this feature a reality.
Для тех кто не в теме, в расте можно делать паттерн матчинг в
rust-lang/rust/pull/94927#event-7007028976
> 2 years, 4 months, 3 weeks and 1 day of long nights, obstacles and headaches.
> Hope stabilization won't be reverted but regardless, thanks to everyone who helped make this feature a reality.
Для тех кто не в теме, в расте можно делать паттерн матчинг в
if (и while цикле). Называется эта конструкция "if-let" и выглядит примерно вот так:// выражение vvv
if let Some(x) = opt { ... }
// ^^^^^^^ паттерн
Синтаксис конфузный, но что имеем, то имеем, ладно. Проблемы (которые решает фича выше) начинается когда хочется сравнить сразу несколько выражений с паттернами. Можно использовать туплы:if let (Some(x), Ok(y)) = (opt, res) { ... }
Но мало того, что это абсолютно не читаемо, мало того что это вычисляет res даже если паттерн и без него бы не сматчился, так ещё и в res тут нельзя использовать x. Поэтому это очень неудобно. Можно использовать вложенность:if let Some(x) = opt {
if let Ok(y) = res { ... }
}
Но это ломает else (с таким вариантом его надо дублировать во все сложенные if'ы). Это всё настолько печально, что есть даже крейт if_chain с макросом который разбирается со всеми этими проблемами. Ну и фича которую вот стабилизировали — if let chains, которая позволяет писать вот так:if let Some(x) = opt && let Ok(y) = res { ... }
😌GitHub
Stabilize `let_chains` in Rust 1.64 by c410-f3r · Pull Request #94927 · rust-lang/rust
Stabilization proposal
This PR proposes the stabilization of #![feature(let_chains)] in a future-compatibility way that will allow the possible addition of the EXPR is PAT syntax.
Tracking issue: #...
This PR proposes the stabilization of #![feature(let_chains)] in a future-compatibility way that will allow the possible addition of the EXPR is PAT syntax.
Tracking issue: #...
Оцените прошедший день
Final Results
14%
+2 (прекрасно)
27%
+1
30%
0 (нейтрально)
11%
-1
18%
-2 (ужасно)
Оцените прошедший день
Final Results
18%
+2 (прекрасно)
26%
+1
28%
0 (нейтрально)
7%
-1
21%
-2 (ужасно)