3 ms·
I don't believe Apple has embraced Rust the same way Google has. Particularly their firmware is still very based on C.
by monocasa 3y ago
I don't believe Apple has embraced Rust the same way Google has. Particularly their firmware is still very based on C.
- dagmx 3y agoSpecifically a dialect called Firebloom (supposedly anyway) https://saaramar.github.io/iBoot_firebloom/ https://saaramar.github.io/iBoot_firebloom/
- mrpippy 3y agoPossible related to the ‘-fbounds-safety’ feature they’ve proposed for Clang https://discourse.llvm.org/t/rfc-enforcing-bounds-safety-in-c-fbounds-safety/70854 https://discourse.llvm.org/t/rfc-enforcing-bounds-safety-in-...
- jonpalmisc 3y agoFirebloom == `-fbounds-safety`
- jonpalmisc 3y agoFirebloom is more of a custom compiler/toolchain than a dialect of C—apart from annotations to relate pointer+length parameters, etc., it is still just C.
- jd3 3y agoReminds me of this blurb from djb's qmail security guarantee [0]: > I've mostly given up on the standard C library. Many of its facilities, particularly stdio, seem designed to encourage bugs. A big chunk of qmail is stolen from a basic C library that I've been developing for several years for a variety of applications. The stralloc concept and getln() make it very easy to avoid buffer overruns, memory leaks, and artificial line length limits. [0]: http://cr.yp.to/qmail/guarantee.html http://cr.yp.to/qmail/guarantee.html
- sigsev_251 3y agoI mean, the annotations are supposed to be simple C attributes wrapped in macros, so even them are just C
- jonpalmisc 3y agoThe other commenter mentioning Firebloom is correct that some firmware (iBoot family) has been using C w/ Firebloom extensions for a while. Parts of SEPOS also use Swift, which would make more sense as a non-C language than Rust, from Apple's perspective at least.