I’m very sad that Rust is unable to use libjpeg and libpng with graceful error handling any more, due to blocking of unwinding through FFI.
These two popular libraries are specifically designed to be unwound, and unwinding through them worked perfectly well on x86 and arm (and probably every other platform, I just don’t have other machines to test). These C libraries have none of the UB problems discussed around unwinding of Rust or C++ through FFI.
libjpeg-turbo maintainer excluded possibility of changing libjpeg’s error handling to any non-unwinding mechanism, and there’s no Rust alternative of comparable speed and quality to libjpeg-turbo and MozJPEG.
Rust 1.33 effectively killed my
mozjpeg crate, and I have no idea what to do next.