Skip to content
HN On Hacker News ↗

Solod: Go can be a better C

▲ 209 points • 175 comments • by koeng • 4mo ago • HN discussion ↗

Pangram verdict · v3.3

We believe that this document is fully human-written

9 %

AI likelihood · overall

Human
100% human-written 0% AI-generated
SEGMENTS · HUMAN 2 of 2
SEGMENTS · AI 0 of 2
WORD COUNT 351
PEAK AI % 17% · §2
Analyzed
Jul 16
backend: pangram/v3.3
Segments scanned
2 windows
avg 176 words each
Distribution
100 / 0%
human / AI fraction
Verdict
Human
Pangram v3.3

Article text · 351 words · 2 segments analyzed

Human AI-generated
§1 Human · 6%

Solod (So) is a strict subset of Go that translates to regular C.

Highlights Go in, C out. You write regular Go code and get readable C11 as output. Zero runtime. No garbage collection, no reference counting, no hidden allocations. Rich standard library. Use familiar types and functions ported from Go's stdlib. Native C interop. Call C from So and So from C — no CGO, no overhead. Go tooling works out of the box. Syntax highlighting, LSP, linting and "go test". So supports structs, methods, interfaces, slices, maps, multiple returns, and defer. Everything is stack-allocated by default; heap is opt-in through the standard library. There is limited support for generics, and concurrency is provided by the standard library instead of being built into the language. So is for Go developers who want systems-level control without learning a new language. And for C programmers who like Go's safety, structure, and tooling.

Playground Here's some Go code in a file main.go. Click Run to execute it, or Translate to see the generated C code (main.h + main.c).

package main

import "solod.dev/so/time"

type Person struct { Name string Age int Nums [3]int }

func (p *Person) Sleep() int { p.Age += 1 return p.Age }

func main() { p := Person{Name: "Alice", Age: 30} p.Sleep() println(p.Name, "is now", p.Age, "years old.")

p.Nums[0] = 42 println("1st lucky number is", p.Nums[0])

year := time.Now().Year() println("The year is", year) }

Getting started Even though So isn't ready for production yet, I encourage you to try it out on a hobby project or just keep an eye on it if you like the concept. Installation and usage to work with So locally.

§2 Human · 17%

Language and standard library guides for a quick overview. So by example for a hands-on introduction. Source code to see the internals or contribute.

Current status  v0.3 in progress As of July 2026, So is in active development. The latest release is 0.2, which adds support for networking, WebAssembly, and freestanding mode. The next release, 0.3, will add concurrency support. If you have any questions, feel free to reach out on GitHub. 🧑💻 Anton Zhiyanov