manishearth.github.io Topics: Rust internals, Servo, Unicode, ICU4X, Clippy Why RustGrep includes it: Clippy origin. Servo and Unicode/ICU4X work. Categories: core
This is a post I’ve been meaning to write and publish for years, and only recently got around to doing it. I’m hoping to get back into writing more! For the past few years, as a part of my work on ICU4X, I’ve been working on Diplomat, a mul...
This is part 3 of a three-part series on interesting abstractions for zero-copy deserialization I’ve been working on over the last year. This part is about eliminating the deserialization step entirely. Part 1 is about making it more pleasa...
This is part 2 of a three-part series on interesting abstractions for zero-copy deserialization I’ve been working on over the last year. This part is about making zero-copy deserialization work for more types. Part 1 is about making it more...
This is part 1 of a three-part series on interesting abstractions for zero-copy deserialization I’ve been working on over the last year. This part is about making zero-copy deserialization more pleasant to work with. Part 2 is about making...
I’ve been thinking about garbage collection in Rust for a long time, ever since I started working on Servo’s JS layer. I’ve designed a GC library, worked on GC integration ideas for Rust itself, worked on Servo’s JS GC integration, and help...
There’s been some discussion about arenas in Rust recently, and I thought I’d write about them. Arenas aren’t something you would typically reach for in Rust so fewer people know about them; you only really see them in applications for vari...
This post was originally drafted in August 2018, but I never got around to finishing it. As such, parts of its framing (e.g. the focus on bindgen) are outdated, given the relative infancy of the interop space at the time. I was recently tol...
We’ve recently been making lots of progress on future plans for clippy and I thought I’d post an update. For some background, Clippy is the linter for Rust. We have more than 250 lints, and are steadily growing. Clippy and Nightly Sadly, Cl...
Last week I fell down a rather interesting rabbit hole in Rust, which was basically me discovering a series of quirks of the Rust compiler/language, each one leading to the next when I asked “why?”. It started when someone asked why autogen...
The Rust community lately has been focusing a lot on “async I/O” through the tokio project. This is pretty great! But for many in the community who haven’t worked with web servers and related things it’s pretty confusing as to what we’re tr...
Recently Julia Evans wrote an excellent post about debugging a segfault in Rust. (Go read it, it’s good) One thing it mentioned was I think “undefined” and “unsafe” are considered to be synonyms. This is … incorrect. However, we in the Rust...
Note: This post was written before the Rust 2018 edition, and does not yet incorporate the changes made to the module system. The module and import system in Rust is sadly one of the many confusing things you have to deal with whilst learni...
A colleague of mine learning Rust had an interesting type / borrow checker error. The solution needs a less-used feature of Rust (which basically exists precisely for this kind of thing), so I thought I’d document it. The code was like this...
This may be part of a collaborative blog post series about underhanded Rust code. Or it may not. I invite you to write your own posts about underhanded code to make it so! The submission deadline for the Underhanded Rust competition has bee...
See also: Tony’s post on the same topic You often hear people saying “Language X1 has sum types” or “I wish language X had sum types”2, or “Sum types are cool”. Much like fezzes and bow ties, sum types are indeed cool. These days, I’ve also...
This may be part of a collaborative blog post series about underhanded Rust code. Or it may not. I invite you to write your own posts about underhanded code to make it so! Last month we opened up The Underhanded Rust competition. This conte...
Update: This post got a sequel, Breaking our latin-1 assumptions. I’ve seen misconceptions about Unicode crop up regularly in posts discussing it. One very common misconception I’ve seen is that code points have cross-language intrinsic mea...
Rust is not a simple language. As with any such language, it has many little tidbits of complexity that most folks aren’t aware of. Many of these tidbits are ones which may not practically matter much for everyday Rust programming, but are...
Rust is not a simple language. As with any such language, it has many little tidbits of complexity that most folks aren’t aware of. Many of these tidbits are ones which may not practically matter much for everyday Rust programming, but are...