one thing I really want to see happen but I can’t totally justify working on is a Go to C compiler that just uses 1:1 threads for goroutines and a conservative GC.
Why would you want to make that happen? Not saying it’s necessarily a terrible idea, but I’m also not sure what the big use case is over Cgo or Nim or the like?
I have a project I’m working on that bootstraps from C but is written in go, so i think it might be a good bootstrap path. mainly. Nim also generates small binaries, which maybe would be cool for go.
You can do coroutines in c fairly easily, no need for threads.
yeah, but then you need a non blocking runtime instead of being able to just call C functions like go functions etc.
Given the memory constrained nature of micro-controllers, I’m curious how actually viable the -gc=dumb option would be for any kind of non-toy program?
Go does use an intermediate cpu-independend assembly language.
I am curious if TinyGo reads this to reduce maintenance burden, or do all the parsing from “raw go”.
You forgot about runtime.
The answer might be somewhere around there: https://tinygo.org/compiler-internals/differences-from-go/