Show HN: GDSL – 800 line kernel: Lisp subset in 500, C subset in 1300

FirTheMouse 62 points 16 comments March 15, 2026
firthemouse.github.io · View on Hacker News

Discussion Highlights (6 comments)

akkartik

Looks interesting. The next step may be to show some little fun examples built with it. Here's my similar project from a few years ago, in case you want to compare notes: https://github.com/akkartik/mu https://akkartik.name/akkartik-convivial-20200607.pdf

WalterGR

GitHub link: https://github.com/FirTheMouse/GDSL

xendo

I thought you needed 100k lines of code for a C compiler. https://www.anthropic.com/engineering/building-c-compiler

kaihong_deng

Really interesting writeup. What stood out to me most was the shift from the earlier node execution path to the streamed path. The benchmark gap between execute_r_nodes and execute_stream is huge, and the latter getting relatively close to the handwritten C++ baseline is the part I keep thinking about. After building this, where do you think most compiler complexity actually comes from? My impression from your post is that a lot of the “millions of lines” are not from the core syntax-to-execution path itself, but from language surface area, tooling, diagnostics, optimization passes, and long-tail ecosystem baggage.

ptspts

GDSL is written in C++ with use of STL, templates and lambdas, so it's 2600 lines of such C++ source code. There is no self-hosting: neither the LISP compiler nor the C compiler can compile itself. No operating system is implemented, the word kernel in the title means something else. FYI Here is a 700-line subset-of-C compiler which can compile itself: https://github.com/valdanylchuk/xcc700 . FYI The linker and the libc are not included.

QuadmasterXLII

where does it generate assembly assembly / llvm ir / machine code? I poked around and didn’t immediately spot this, or even which it targets.

Semantic search powered by Rivestack pgvector
3,471 stories · 32,344 chunks indexed