Forwarded from Врен о Японии для туриста
Собственная Фудзи должна быть у каждого японского школьника - об этом позаботилась компания PLUS Stationery. Она продает стирательные резинки, которые поначалу выглядят обычно (слева на фото), но постепенно превращаются в Фудзи со снежной шапкой. Изобретательно!
Линейка таких резинок постоянно обновляется, и сейчас в продажу поступил осенний вариант с кленовыми листьями.
Линейка таких резинок постоянно обновляется, и сейчас в продажу поступил осенний вариант с кленовыми листьями.
#prog #rust #rustlib
fmt_ext — библиотека для прикрепления кастомных реализаций
Вместо тысячи слов:
fmt_ext — библиотека для прикрепления кастомных реализаций
Debug
и Display
к чужим типам.Вместо тысячи слов:
use std::{fmt, marker::PhantomData};
use fmt_ext::{debug::*, DebugExt};
// Create a type that will implement custom debug...
struct SliceWithLenDebug<T>(PhantomData<T>);
// Implement custom debug...
impl<T> CustomDebug for SliceWithLenDebug<T>
where
T: fmt::Debug,
{
type Target = [T];
fn fmt_target(target: &Self::Target, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "Slice {{ len: {}, items: {:?} }}", target.len(), target)
}
}
// Attach custom debug implementation to the target type...
impl<T> AttachDebug<SliceWithLenDebug<T>> for [T] {}
// Look! Now we have just call `debug` method on the target type...
fn main() {
let numbers = [0, 1, 2, 3];
println!("{:?}", numbers.debug());
let strings = vec!["I", "am", "a", "custom", "debug"];
println!("{:?}", strings.debug());
}
(thanks @ilyavenner)#prog
Даниил опять рассказывает интересное. На этот раз — про внутреннее устройство branch predictor-а
Даниил опять рассказывает интересное. На этот раз — про внутреннее устройство branch predictor-а
Telegram
Experimental chill
Недавно задался вопросом, а где вообще почитать про процессоры и как они устроены. К сожалению, архитектура практически всех современных процессоров закрыта.
С одним небольшим исключением, которое мне скинули друзья из ARM. Это процессоры Exynos, которые…
С одним небольшим исключением, которое мне скинули друзья из ARM. Это процессоры Exynos, которые…
#prog #rust #article #rustlib
Статья про фреймворк для тестирования программ на Rust при помощи генерации случайных программ и их исполнения при помощи miri. За счёт применяемых методик позволяет генерировать программы, которые тайпчекаются по построению. Несмотря на пачку ограничений, авторы сумели найти несколько багов в существующих библиотеках.
"The goal of this paper is to develop a methodology for automatically generating Rust programs to effectively test Rust library APIs. The main challenge is to synthesize well-typed Rust programs to account for proper chaining of API calls and Rust’s ownership type system and polymorphic types. We develop a program synthesis technique for Rust library API testing, which relies on a novel logical encoding of typing constraints from Rust’s ownership type system. We implement SyRust, a testing framework for Rust libraries that automatically synthesizes semantically valid test cases. Our experiments on 30 popular open-source Rust libraries found 4 new bugs."
Статья про фреймворк для тестирования программ на Rust при помощи генерации случайных программ и их исполнения при помощи miri. За счёт применяемых методик позволяет генерировать программы, которые тайпчекаются по построению. Несмотря на пачку ограничений, авторы сумели найти несколько багов в существующих библиотеках.
"The goal of this paper is to develop a methodology for automatically generating Rust programs to effectively test Rust library APIs. The main challenge is to synthesize well-typed Rust programs to account for proper chaining of API calls and Rust’s ownership type system and polymorphic types. We develop a program synthesis technique for Rust library API testing, which relies on a novel logical encoding of typing constraints from Rust’s ownership type system. We implement SyRust, a testing framework for Rust libraries that automatically synthesizes semantically valid test cases. Our experiments on 30 popular open-source Rust libraries found 4 new bugs."
Forwarded from Врен о Японии для туриста
Юные японцы не знают, что такое «дискета». Юные россияне тоже, наверное, не в курсе, но в завирусившемся твите интересно другое - что люди видят вместо дискеты.
Образ автомата с напитками накрепко вшит в голову каждого японца - хоть молодого, хоть пожилого. Туристы, побывавшие в стране, тоже понимают, о чем речь и не могут теперь развидеть на иконке автомат. Он настоящий символ страны, не хуже сакуры или суши.
Образ автомата с напитками накрепко вшит в голову каждого японца - хоть молодого, хоть пожилого. Туристы, побывавшие в стране, тоже понимают, о чем речь и не могут теперь развидеть на иконке автомат. Он настоящий символ страны, не хуже сакуры или суши.
😁1
#prog #article
Why Do Interviewers Ask Linked List Questions?
Автор пытается разобраться, почему на интервью до сих пор спрашивают вопросы про связные списки.
TL;DR: ракеты_и_лошадиные_задницы.txt.
Why Do Interviewers Ask Linked List Questions?
Автор пытается разобраться, почему на интервью до сих пор спрашивают вопросы про связные списки.
TL;DR: ракеты_и_лошадиные_задницы.txt.
Hillel Wayne
Why Do Interviewers Ask Linked List Questions?
A couple years back I gave a talk on researching software history, using “linked list interview questions” as an example topic. Since referring people to a video is less accessible than just writing a blog post, I’ve reproduced the question here.
So why do…
So why do…
Кстати, в #rust стабилизировали паники в const-контекстах! 🎉 Будем ждать, когда докатится до стейбла.
UPD:
UPD:
unreachable_unchecked
тоже.GitHub
Stabilize `const_panic` by jhpratt · Pull Request #89508 · rust-lang/rust
Closes #51999
FCP completed in #89006
@rustbot label +A-const-eval +A-const-fn +T-lang
cc @oli-obk for review (not r?'ing as not on lang team)
FCP completed in #89006
@rustbot label +A-const-eval +A-const-fn +T-lang
cc @oli-obk for review (not r?'ing as not on lang team)
Forwarded from Melt!
В США FAANG, а в России ВСРАТОСЛАВ:
ВК + Сбербанк + Рамблер + Акронис + Тиньков + Озон + Суперджоб + Ланит + Авито + ВТБ
ВК + Сбербанк + Рамблер + Акронис + Тиньков + Озон + Суперджоб + Ланит + Авито + ВТБ
Forwarded from RustCon - конференция по языку программирования Rust
А в программу RustCon проходит ... Вафель!
Вот что он сам пишет про свою тему "Неочевидные прелести Rust":
В Rust много неочевидных, но очень приятных фич, особенностей, функций. Я спросил у людей, что их приятно удивило при изучении раста и собрал все ответы в один список.
Теперь я хочу рассказать об этих прелестях, чтобы как можно больше разработчиков о них знали и могли ими пользоваться :)
Несколько примеров пунктов из списка:
👉 Result: FromIterator (.collect:<Result<_, _>>())
👉 Возможность использования паттернов везде (например в аргументах функций, let)
👉 Создание массивов через [CONST; N] для T: !Copy
Тезисы других докладов смотрите на сайте
Билеты там же😉
Вот что он сам пишет про свою тему "Неочевидные прелести Rust":
В Rust много неочевидных, но очень приятных фич, особенностей, функций. Я спросил у людей, что их приятно удивило при изучении раста и собрал все ответы в один список.
Теперь я хочу рассказать об этих прелестях, чтобы как можно больше разработчиков о них знали и могли ими пользоваться :)
Несколько примеров пунктов из списка:
👉 Result: FromIterator (.collect:<Result<_, _>>())
👉 Возможность использования паттернов везде (например в аргументах функций, let)
👉 Создание массивов через [CONST; N] для T: !Copy
Тезисы других докладов смотрите на сайте
Билеты там же😉