3 ms·
> Rust, one example of a memory safe programming language, has the three requisite properties above, but has not yet been proven in space systems. Sure, but w
by jvanderbot 3y ago
> Rust, one example of a memory safe programming language, has the three requisite properties above, but has not yet been proven in space systems.
Sure, but we did run Rust scheduling algorithms on the ISS when I was at JPL. It was a proof of concept, not an actual system, though.
- ahmedfromtunis 3y agoBefore reading the report, I never thought about languages needing to be proven for space. I thought this was only a thing for hardware components.
- steveklabnik 3y agoIn the sense they're talking about, they don't mean "formal proof," they mean "existence proof." It's not like it's a mature choice in the space, is what they mean.
- AceJohnny2 3y agoYeah, MISRA C [1] is a set of rules for writing C for safety-critical environments, originally targeting the automotive environment. If you're used to vanilla C, it can feel very constraining! In the Rust world, there's the Ferrocene project [2], which aims to provide a similar kind of safety-critical level of functionality. [1] https://en.wikipedia.org/wiki/MISRA_C https://en.wikipedia.org/wiki/MISRA_C [2] https://ferrous-systems.com/ferrocene/ https://ferrous-systems.com/ferrocene/
- steveklabnik 3y agoMISRA and Ferrocene are not really related other than both being vaguely in the safety space. MISRA is, as you say, a set of rules for writing C code, that restrict what you can do. Ferrocene is a qualified compiler. You write any normal Rust code you want: it's still the upstream Rust compiler. There are no restrictions. Incidentally, someone has compared what MISRA does to what Rust does: https://github.com/PolySync/misra-rust/blob/master/MISRA-Rules.md https://github.com/PolySync/misra-rust/blob/master/MISRA-Rul... Given that they can't repeat the MISRA stuff there, it's a bit disjoined, but it sure is interesting!
- AceJohnny2 3y agoThanks for the clarification Steve!
- TaylorAlexander 3y agoMy friend at SpaceX told me (rough memory from a chat) that they almost made the flight control software for Starship in Rust but at the last minute someone got cold feet and they went with C or C++.
- appplication 3y agoIt’s probs my the right call in all honesty. Rust is nest but it is very new still. You don’t need that in space critical systems.
- FreakLegion 3y ago> we did run Rust scheduling algorithms on the ISS Actually on the ISS? It's been a while but if I remember right e.g. SACE (EUROPA) planning for the solar arrays happens down here. Transmission time is a fraction of a second, so there was no compelling reason to do the planning station-side. I'm only familiar with that use case, though.
- jvanderbot 3y agoYep right up there. It was a demo of some hardware/software combos for scheduling large numbers of things in situ.