A hands-on introduction to Solod (So) — a subset of Go that translates to C.
This repo contains small examples that show individual features, as well as larger apps that demonstrate how everything works together.
Language:
Hello world • Values • Variables • Constants • For • If/else • Switch • Arrays • Slices • Maps • Functions • Multiple returns • Variadic functions • For-range • Pointers • Strings and runes • Structs • Methods • Interfaces • Enums • Errors • Panic • Defer
Standard library:
Memory • Slices • Maps • C interop • Strings • Time • Random numbers • Number parsing • Reading files • Writing files • Scanning • File paths • Directories • Temp files • Command line • Env variables • Logging
Coreutils: cat, cut, head, sort, uniq, wc
Count word frequencies by serge-hulne
FreeSWITCH module by seven1240
Key-value store with SQLite interop
To run a specific example locally, use the so run command. For example:
so run lang/05-for
so run apps/head -n 4 data/jenny.txt
You'll need to have a C compiler installed and available as cc, or you can set a custom compiler by using the CC environment variable.
To see the generated C code, use the so translate command. For example:
so translate -o lang/05-for/generated lang/05-for
Partially based on Go by Example by Mark McGranaghan, licensed under CC BY 3.0.