Hacker News new | ask | show | jobs
by monocasa 979 days ago
I don't believe Apple has embraced Rust the same way Google has. Particularly their firmware is still very based on C.
2 comments

Specifically a dialect called Firebloom (supposedly anyway)

https://saaramar.github.io/iBoot_firebloom/

Possible related to the ‘-fbounds-safety’ feature they’ve proposed for Clang

https://discourse.llvm.org/t/rfc-enforcing-bounds-safety-in-...

Firebloom == `-fbounds-safety`
Firebloom 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.
Reminds 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

I mean, the annotations are supposed to be simple C attributes wrapped in macros, so even them are just C
The 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.