fitzgeraldnick.com
Many people, including myself, have implemented garbage collection (GC) libraries for Rust. Manish Goregaokar wrote up a fantastic survey of this space a few years ago. These libraries aim to provide a safe API for their users to consume: a...
Rust Walkthroughs
2024-02-07
~24 min read
fitzgeraldnick.com
Maxime Chevalier-Boisvert requested resources for learning about fuzzing programming language implementations on Twitter: I’d like to learn about fuzzing, specifically fuzzing programming language implementations. Do you have reading materi...
Learn More Rust
2020-08-26
~25 min read
fitzgeraldnick.com
When writing a bump allocator, always bump downwards. That is, allocate from high addresses, down towards lower addresses by decrementing the bump pointer. Although it is perhaps less natural to think about, it is more efficient than increm...
News & Blog Posts
2019-11-05
~14 min read
fitzgeraldnick.com
One neat result of Rust’s futures and async/await design is that all of the async callers are on the stack below the async callees. In most other languages, only the youngest async callee is on the stack, and none of the async callers. Beca...
News & Blog Posts
2019-08-27
~7 min read
fitzgeraldnick.com
Compiling Rust to WebAssembly should be the best choice for fast, reliable code for the Web. Additionally, the same way that Rust integrates with C calling conventions and libraries on native targets, Rust should also integrate with JavaScr...
News & Blog Posts
2018-12-18
~6 min read
fitzgeraldnick.com
Rust shines when we find ways to have our cake and eat it too: memory safety without runtime garbage collection, abstraction without overhead, threading without data races. We must find new ways to continue this tradition for Rust 2019 and...
#Rust2019
2018-12-11
~4 min read
fitzgeraldnick.com
A month or so ago I gave a presentation on the inner workings of wasm-bindgen to the WebAssembly Community Group. A particular focus was the way that wasm-bindgen is forward-compatible with, and acts as a sort of polyfill for, the host bind...
News & Blog Posts
2018-12-04
~1 min read
fitzgeraldnick.com
Program synthesis is the act of automatically constructing a program that fulfills a given specification. Perhaps you are interested in sketching a program, leaving parts of it incomplete, and then having a tool fill in those missing bits f...
News & Blog Posts
2018-11-20
~13 min read
fitzgeraldnick.com
WebAssembly is a stack-based virtual machine and instruction set, designed such that implementations can be fast and safe. It is a portable target for the compilation of languages like C, C++, and Rust. How does WebAssembly make control flo...
News & Blog Posts
2018-05-01
~11 min read
fitzgeraldnick.com
We’re kicking off a working group to polish the end-to-end user experience of targeting WebAssembly from Rust and we want your help. Check out rust-lang-nursery/rust-wasm to learn more and get involved! As called out in Rust’s 2018 roadmap...
News & Blog Posts
2018-03-06
~1 min read
fitzgeraldnick.com
Vyacheslav Egorov, who goes by mraleph on the Web, wrote a response to my article “Oxidizing Source Maps with Rust and WebAssembly” titled “Maybe you don’t need Rust and WASM to speed up your JS”. The “Oxidizing” article recounts my experie...
News & Blog Posts
2018-02-27
~10 min read
fitzgeraldnick.com
Recently, we introduced WebAssembly (compiled from Rust) into the source-map JavaScript library. We saw parsing and querying source maps get a whole lot faster. But keeping the compiled .wasm code size small was a challenge. There are a var...
News & Blog Posts
2018-02-13
~24 min read
fitzgeraldnick.com
🎉 The Rust impl period has begun! 🎉 That means that the Rust community is focusing purely on implementing accepted RFCs and all the 2017 goals for the rest of the year. Designing and discussing new features and RFCs is temporarily paused. O...
Call for Participation
2017-09-26
~1 min read
fitzgeraldnick.com
TLDR: I translated some of the code and ideas from Scrap Your Boilerplate: A Practical Design Pattern for Generic Programming by Lämmel and Peyton Jones to Rust and it’s available as the scrapmetal crate. Say we work on some software that m...
News & Blog Posts
2017-08-08
~15 min read
fitzgeraldnick.com
I wrote a Rust crate to demangle C++ symbols: cpp_demangle. Find it on crates.io and github. C++ symbols are mangled? Why? Yes. Linkers only support C identifiers for symbol names. They don’t have any knowledge of C++’s namespaces, monomorp...
News & Blog Posts
2017-02-28
~7 min read
fitzgeraldnick.com
TLDR? If you just want to see the full working example crate, generating bzip2 bindings on-the-fly, it is available on Github here. Table of Contents Motivation Step 1: Adding bindgen as a Build Dependency Step 2: Create a wrapper.h Header...
News & Blog Posts
2016-12-20
~9 min read