~/talk

Keynote: Teaching an Old Dog New Tricks

Talkat ACCU 2025 · 2025-04-01..04-04· [c-and-cpp]
slides:none on file

Implements a ZX Spectrum emulator twice: one in familiar C++11/14 style and one using constexpr/meta/templates plus concepts, modules and coroutines. First build reaches ~300 MHz emulation; the modern rewrite runs ~650 MHz (peaks near 1 GHz with tricks) and passes a community Z80 test suite and Catch2 unit tests. Modules simplify interfaces but modules hurt parallel builds (incremental builds jump from ~10s to ~30s, clean from ~1m to ~2m). Coroutine approach stalls because coroutines caused allocations that defeat per-cycle performance; WebAssembly port runs ~100 MHz (spectrum.zenia.org).

AI-written summary · about

  1. 0:00Introduction
  2. 1:18The emulator challenge
  3. 2:34Understanding the Z80
  4. 5:52Memory mapping
  5. 11:32Initial emulation implementation
  6. 14:46Decoding instructions
  7. 17:55Arithmetic Logic Unit
  8. 19:19Debugging the emulator
  9. 21:14Video and screen output
  10. 22:33First emulator demo
  11. 25:28Testing and validation
  12. 27:07Performance analysis
  13. 29:05Modern C++ implementation
  14. 32:25Compile-time dispatching
  15. 35:02Instruction decoding logic
  16. 37:05Templated opcode handling
  17. 40:09Instruction table generation
  18. 44:37Optimized execution
  19. 46:55Performance metrics
  20. 50:23C++ modules experience
  21. 52:03Module build challenges
  22. 55:55Modules conclusion
  23. 59:09Coroutine implementation
  24. 1:07:36Web assembly porting
  25. 1:10:05Web demo and debugging
  26. 1:12:13AI assisted development
  27. 1:15:20Conclusion
~/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.