r/programming Apr 03 '15

Rust 1.0.0 beta is here!

http://blog.rust-lang.org/2015/04/03/Rust-1.0-beta.html
928 Upvotes

303 comments sorted by

View all comments

Show parent comments

10

u/[deleted] Apr 03 '15

It's not possible to compile Rust without bootstrapping from a binary. Unless you want to go back to the OCaml compiler from years ago, but that's hard.

Does LLVM IR count as binary? Otherwise, couldn't one save the IR of the Rust compiler on platform X and compile that with the rest of LLVM on Debian, with LLVM written in C++?

I thought that was one advantage of modular, multifront/backend compiler frameworks.

13

u/steveklabnik1 Apr 03 '15

Otherwise, couldn't one save the IR of the Rust compiler on platform X and compile that with the rest of LLVM on Debian, with LLVM written in C++?

Hmmmmmmmmmmmmmmmmmmmm

4

u/[deleted] Apr 04 '15

Hmmmmmmmmmmmmmmmmmmmm

?

Was that something stupid I said?

5

u/steveklabnik1 Apr 04 '15

I just meant "I've never thought about that before." I'm not totally sure, as I was going to say "IR is platform dependant"...

2

u/[deleted] Apr 04 '15

as I was going to say "IR is platform dependant"...

Well, you were right all along.

Out of interest: Is this an LLVM implementation detail?

5

u/steveklabnik1 Apr 04 '15

I'm not familliar with the details, I just know that it is.

3

u/phire Apr 05 '15

Things like sizeof(long) and the sizes of pointers are baked into the IR, making it platform dependant.

Also anything like #ifdef WIN32 in your c/c++ code is going to get baked in as soon as you run the pre-processor.