That’s a great, in-depth post. Another person messages me about getting Go to call SPARK Ada functions. Between the two, it seems Go is ready for or close to the capability to have important features done in safe, GC-less languages. Additionally, it might help my Brute-Force Assurance concept for rewriting code in equivalent form in several languages to leverage each’s safety analysis. In this scenario, SPARK would prove absence of almost every low-level error with Rust catching temporal or concurrency errors.
For those curious here is the post I wrote that nick is referring too (it was hastily written to show off as a PoC so sorry about that). Unfortunately my example does use cgo and thus all of it’s pitfalls, but this blog post clarifies some things I was bashing my head against when originally writing this to avoid cgo. I will definitely be taking this persons awesome write up to a similar place with SPARK and I will post a part 2.
I look forward to that. :)