Блог*
Kanalga Telegram’da o‘tish
Блог со звёздочкой. Много репостов, немножко программирования. Небольшое прикольное комьюнити: @decltype_chat_ptr_t Автор: @insert_reference_here
Ko'proq ko'rsatish1 963
Obunachilar
+124 soatlar
-17 kunlar
-230 kunlar
Postlar arxiv
1 964
#prog #rust #article
Rust SIMD on the GPU
Код на Rust, использующий
core::simd, может быть использован на GPU без изменений на уровне исходников!
К сожалению, на текущий момент применимость этого подхода несколько ограничена, поскольку core::simd всё ещё закрыта за фичей portable_simd, и авторам пришлось внести изменения в компилятор для устранения оверхеда.1 964
#prog #amazingopensource
typos — source code spell checker
Finds and corrects spelling mistakes among source code:
* Fast enough to run on monorepos
* Low false positives so you can run on PRs
github.com/crate-ci/typos
Разумеется, можно настроить исключения, на которые линтер не будет реагировать.
1 964
#article
Some thoughts on writing (от Dan Luu)
I see a lot of essays framed as writing advice which are actually thinly veiled descriptions of how someone writes that basically say "you should write how I write" <...>
<...> if you're trying to figure out what stylistic choices are right for you, you should start from your goals and what you're good at and go from there, not listen to somebody who's going to tell you to write like them. Besides being unlikely to work for you even if someone is able to describe what makes their writing tick, most advice is written by people who don't understand how their writing works.Как это часто у Dan Luu бывает, у эссе несколько дополнений, некоторые из которых с основной темой связаны несколько косвенно.
1 964
#prog #rust
Call for testing: Restricting trait implementability and field mutability
Две фичи на nightly.
impl_restriction позволяет указать на определении трейта, в каких модулях можно писать его реализацию.
pub mod foo {
pub mod bar {
pub(crate) impl(super) trait Foo {}
}
// `Foo` may be implemented here.
impl bar::Foo for i8 {}
}
// Error: `Foo` cannot be implemented here.
impl foo::bar::Foo for u8 {}
`mut_restriction позволяет указывать на полях, в каких модулях его можно изменять:
``rust
pub mod foo {
pub struct Bar {
pub mut(self) alpha: &'static str,
}
impl Bar {
pub fn mutate_inner(&mut self) {
// alpha may be mutated here.
self.alpha = "inner";
}
}
}
impl foo::Bar {
pub fn mutate_outer(&mut self) {
// Error: alpha cannot be mutated here.
self.alpha = "outer";
}
}
`
Первая фича с `impl(crate)` позволяет выразить паттерн sealed trait напрямую.1 964
Repost from trace!("TheBestTvarynka")
Another interesting tool that I found in the Rust Ukrainian Community chat: https://niche.rs/
Rust type layout & niche optimization visualizer.You type any Rust type and it will visualize that type layout. Pretty interesting to watch and experiment. If I had known about the
niche earlier, I would have used it to teach students about structure layout, padding, and related optimizations.1 964
Бесит, когда игроки отказываются приходить на ролёвки по надуманным поводам. Типа "у меня завал по работе", или "я не в стране", или вообще "у нас в семье новый ребёнок"
