Last modified on 2025-05-26
Happy as is
About a third of the people I interviewed did not desire anything new from the language. They expressed the sentiment that they have suffered enough linking issues with C/C++ and don’t want to go back.Incremental builds
Does not require stability, as the pieces can be recompiled at any point. The split can be implicit, but globals need to be done properly.Detach dependency
Sometimes, a dependency of a program should not be included in the final binary. Vendor libraries and LGPL libraries (Bevy). Need a guarantee that it is not included in the final binary.Divide releases
Split out libraries from the main program. Same globals problem as above. Requires being able to be explicit about the library graph. Need ecosystem consensus on crate features. Most (but not all) systems can rebuild the whole world if needed. Need to have some notion of when a rebuild is needed. Multiple desires for this: * Linux package managers * Rustup * Rust-for-linux * Incremental Docker deploysFeature selection
- Android versions
- Bevy vendor libraries
RWPI ROPI
Tock and HubrisUnloading
Bevy
Want to have type information in order to poke the game from the editor. Cannot sacrifice performance, can sacrifice soundness. Want to load/unload mods, with possibly different compiler versions. Leaking memory is acceptable.Linux kernel modules
Soundness and performance are king. For unloading: need to guarantee no use-after-free. Need some guarantee from the compiler that'static does not escape, or ideally have a 'crate notion.