Naming is hard. After all, it is one of the two hard problems of computer science, with cache invalidation and off-by-one errors. Mostly we would assume that poorly chosen type and variable names would merely make the code harder to read, but turns out they can lead to undefined behaviour, too. And no, I'm not talking about the reserved identifiers in C (I mean, who would use _Foo or __init__ as identifiers? Nonsense!), but rather something a bit more subtle.| blog.dureuill.net
Tired of E0597: borrowed value does not live long enough? 😆 Sometimes you just wish you could keep the variables you borrowed in your scope just a little longer... Well, nolife has got your back! Find it on lib.rs 🛒| Naming is hard
Hello World! I'm Louis Dureuil, a Senior Engineer at Meilisearch and your resident raccoon 🦝 PhD and Comp. Sc. Engineer from Ensimag, I'm interested in programming languages, coding practices, data structure and optimization, compilation (I have experience with writing JIT compilers and the LLVM framework), code analysis (binary, source) and fault injection. A C++ dedicated practitioner, it is the language I love to hate, while Rust is the one I love to love ❤️ Naming is hard is a pers...| blog.dureuill.net
Some Rust libraries are like oil and water, they just don't mix. With the async runtime tokio and the data-parallelism library rayon, I learned it the hard way.| blog.dureuill.net
These days saw the release of nolife 0.4, a crate that offers an intuitive fix for borrow errors by letting you conveniently store a scope of execution containing multiple borrows inside of your struct without a lifetime. I want to seize this opportunity to write a bit about what goes into making a library that juggles self-referential code like nolife does.| blog.dureuill.net
Some patterns are only made practical thanks to Rust's memory safety, and too dangerous to use in C++. Here's a concrete example.| blog.dureuill.net