24 februari 2021
The AVR architecture does not natively support arbitrary bit shifts. Therefore, compilers will have to be creative to make shifts short and fast. This post explores how a compiler could emit such constant shifts inline.
24 september 2020
An explanation of how garbage collectors work including some pseudocode how a real GC could be implemented.
22 september 2020
How ESP32/ESP8266 support got added to TinyGo, how we got there, and the current status of support.
22 juni 2020
Quick note to get started with debugging AVR programs in a simulator
29 december 2019
What RGB really means, what sRGB and gamma are and how to correctly blend colors.
19 september 2019
How to configure DMA on the SAMD21, for example to use it with SPI.
17 juli 2019
The TinyGo playground simulates real hardware, including an e-paper display. How can it do such things? This post explains a bit about how the playground works to make this possible.
28 april 2019
A high-level overview of LLVM IR, showing how two simple Go functions can be translated to IR.
25 februari 2019
TinyGo uses LLVM coroutines to implement goroutines. This post explains what coroutines are and how they're used to implement goroutines.
8 december 2018
How TinyGo implements Go interfaces in a radically different way, avoiding most memory allocations and reducing code size.