4 ms·
The places that want to build from source are the creators of embedded devices that use curl. These devices include (but are not limited to) wifi access points,
by jdblair 3y ago
The places that want to build from source are the creators of embedded devices that use curl. 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. There are a lot of these devices, and there are more all the time.
Even if the engineering teams do not build every dependency every time they build firmware (like busybox), they will at some point build all of the components of their system themselves (as supported by yocto).
- dezgeg 3y agoAnybody using the standard embedded build solutions like Buildroot or Yocto will get Rust support without doing anything. It's already there and implemented.
- pmontra 3y agoThat makes sense. It was not clear in the context of the post I replied to.
- jdblair 3y agoYeah, I admit that maybe this isn't "most places," since there are almost certainly more shops running various versions of Linux servers in production than there are embedded Linux development teams. (edited to fix typo)
- 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.