RSSAmplifier

Blog

Naming is hard

blog.dureuill.netRSS feed ↗7 posts

Latest posts

Work In Progress Rust

Rust is a reliable language that prioritizes correctness. However, during development, it can be a burden to account for every single error path immediately. This article presents a few techniques that defer handling correctness to that you can stay longer in the happy path, as well as a library I developed to make this process more convenient.

Mixing rayon and tokio for fun and (hair) loss

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.

So, you want to write an unsafe crate

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.

Too dangerous for C++

Some patterns are only made practical thanks to Rust's memory safety, and too dangerous to use in C++. Here's a concrete example.

Rustaceans, say goodbye to lifetime errors: announcing nolife 0.3

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 🛒

A curiously recurring lifetime issue

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…

About

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…