Rust 0.6's configure script claims Rust needs >=3.0svn.
(Search for "bad LLVM version" for this.)

In truth, Rust 0.6 includes inline assembly functionality
https://github.com/mozilla/rust/pull/5317
which needs llvm::InlineAsm::AsmDialect enum type.
This enum type was added to LLVM in September 2012.
http://llvm.org/viewvc/llvm-project?view=revision&revision=163231

Looking at http://llvm.org/releases/ only LLVM 3.2 provides this type,
so 3.0 and 3.1 can't be used.

LLVM is known to make no promise of API stability between versions,
so if Rust in the future is to support compilation with system LLVM
(which it doesn't at the moment), it should be wary of these problems.
Although some LLVM users try to suppot multiple versions of LLVM,
I am not sure whether Rust should do so.

If Rust is to support multiple versions of LLVM, we should learn from
Pure, which with some remarkable efforts, supports LLVM versions
2.5 thru 3.2. Look for "#if LLVMXY" preprocessors in the following file
for how this is done.
https://bitbucket.org/purelang/pure-lang/src/tip/pure/interpreter.cc
_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to