Rust to Assembly: Understanding the Inner Workings of Rust
How Rust compiles to assembly: enum memory layout, smart pointers, static vs dynamic dispatch, vtables, closures, vector iteration and async state machines.
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 6,949 posts.
How Rust compiles to assembly: enum memory layout, smart pointers, static vs dynamic dispatch, vtables, closures, vector iteration and async state machines.
Below is the first draft list of papers I plan to discuss in my distributed systems seminar in the Spring semester. If you have some suggest...
Parallel sequential scan is the first parallel access method in PostgreSQL and is introduced in version 9.6. The committer of this featu...
The Linux kernel has a feature where you can tune the behavior of memory allocations: the vm.overcommit_memory sysctl. When overcommit is enabled (sadly, this is the default), the kernel will typically return a mapping when brk(2) or mmap(2) is called to increase a program’s heap size, regardless of whether or not…
As I tend to do, I picked a topic to write about that is much larger in scope than I could manage in a reasonable amount of time. Did I learn? Apparently...
The common way of deleting files and folders in Windows is via Windows Explorer (a.k.a. File Explorer ). This method is perfectly acceptable under normal circumstances, but becomes a real drag when dealing with large and complex folder structures. There is, in fact, a significant amount of of overhead when you trigger…
Robert O'Callahan. Christian. Kiwi. Software guy. All content human-authored unless otherwise noted.
I learn a non-trivial number of things, because there’s Debian drama about them. The fact that the which command is not part of any standard just joined the flock.
Learn how you can use XDP/eBPF to get maximum bandwidth for your applications.
The answer is "very often"
Persisting state between AWS EC2 spot instances using Docker on an external volume
I've spent most of my career working inside the JVM, with a sidebar of Python. So the first time I hit incompatible libc with containerized Bifrost, and GPT suggested musl as the solution, not only did I jump on it, I moved my other Rust projects to musl as
As you may already know, Apple deprecated the OpenGL rendering library in macOS Mojave and provided the Metal framework as a replacement. Metal better reflects the shift in CPU/GPU performance that ha
world wide web benji-style
Robert O'Callahan. Christian. Kiwi. Software guy. All content human-authored unless otherwise noted.
asm.js is a subset of JavaScript that is very easy to optimize. Most often it is generated by a compiler, such as Emscripten, from C or C++ code. The result ...
The story of how the BBC website has been completely rebuilt and moved from datacentres to the cloud.
Last month, I sat down and decided to at the very least attempt to fix our XHCI (USB 3 host controller) bus driver. Issues with it have been the most significant problem users have been facing, as most hardware made post-2012 has an XHCI chip as the …
Suppose you have multiple processes appending output to the same file without explicit synchronization. These processes might be working in parallel on different parts of the same problem, or these might be threads blocked individually reading different external inputs. There are two concerns that come into play:
In C, the length of a string in marked by a 0 byte at the end of the string. Thus to determine the length of the string, one must scan it, looking for the 0 byte. Recent ARM processors have a powerful instruction set (SVE) that is well suited for such problems. It allows you … Continue reading Implementing ‘strlen’…