This media is not supported in your browser
VIEW IN TELEGRAM
вафель радуется смердженному PR'у, 2022 год, фото в цвете
This media is not supported in your browser
VIEW IN TELEGRAM
это я читаю в беггинерсах про дата рейсы
Заметка: не ходите пешком с человеком на лыжах, особенно, если снег глубокий и рыхлый
Заметка: не позволяйте собакам узнать, что они могут снять ваши перчатки
Заметка: не позволяйте собакам узнать, что они могут снять ваши перчатки
мне не нравится реальность
Оцените прошедший, 2021 год
Обнимаю 18%, я с вами, я с вами (обнимаю)
Оцените прошедший день
Final Results
14%
+2 (прекрасно)
26%
+1
24%
0 (нейтрально)
21%
-1
15%
-2 (ужасно)
Оцените прошедший день
Final Results
14%
+2 (прекрасно)
23%
+1
27%
0 (нейтрально)
17%
-1
20%
-2 (ужасно)
> Labeling question: is ICE -> crash a regression?
лмао
*🧊 — internal compiler error
лмао
*🧊 — internal compiler error
TIL:
As a side note: я наконец-то закончил рефакторинг, который пинал чуть ли не пол года 🎉
git log -S"dbg!(vec.len())" находит коммит, в котором добавили dbg!(vec.len())
TIL: git rebase -i --exec "cmd" commit запускает комманду cmd на коммитах commit..HEAD
TIL: cargo test -q выводит по одной точке, вместо одной линии на тест, это сильно укорачивает выводAs a side note: я наконец-то закончил рефакторинг, который пинал чуть ли не пол года 🎉
В свежем Rust 1.58.0 наконец-то можно использовать переменные напрямую при форматировании строк:
let person = get_person();Пока что это работает только с именами, а не произвольными выражениями, но всё равно приятно. Прощайте
// ...
println!("Hello, {person}!"); // captures the local `person`
format!("{name}", name = name);!Кстати вижу многие сильно радуются этому, но я на самом деле не слишком воодушевлён. Хорошая фича, но не та, из-за которой я буду бегать по потолку.
мне не нравится реальность
В свежем Rust 1.58.0 наконец-то можно использовать переменные напрямую при форматировании строк: let person = get_person(); // ... println!("Hello, {person}!"); // captures the local `person` Пока что это работает только с именами, а не произвольными выражениями…
Ещё из плюшек:
— теперь
— Теперь правила ансайзинга для дженерик структур немного проще[1]
— В
— реализация
—
[1]: Новые правила позволяют такое:
А полные новые правила такие:
— the tail field depends on at least one type or const parameter not used in any other field
— the target struct can be created from the source by replacing only the parameters only found in the last struct field
— the tail field implements
[2]: Ранее они были отключены из-за того, что их нельзя выполнить в
— теперь
*const T указатели можно дерефать в константных контекстах— Теперь правила ансайзинга для дженерик структур немного проще[1]
— В
copy{,_nonoverlapping} опять включили debug_assert'ы[2]— реализация
Clone для RSplit<T, P> больше не требует T: Clone
— Трейт Termiation теперь реализов для Result<Infallible, E>, позволяя писать fn main() -> Result<Infallible, ErrorType>, для програм которые не заканчиваются успешно через выход из main
— Стабилизировали File::options, замену FileOptions::new
— Стабилизировали {Option,Result}::unwrap_unchecked
— Стабилизировали многие методы Duration и MaybeUninit как const fn
— Компилятор теперь будет пытаться применять стабильные методы прежде, чем не стабильные. Это позволит избежать поломок при добавлении в std
методов, пересикающихся по именам с методами из сторонних трейтов.—
rustdoc теперь показывает методы из всех Deref реализаций, рекурсивно (а не только из первой)[1]: Новые правила позволяют такое:
struct A<T, U: ?Sized + 'static>(T, B<T, U>);
struct B<T, U: ?Sized>(T, U);
fn main() {
let x: A<[u32; 1], [u32; 1]> = A([0; 1], B([0; 1], [0; 1]));
// This previously did not work as the last field of `A` also mentions `T`,
// as only `U` changes this is now allowed thanks to this feature.
let _y: &A<[u32; 1], [u32]> = &x;
}
TL;DR: если последнее поле это структура, которая ансайзиться, то теперь и наружняя структура тоже ансайзиться.А полные новые правила такие:
— the tail field depends on at least one type or const parameter not used in any other field
— the target struct can be created from the source by replacing only the parameters only found in the last struct field
— the tail field implements
Unsize from source to target[2]: Ранее они были отключены из-за того, что их нельзя выполнить в
const fn
Полный список изменений: RELEASES.md#version-1580-2022-01-13Оцените прошедший день
Final Results
12%
+2 (прекрасно)
28%
+1
32%
0 (нейтрально)
16%
-1
13%
-2 (ужасно)
Иногда всё, что тебе нужно для счастья, это
cargo +49c0861ed0fa1d95186d88df0cd4310103e70957 cставьте лайк, если вы тоже плачете, потому что воеджеру 1 и воеджеру 2 наверное одиноко и страшно бороздить просторы бескрайнего космоса в одиночестве, вдали от солнечной системы
2022-01-14_13-19.png
33.9 KB
Меня нёрд-снайпнули в чяте и я реализовал compile-time интерпретатор BF на декларативных макросах раста (
macro_rules!).Оцените прошедший день
Final Results
16%
+2 (прекрасно)
22%
+1
29%
0 (нейтрально)
22%
-1
10%
-2 (ужасно)
Оцените прошедший день
Final Results
23%
+2 (прекрасно)
26%
+1
23%
0 (нейтрально)
9%
-1
20%
-2 (ужасно)