News for hackers. Stuff that matters.
Re:Two Weeks of Rust by steveklabnik on Tuesday January 12, 2016 @12:37PM (#10888848)
A few things:

1. If an offline build does not work, that's a bug. This use case is one that we explicitly want and need, and do already support.

2. You are incorrect about Rust. Rust is written in Rust, not C++, and so building Rust involves downloading a binary of a previous Rust. That's what 'boostrapping' means.

Re:Two Weeks of Rust by vvanders on Tuesday January 12, 2016 @01:00PM (#10889044)
I thought that rustc was boostrapped from the old c based compiler(allowing you to build clean from source) multiple times(C -> Rust 0.x? -> Rust 1.0)?

From what I last saw of cargo there's not a clean path that lets you build from source that doesn't involve pulling binaries(and is really painful if you want to use cargo on a non-binary platform like RPi.

Re:Two Weeks of Rust by Gankro on Tuesday January 12, 2016 @01:27PM (#10889264)
There's never been a C-based compiler. Rust started out as OCaml. A true bootstrap would take weeks of non-stop compiling. You'd end up compiling rustc itself about 900 times, ignoring all the different LLVM builds, I think. Rust bootstraps from a binary snapshot of itself, and so you would have to work through the list of every snapshot ever (about 300, but you need to build rustc 3 times for each snapshot to properly bootstrap that copy). The snapshots are listed here: https://github.com/rust-lang/rust/blob/master/src/snapshots....

In the past the snapshots were taken almost weekly as massive language churn dictated. Now they're quite rare.

Re:Two Weeks of Rust by steveklabnik on Tuesday January 12, 2016 @01:53PM (#10889484)
The situation with Cargo would be exactly the same: before Cargo existed, it couldn't use Cargo, because Cargo didn't exist. You can boostrap your own Cargo from that time period if you'd like, but that doesn't mean it's easy. But it's no different than rustc; where you can bootstrap your own snapshots from the OCaml compiler.
Re:Two Weeks of Rust by throwaway999888 on Tuesday January 12, 2016 @05:11PM (#10890806)
> I thought that rustc was boostrapped from the old c based compiler(allowing you to build clean from source)

What's with all the baseless assumptions of the initial Rust compiler being written in either C or C++ in this thread?

Contrary to apparently popular belief, C and C++ aren't some primordial lifeform compiler language which all language implementations have to be initially written in. Believe it or not, you can write a compiler in any (general purpose) programming language! Amazing, I know.

Re:Two Weeks of Rust by dozzie on Tuesday January 12, 2016 @01:17PM (#10889194)
1. Funny. Last time I built Cargo it insisted on downloading Cargo, and I've never seen even a hint that it can build itself without that. I needed to download dependencies manually, compile them manually, and compile Cargo's code manually as well.

> 2. You are incorrect about Rust. Rust is written in Rust, not C++,

And how that renders me incorrect? GHC is written in Haskell, but you can build it with C compiler (and then recompile again, now with Haskell compiler).

But indeed I was wrong. I remembered incorrectly that I built Rust cleanly and without network activity. I actually downloaded sources and issued compilation command, without any regard for packaging, so it could do any stupid stuff like downloading things when compiling.

> and so building Rust involves downloading a binary of a previous Rust. That's what 'boostrapping' means.

No. "Bootstrapping" means building a compiler using a compiler when you don't have that compiler. As I said elsewhere, compare that to OCaml and GHC, which can be built without downloading OCaml or GHC, respectively.

Re:Two Weeks of Rust by steveklabnik on Tuesday January 12, 2016 @02:00PM (#10889537)
I don't think we're going to come to any sort of consensus here, so I'm going to drop off. Have a good day!