On the benefits of using C as a language back end
github.com
github.com
Nobody forces you to implement assignments in the guest language as literal C assignments. If a guest language assignment statement compiles to something like "assign(&target, value)", then your assign function can do whatever it takes to track roots.
https://github.com/vlang/v/issues/2838 "Compiler crash during filtering's assignment operation on a mutable array"
https://github.com/vlang/v/issues/2565 "Compiler crash when using inexistent struct type in const block"
(One of these is from two days after the author wrote the above statement, but the other isn't.) There are other reports where the V compiler seems to generate C code that does not compile, or only with very nasty type warnings, for example: https://github.com/vlang/v/issues/2960 https://github.com/vlang/v/issues/2981