Copy-and-Patch: A Copy-and-Patch Tutorial
If you can ctrl-c and ctrl-v, you can build a JIT.
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 375 posts.
If you can ctrl-c and ctrl-v, you can build a JIT.
This article provides a hands-on guide to integrating Rust and Java through the Java Native Interface (JNI).
Martin Uecker, 2025-08-10 I discuss the implementation of type and bounds safe generic containers in C. Previously, I discussed a span type , bounds checking using arrays . and a a vector type . This time, I will discuss maybe inspired by Haskell. This type can used to return a value that may not exist, e.g. because…
I wrote my first line of Rust in June 2015, a month after Rust 1.0 landed. Coming from C, Python, and JavaScript, I never looked back. Two Rust-based startups and 500k lines of Rust later, here are some reflections on the milestone.
Macros are required to do some very helpful things in Rust, but this isn't an article about any of those things.
I got it working with arrays and records, but couldn't make it work for regular objects.
Karl Seguin's Blog - A mix of coding and creative writing
Rocky Jaiswal. Christian developer living in Berlin. Blogs about programming & technology.
what does this mean and does it matter
Common Lisp has good packaging tools, but they're different. Here we explain the what and how.
I have a Computer Science degree. I attended a whole course of lectures on compilers (and have a certain fondness for “the red dragon book” as a result). However, I had never actually written a compiler from start to finish until a rainy day last weekend.
At AdaCore, we’re in the business of supporting people who develop high-integrity software, in particular for embedded systems. In terms of programming…
Why we still choose Ruby on Rails in 2025: Learn how Lago scales millions of API events with Rails, Go, and Rust, balancing developer speed, concurrency, and performance.
In this article, we will discuss zippers in the Clojure language. These are an unusual way to work with collections. Using a zipper, you can traverse a data structure arbitrarily and modify its content as well as search in it. A zipper is a powerful abstraction that pays off over time. However, it is not as…
Spoiler : it is also likely already the best BZip2 encoder for a given block size. See the green charts below. Note for subscribers: if you...
Static Single Assignment is a program representation where each “variable” (though this term can be misleading) is assigned exactly once. Mostly the variables aren’t variables at all, but instead names for values—for expressions. SSA is used a lot in compilers. See this lesson from Cornell for converting Bril to SSA…
Left & Mutual Recursion Mitigation
Learn how we use macros to make it less painful to use Zig structs in C++ (and vice versa)
std::flip is a little-known utility from the C++ standard library header <functional>: it is a higher-order function that accepts a Callable and returns an equivalent Callable with the order of its parameters reversed (or “flipped”).
C++ seems to finally converge with their contracts proposal, I decided to give it a try and come up with ideas how such a thing would look for C. This is in early stages, not a full proposal yet, a…
Karl Seguin's Blog - A mix of coding and creative writing
The first of a series of envisioned blog posts on lambda calculus, and Lisp. It’s unclear exactly where to start: there is a whole heap of interesting issues, both theoretical and in terms of concrete implementations, which tangle and interconnect. A particular application of lambda calculus is a very salient…
Zig is a general-purpose programming language and toolchain for maintaining robust , optimal , and reusable software.
The craft of programming is almost universally concerned with different types of data and operations/algorithms that act on this data [1] . Therefore, it's hardly surprising that designing abstractions for data types and operations has been on the mind of software engineers and programming-language designers since…
In 2024 we announced our fourth Ada/SPARK Crate Of The Year Awards. We see the Alire source package manager as a game changer for Ada/SPARK, so we want to…
First part of a series of articles about writing a .NET Garbage Collector in C# using NativeAOT. This part sets the expectations and setups the project, dealing with the first difficulties.
Quarto Academic Website Template adapted by Dr. Gang He
Null pointers look simple on the surface, and that’s why they’re so dangerous. As compiler optimizations, intuitive but incorrect simplifications, and platform-specific quirks have piled on, the odds of making a wrong assumption have increased, leading to the proliferation of bugs and vulnerabilities. This article…