On 01/20/2018 01:16 PM, Dominique Leuenberger / DimStar wrote:
- librsvg 2.42.0: rewritten in Rust
This is actually a huge change as librsvg is a core library with a large number of reverse dependencies now partially written in a programming language with limited architecture support.
Please note that Rust upstream still considers only x86_64/_32 to be tier 1 targets, all other architectures are merely considered tier 2 or less which means that the Rust compiler is not guaranteed to produce working code, meaning that one update of the Rust compiler or librsvg may result in librsvg and potentially the many packages depending on it to stop working.
Furthermore, this change limits the bootstrappability of openSUSE to the architectures supported by the Rust compiler. If, for example, the community would decide to support RISC-V, it would not be possible as the Rust compiler doesn't support that particular architecture at the moment although I have heard that there are ongoing efforts.
Finally, one problem with Rust that I ran into when working on the Rust compiler code itself is the high volatility of the language and the code. Things that used to build fine with Rust 1.19 would break with 1.20 and so on. From a distribution maintainer's point of view, this can be very tedious and annoying.
Overall, I think the move to memory-safe languages is generally a good idea. However, I'm still a bit worried with the move to Rust as I think the language isn't yet as stable as it should be for writing core libraries in it.