ChibiHash: Small, Fast 64 bit hash function
Update Nov 30: I've added a version 2, which makes the benchmarks and design overview section in this article outdated. See the github repo for updated benchmarks.
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 6,949 posts.
Update Nov 30: I've added a version 2, which makes the benchmarks and design overview section in this article outdated. See the github repo for updated benchmarks.
A community and blog for embedded software makers
Within the LLVM project, MC is a library responsible for handling assembly, disassembly, and object file formats. Intro to the LLVM MC Project, which was written back in 2010, remains a good source to understand the high-level structures. In the latest release cycle, substantial effort has been dedicated to refining…
A little-discussed method enables inserting rows with bound data into SQLite faster than any existing technique. This novel method is then discovered to have a drawback that makes it generally unusable. The rest of this article explores how to get the best insert performance out of SQLite generally; what's in your…
Lets have a drink!
A comparison of ideas behind Dynamo and Cassandra
One of the hardest things for people to understand with distributed systems is that eventual consistency is the same thing as eventual inconsistency. The very...
Posted by Jann Horn, Project ZeroIntroductionThis blog post discusses a bug leading to memory cor...
Perf is probably the most widely used general purpose performance debugging tool on Linux. There are multiple contenders for the #2 spot, and, like perf, they're sampling profilers. Sampling profilers are great. They tend to be easy-to-use and low-overhead compared to most alternatives. However, there are large…
Dec 12, 2019 Update: This piece of software is no longer available as I have turned it off due to lack of interest. The article below used to contain a number of links which I have removed. The content below remains only for archival purposes.
As far as FreeBSD is concerned, Graviton 3 is mostly just a faster version of the Graviton 2: Most things "just work", and the things which don't work on Graviton 2 — hotplug devices and cleanly shutting down an instance via the EC2 API — also don't work on Graviton 3. (Want to help get these fixed? Sponsor my work on…
Introduction Deflate compression has been around for over 20 years. It's the format used inside most ZIP files. It's used by HTTP to redu...
Dash knows your context, your team, and your work, so your team can stay organized, easily find and share knowledge, and keep projects secure, all from one place.
In this blog post we discuss the details of two vulnerabilities we discovered in the Trusted Platform Module (TPM) 2.0 reference implementation code. These two vulnerabilities, an out-of-bounds write (CVE-2023-1017) and an out-of-bounds read (CVE-2023-1018), affected several TPM 2.0 software implementations (such as…
While I was out chasing computer history last week, the Linux 3.3 kernel was released. And a very interesting release it is, though not for its vaunted re-inclusion of certain Android kernel hacks. I think that modest move is being overblown in the press. No, Linux 3.3 appears to be the first OS to really
This is part one of a series “ Writing a GCC back end ”. The GCC back end is configured in gcc/config.host and the implementation is p...
Integers in programming languages have a valid range but arithmetic operations can result in values that exceed such ranges. For example, adding two large integers can result in an integer that cannot be represented in the integer type. We often refer to such error conditions as overflows. In a programming languages…
Link to: https://wormsandviruses.com/2022/07/a-burger-without-heinz/
Robert O'Callahan. Christian. Kiwi. Software guy. All content human-authored unless otherwise noted.
WASI P3 is almost here, bringing native async support to the WebAssembly System Interface (WASI) and Component Model. In this post, we’re looking to the next big milestone: a stable, formally specified Component Model 1.0.At February’s B...
I wish I knew if my math was correct...
When you invoke a function in an imperative programming language, you pass arguments to that function. But that function may also operate on global mutable state, meaning there are other factors in the operation of that function than merely the arguments you pass to it. To some extent this kind of contextual, implicit…
Thanks to recent work in Chrome and Emscripten, you can now use up to 4GB of memory in WebAssembly applications. That’s up from the previous limit of 2GB. It might seem odd that there was ever a limit - after all, no work was needed to allow people to use 512MB or 1GB of memory! - but it turns out that there are some…
When a critical Linux kernel privilege escalation was publicly disclosed, Cloudflare's security and engineering teams detected, investigated, and mitigated the threat across our global fleet, confirming zero customer impact and no malicious exploitation.