3 ms·
> if rust ever settles down I think it would be great for aerospace 178b and other standards for aircraft. Also cars :) I imagine the compiler situation would
by MaxBarraclough 6y ago
> if rust ever settles down I think it would be great for aerospace 178b and other standards for aircraft. Also cars :)
I imagine the compiler situation would need to change before this could become a possibility. I doubt off-the-shelf Rust/LLVM is appropriate for compiling life-and-death code.
I imagine it would also be necessary to strictly control memory management, using pools rather than doing the equivalent of malloc/free. It seems Rust has a crate for that: https://docs.rs/heapless/0.5.5/heapless/ https://docs.rs/heapless/0.5.5/heapless/
> I've only ever met one engineer who actually liked coding in Ada.
It certainly lacks many luxuries. For that matter, it also lacks basic examples. I tried to dabble with Ada recently, and pretty quickly ran into trouble (I was unable to figure out how to instantiate any of GNAT's 'bounded containers').
- gusthoff 6y agoWould you mind sharing which bounded container you tried to instantiate and what the problem was?
- MaxBarraclough 6y agoI wasn't able to instantiate any of them, I couldn't figure out the proper syntax. There are no examples anywhere that show how to used them.
- gusthoff 6y agoIs this the kind of example you were looking for? with Ada.Text_IO; use Ada.Text_IO; with Ada.Containers.Bounded_Vectors; procedure Main is package BV_Integer is new Ada.Containers.Bounded_Vectors (Index_Type => Positive, Element_Type => Integer); use BV_Integer; Vec_Max : constant := 10; Vec : Vector (Vec_Max); begin Put_Line ("Appending some numbers..."); for I in 1 .. Vec_Max loop Vec.Append (Integer (I)); end loop; Put_Line ("Appending another number..."); Vec.Append (Vec_Max + 1); -- this raises an exception. end Main;
- MaxBarraclough 6y agoYes, thanks. Perhaps I was just missing Vec : Vector (Vec_Max);. I'll give this a go on GNAT some time.