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
Блог*
#prog #моё Сегодня я хотел бы рассказать о возможных способах реализации полиморфизма в языках программирования и о том, какие выгоды и издержки они имеют. Disclaimer: я не особо шарю, так что могу наговорить глупостей. Полиморфизм — это свойство кода обрабатывать…
#prog #article
Разбор различных способов реализации полиморфизма, более обстоятельный и глубокий, чем у меня. Заодно показываются модели, которые пока что не получили должной реализации.
thume.ca/2019/07/14/a-tour-of-metaprogramming-models-for-generics/
Разбор различных способов реализации полиморфизма, более обстоятельный и глубокий, чем у меня. Заодно показываются модели, которые пока что не получили должной реализации.
thume.ca/2019/07/14/a-tour-of-metaprogramming-models-for-generics/
thume.ca
Models of Generics and Metaprogramming: Go, Rust, Swift, D and More - Tristan Hume
#prog
Мысли по поводу лучшего стабильного ABI, чем сишный. В виде треда в твиттере, сорян, в более удобоваримом формате нет.
twitter.com/bitshiftmask/status/1286411475658178561
Мысли по поводу лучшего стабильного ABI, чем сишный. В виде треда в твиттере, сорян, в более удобоваримом формате нет.
twitter.com/bitshiftmask/status/1286411475658178561
Twitter
james.poll_on()?;
Here's a rant (opinion?) that I'll turn in to a blog post soon. I think Rust should have a third ABI, not repr(C) or repr(Rust), and it should be used to slowly phase out the C ABI for a better one. Want to hear more of my unreasonable thoughts about ABIs?…