6 ms·
I would not include Rust in that list, in my experience rustup and cargo are miles ahead of C/C++ when cross compiling.
by vvanders 5y ago
I would not include Rust in that list, in my experience rustup and cargo are miles ahead of C/C++ when cross compiling.
- steveklabnik 5y agoPersonally, I see it in three tiers: Rust improved upon those experiences, but I still wish someone would implement what Zig has in rustc.
- vvanders 5y agoYup, fully agreed Zig stands above others here. Cross compiling C/C++ is just a special kind of hell. Each target always has some sort of bespoke toolchain and build environment constraint that add so much unneeded complexity.
- pcwalton 5y agoI don't. We could approximate it by shipping all targets by default, but few really want that and the few who do can just install those targets with rustup.
- nicoburns 5y agoIs it really few who want that? Anybody developing server software on windows or mac and deploying on linux could use this. Anybody developing cross-platform client software could use it. I'd guess that a lot of Rust developers currently do development on their target platform, but that's because cross compiling is such a pain. If it were as easy as zig or go then things might well be differen.
- pcwalton 5y agoMy x86_64 Rust libraries directory is 86MB. `rustup target list | wc -l` spits out 84 for me. The math doesn't add up.
- nicoburns 5y agoIs rust cross-compilation really is straightforward as just installing the target triple and then it "just works" (including linking and C FFI compilation)? My understanding was that most people were using "cross" docker images for "cross-compilation", because setting up native actual cross-compilation was quite involved.
- burntsushi 5y agoNo, it isn't that easy. pcwalton is misrepresenting things here IMO. Yes, people, including myself, use 'cross' precisely because it isn't as easy as "just use rustup to install the desired target." 'cross' has a bunch of Docker images that set up the cross compilation toolchains, and those images represent a fair amount of domain knowledge that I don't have to tediously acquire to use it.
- steveklabnik 5y agoSure, like many things, I bet you could pick three or four and get 90% of the default coverage. That still helps 90% of the users. I also think you're really missing out on the "compile C code easily too" thing. That isn't very pleasant at all in Rust today. (Finally, one reason it’s so big is that we ship binaries. This ships source. std-aware cargo could really help here.)
- littlestymaar 5y ago> I also think you're really missing out on the "compile C code easily too" thing. That isn't very pleasant at all in Rust today. So much this. Cross compiling pure Rust code is really easy today but as soon as you have a C dependency in your dep tree, you're gonna have a bad time.
- deleted 5y ago[deleted]
- deleted 5y ago[deleted]