Forwarded from XYZ
#галерея_xyz
Якуб Розальски — польский художник и иллюстратор, создавший вселенную 1920+. В ней культура XX века сочетается с боевыми роботами.
Свои первые картины Якуб писал на холсте и бумаге, к компьютерной графике он перешёл гораздо позже. Цифровой арт помогает художнику быстрее создавать новые работы, но иногда он всё же возвращается к традиционной живописи, так как любит её больше.
Источник: artstation.com/jakubrozalski
Якуб Розальски — польский художник и иллюстратор, создавший вселенную 1920+. В ней культура XX века сочетается с боевыми роботами.
Свои первые картины Якуб писал на холсте и бумаге, к компьютерной графике он перешёл гораздо позже. Цифровой арт помогает художнику быстрее создавать новые работы, но иногда он всё же возвращается к традиционной живописи, так как любит её больше.
Источник: artstation.com/jakubrozalski
👍2
#prog #c #article
Реализация простых кооперативных потоков на C с использованием setjmp/longjmp и небольшого количества ассемблера.
Оригинал
Перевод на Хабре
Реализация простых кооперативных потоков на C с использованием setjmp/longjmp и небольшого количества ассемблера.
Оригинал
Перевод на Хабре
Stephen Brennan's Blog
Implementing simple cooperative threads in C - Stephen Brennan
Using setjmp(), longjmp(), and assembly to implement a simple threading system
in C!
in C!
Forwarded from мне не нравится реальность (вафель 🧇)
*Мысли вслух* функция
is_sized, проверяющая является ли тип Sized, пишется тривиально:fn is_sized<T: ?Sized>() -> bool {
mem::size_of::<*const T>() == mem::size_of::<usize>()
}#prog #rust
cargo-llvm-lines — инструмент для подсчёта количества строк LLVM IR, сгенерированных для каждой функции в программе, с учётом процентного вклада и дубликатов. Автор — ожидаемоТолян dtolnay
cargo-llvm-lines — инструмент для подсчёта количества строк LLVM IR, сгенерированных для каждой функции в программе, с учётом процентного вклада и дубликатов. Автор — ожидаемо
GitHub
GitHub - dtolnay/cargo-llvm-lines: Count lines of LLVM IR per generic function
Count lines of LLVM IR per generic function. Contribute to dtolnay/cargo-llvm-lines development by creating an account on GitHub.
Блог*
#prog #rust cargo-llvm-lines — инструмент для подсчёта количества строк LLVM IR, сгенерированных для каждой функции в программе, с учётом процентного вклада и дубликатов. Автор — ожидаемо Толян dtolnay
Этот инструмент привёл в итоге к созданию этого PR, который вынес не зависящую от типа часть обобщённого кода в отдельную функцию и таким образом привёл к заметному улучшению производительности компиляции
GitHub
Make `RawVec::grow` mostly non-generic. by nnethercote · Pull Request #72013 · rust-lang/rust
cargo-llvm-lines shows that, in various benchmarks, RawVec::grow is
instantiated 10s or 100s of times and accounts for 1-8% of lines of
generated LLVM IR.
This commit moves most of RawVec::grow int...
instantiated 10s or 100s of times and accounts for 1-8% of lines of
generated LLVM IR.
This commit moves most of RawVec::grow int...
Блог*
#моё #prog #rust В крейте time есть структура Date с методом format, который возвращает String со датой, отформатированной согласно переданному формату. Выглядит это примерно так (пример из документации): assert_eq!(date!(2019-01-02).format("%Y-%m-%d"),…
#prog #rust #article
Аналогичный подход для создания аналога println/printf с проверками во время компиляции.
willcrichton.net/notes/type-safe-printf/
Аналогичный подход для создания аналога println/printf с проверками во время компиляции.
willcrichton.net/notes/type-safe-printf/
willcrichton.net
Implementing a Type-safe printf in Rust | Will Crichton
I show how to use heterogeneous lists and traits to implement a type-safe printf in Rust. These mechanisms can ensure that two variadic argument lists share important properties, like the number of format string holes matches the number of printf arguments.
#prog #rust #embedded #rustlib #amazingopensource
Исторически одной из проблем на пути использования Rust в встраиваемых устройствах был тот факт, что стандартная машинерия для форматирования сильно раздувает размер результирующего бинарника. Это особенно неприятно в силу того, что стандартная паника использует эту машинерию. Библиотека defmt от Ferrous System нацелена на решение это проблемы: она позволяет использовать форматирование (в том числе отложенное) и паники, сохраняя при этом маленький размер бинарника.
Исторически одной из проблем на пути использования Rust в встраиваемых устройствах был тот факт, что стандартная машинерия для форматирования сильно раздувает размер результирующего бинарника. Это особенно неприятно в силу того, что стандартная паника использует эту машинерию. Библиотека defmt от Ferrous System нацелена на решение это проблемы: она позволяет использовать форматирование (в том числе отложенное) и паники, сохраняя при этом маленький размер бинарника.
GitHub
GitHub - knurling-rs/defmt: Efficient, deferred formatting for logging on embedded systems
Efficient, deferred formatting for logging on embedded systems - knurling-rs/defmt