Compiling C++ with the Clang API
This post describes how to compile a single C++ source file to an object file with the Clang API. Here is the code. It behaves like a simplified clang executable that handles -c and -S…
The latest blog posts to take off on Hacker News. 375 posts.
This post describes how to compile a single C++ source file to an object file with the Clang API. Here is the code. It behaves like a simplified clang executable that handles -c and -S…
News post: Gleam v1.9.0 released
9 months ago, I took a gander at PG’s guide to Bel . If you haven’t read it, here’s the premise:
Karl Seguin's Blog - A mix of coding and creative writing
TL;DR ¶ Some of the wisdom contained in Josh Bloch’s Effective Java book is relevant to Go. panic and recover are best reserved for exceptional circumstances. Reliance on panic and recover can noticeably slow down execution, incurs heap allocations, and precludes inlining. Internal handling of failure cases via panic…
Introducing Python interpreter embedded in Elixir and a Fine way to write your NIFs.
My Python code was too slow, so I made it faster with Python. For some definition of “Python”.
I recently took some time to try Gleam, the type-safe language that runs on the Erlang virtual machine. For a couple of weeks, I used it to build a little feed aggregator. These are my notes.
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.
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…
Have you ever wondered how a compiler works, but you never found courage to find out? Then this series of articles is for you. I have never had the chance to look under the hood either, but one week-end I have decided to to write a translator from the esoteric programming language wend (short for week-end), which I…
Finally sitting down to learn Rust and how to write parsers.
I always told people memory is cheap, black magic is OK and efficiency doesn't matter, but I was wrong.
This is a personal pick of the most interesting projects, tools, libraries and articles that popped-up in Common Lisp land in the last two years.Newcomers might not realize how the Common Lisp ecosystem, though stable in many ways, actually evolves, sharpens, tries new solutions, proposes new tools, ships new…
I really love Rust. I’ve been using it as my language of choice for about ten years now. I believe that it is a remarkably well designed language, and that includes the parts that are often most criticized, most notably async.
It’s been nearly four years since I published Parsing Protobuf at 2+GB/s: HowI Learned To Love Tail Calls inC.In that article, I presented a technique I co-d...
Why is Rust being used to replace parts of the JavaScript web ecosystem like minification (Terser), transpilation (Babel), formatting (Prettier), bundling (webpack), linting (ESLint), and more?
[UPDATE: Feb 8 2025] my amazing colleague Max Shen noticed a sign mistake in my derivation of the partial derivative of the log-harmonic function below.
Go 1.24 brings generic type aliases, map performance improvements, FIPS 140 compliance and more.
A couple of years ago, we initiated the idea of creating a Kotlin Multiplatform IDE to help facilitate the development of KMP applications. We embarked on this venture, building on the Fleet platform,
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…
k is a family of concise, fast vector-oriented languages designed by Arthur Whitney . Calling k a “family” is deliberate; there is no single definitive k, but instead a sequence of slightly incompatible versions. If you decide to stick with k, you’ll see mentions of k4 , k5 etc. Exactly what those numbers mean aren’t…
Today I want to share a great story about why many NVIDIA products are now running formally verified SPARK code. This blog post is in part a teaser for…
A comparison of how well Rust and Ada prevent the most common memory-related software errors.
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…
wingolog: article: baffled by generational garbage collection