3 ms·
> These devices include (but are not limited to) wifi access points, routers, home automation devices, data loggers, IP video cameras, smart TVs, set top boxes,
by pizza234 3y ago
> These devices include (but are not limited to) wifi access points, routers, home automation devices, data loggers, IP video cameras, smart TVs, set top boxes, and streaming devices
Access points/routers/smart TVs/set top boxes are typically be based on ARM/Linux/Android, and should be supported.
- yjftsjthsd-h 3y agohttps://doc.rust-lang.org/nightly/rustc/platform-support.html https://doc.rust-lang.org/nightly/rustc/platform-support.htm... seems to say that only aarch64 Linux and assorted x86 variants are tier 1; everything else is tier 2 (it compiles but isn't tested to actually work) at best
- moltonel3x 3y agoPeople often point this out, silently implying that Rust is not really supported/usable on the lower tiers and that therefore those platform should stick to C. But that's ignoring that the situation is the same with gcc/clang: niche platforms get much less testing, and very niche ones might have bitrotted without anyone noticing. Gcc doesn't publish or adheres to a tiered platform list, but if it was using Rustc's definition it would be at most tier 2 (because tier 1 distributes official binaries, and prevents any tier1-breaking changes from being merged).
- yjftsjthsd-h 3y agoIf I'm using a device on one of the lower tiers, it's fair to assume that the C compiler for it has been exercised quite a lot, much more than the shiny new rust compiler that I'm introducing that I have no reason to think anybody else has ever used on this platform.
- callalex 3y agoCurl could be assumed to be one of the most well-exercised code bases in the world, and yet there are still bugs.
- ammar2 3y agoThere actually isn't that much work to adding basic support for a new platform target for Rust. You're moreso banking on LLVM's ability to target it, which, given clang gives you that C compiler maturity you're after.
- moltonel3x 3y agoWhy would you think that nobody has ever used Rust there ? Somebody has obviously put in the work to support that platform, rustc doesn't just blindly inherits the list of target triples from llvm. While it's safe to assume that C gets a decent amount of use on every platform, you can't expect all platforms to be as well-supported as the major ones. Undoubtedly, some of those platforms would be listed as low-tier if the C compilers cared to maintain a platform tier list. But a platform being low-tier doesn't mean you shouldn't use that compiler there. As for trusting Rust or C on niche platforms, C is so full of UB, platform-specific choices, and vendor extensions, that it's hard to ever fully know how well this or that project will work. Rust is much less surprising, if it works at all I expect it to fully work. I'd definitely pick Rust on niche platforms if I have the choice.
- pjmlp 3y agoLikewise for C++, with standard library types having support for bounds checking, no need to wait for Rust. While not as safe as Rust, it is definitly much safer than plain C.
- pjmlp 3y agoAlso, GCC also has support for Go, D, Ada, Modula-2, it isn't as if the GCC side isn't without options for safe systems programming. And in any case, C++ is always a better option than C regarding safety, when nothing else is available.
- moltonel3x 3y agoD, Ada, and Modula don't have enough traction. Go's runtime can be a showstopper, especially for multi-language projects. C++ may be better than C, but many people feel that Rust is even better. Rust is already available in almost all scenarios, there's no need to wait for it.
- pjmlp 3y agoSo now we moved from not having alternatives, to alternatives exist but...