Lz_xor
If LZ compression is compilation , what other instructions are useful to add? I've spent the last several years, off and on, trying to figur...
If LZ compression is compilation , what other instructions are useful to add? I've spent the last several years, off and on, trying to figur...
BeOS browser : TLS apocalypse Won't keep it off line. (How do you pronounce BeOS ?) This is a real 133MHz BeBox running otherwise s...
In this post I explain a little about how to use Java’s Vector APIs, attempt to explain how they turn out fast, and then use them to implement a sorting algorithm 3x faster than Arrays.sort . I then explain some problems I found, and how I resolved them. Supporting code is published here .
I’m considered to be a server guy. I had access to some really awesome server machines. Still, when computers come up in discussions, we are almost exclusively talk about workstations. Even if servers are an important part of my life, that’s “just” work. I loved the SGI workstations I had access to during my…
All kinds of reasonable-sounding beliefs about undefined behavior are wrong. Let's go through them.
Modern processors have powerful vector instructions which allow you to load several values at once, and operate (in one instruction) on all these values. Similarly, they allow you to have vector constants. Thus if you wanted to add some integer (say 10001) to all integers in a large array, you might first load a…
The JWST must perform a bewildering array of tasks — unfurling panels, mirrors and more — how can engineers trust telescope’s reliability?
The Great Renaming FAQ
I’ve enjoyed writing software for 40+ years now. Lots of activities fall into that “writing software” basket, and here’s my favorite: When you have a body of code with a decent unit-test suite and you need to make it go faster. This part of the Quamina diary is a case study of making a piece of the library faster.
Is this feasible? Yes it is! OpenZFS on Linux compiled from sources for RISC-V, it will work with less than 250MB of RAM for a nearly fully filled 2TB zfs volume with 225.000 files! Even stressing the system and run in parallel (via Wifi): a…
I’m serious about shell startup speed. I use tmux to open and close tmux splits all day every day, so I need zsh to start quickly. I used to use frameworks like oh-my-zsh or prezto and while I was happy with the functionality they provided I wasn’t happy with their impact on my shell’s startup speed. So, what do we do…
While investigating the aftermath of a potential security breach, I came across a somewhat "odd" process looking like this:
I miss people. :-(
I experienced intermittent stuttering when my PC ran Linux and Windows. A mix of hardware, firmware, and driver issues created a difficult to diagnose problem.
I really wanted to make this article short … but I failed miserably. At least I tried to organize it well so one may get back to it after ‘some’ reading because its not a short le…
By now it should be (hopefully) widely known that the term “zero-cost abstractions” is a misnomer. Although, to be clear, it's more of an unfortunate name.
In software, it is a common problem to want to remove specific characters from a string. To make the problem precise, let us consider the removal of all ASCII control characters and spaces. In practice, it means the removal of all byte values smaller or equal than 32. I covered a related problem before, the … Continue…
FreeBSD had a security fluctuation in their implementation of ping(8) the other day. As someone who has done a lot of work on ping(8) in OpenBSD this tickled my interests.
Even talking about building a monolith today, is a bit taboo. It is all about microservices at the moment, and has been for a few years. But they aren’t a silver bullet…
QuestDB created a minor stir in the small but active world of analytics database benchmarking with this blog article: https://questdb.io/blog/2022/05/26/query-benchmark-questdb-versus-clickhouse-timescale. This is the money quote: “QuestDB is an order of magnitude faster than both TimescaleDB and ClickHouse in this…
I am on a number of different compiler mailing lists. One of those is the mailing list for the Tiny C Compiler . Imagine my surprise when a recent email mentioned our latest series and suggested trying a similar approach to improve the code generator in TCC. I was interested to see if there were any low-hanging fruit…
Who needs a jack-o-lantern when you've got a bright orange gas plasma display? This is a 1990 Solbourne Computer S3000 all-in-one workst...
As the popular saying goes, there are only two hard problems in computer science: caching, off-by-one errors, and getting a Rust job that isn’t cryptocurrency-related. Today, we’ll discuss caching!...
A journey in building an ARM CPU from scratch in a digital circuit simulator, and running Rust on it to interpret Scheme and serve Web pages.
When I first read Google’s RETRO paper, I was skeptical. Sure, RETRO models are 25x smaller than the competition, supposedly leading to HUGE savings in training and inference costs. But what about the new trillion token “retrieval database” they added to the architcture? Surely that must add back some computational…
When I wrote the introductory article for libjit , I aimed it at programmers who know what JITs are, at least to some extent. I did mention what a JIT is, but only very briefly. The purpose of this article is to provide a better introductory overview of JITing, with code samples that don't rely on any libraries.