~/talk

MicroHs, a tiny Haskell Compiler

Talkat ZuriHac 2025 · 2025-06-07..06-09· [haskell, compilers-and-language-design]
slides:none on file

MicroHs is a tiny Haskell compiler that translates Haskell to Turner-style combinators, emits a C byte array, then uses a C compiler to produce a compact runtime-linked executable. It produces a ~300 KB binary (vs ~37 MB when built with GHC), recompiles itself in ~8–11s, and measures ~3 ns per combinator reduction. It supports cross-compilation and runs on microcontrollers (Morse demo), serializes cached graphs for fast incremental builds.

AI-written summary · about

  1. 0:00· Introducing Lennart Augustsson
  2. 1:50· What is microHs? A small Haskell compiler
  3. 3:22· Live installation demo
  4. 5:14· Interactive mode and math with complex numbers
  5. 6:37· Compiling and running Haskell programs
  6. 8:10· Comparing binary sizes: microHs vs. GHC
  7. 10:13· Cross-compilation & WebAssembly support
  8. 14:02· Why build another Haskell compiler?
  9. 16:12· Combinator-based compilation (Turner-style)
  10. 17:02· Running on bare metal and microcontrollers
  11. 19:54· microHs vs. GHC: Speed and binary size
  12. 21:16· Implemented language extensions
  13. 23:22· Limitations: No Template Haskell, some concurrency
  14. 24:00· microCabal: Building packages without full Cabal
  15. 26:00· Compiler architecture overview
  16. 27:48· Serialization and caching
  17. 30:00· Church & Scott encoding of data types
  18. 33:15· Overview of SKI combinators
  19. 36:02· Optimization rules and combinator reduction
  20. 38:10· Self-optimizing properties of combinators
  21. 40:14· Specialization and dictionary elimination
  22. 44:23· The C runtime and performance: ~3ns per reduction
  23. 46:22· Garbage collection: bitmap-based strategy
  24. 49:28· Compilation statistics: combinators, GC, runtime
  25. 51:19· Serialization formats and portability
  26. 53:28· Running microHs on microcontrollers (Morse demo)
  27. 54:10· Community contributions & thanks
  28. 55:26· Audience Q&A: Hardware execution, performance, IO, etc.
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.