There's an asm! macro: http://static.rust-lang.org/doc/0.10/guide-unsafe.html#inlin...
> Can you align memory in rust?
I think that's an open problem for now, e.g. https://github.com/mozilla/rust/issues/4578
Does Rust allow using memory allocated by specific external allocators? i.e. libnuma or something?
Er… yes? Did I say it was unimportant anywhere? (also please note that I'm not a Rust developer)
> Does Rust allow using memory allocated by specific external allocators? i.e. libnuma or something?
I'm not quite sure what you're asking
* if you're asking if it's possible to use arbitrary memory returned by a third party? Then yes.
* if you're asking whether user-defined allocators or boxes are supported and you can ask the runtime to put its stuff in memory you get from e.g. a bundled jemalloc, then that's planned but not in I believe: https://github.com/mozilla/rust/issues/12038
No, but that link seemed to indicate it wasn't being planned for the first release and pcwalton seems to think it's possible to get Rust programs to run as fast as C++ programs in most cases.
(The speed of a language isn't determined by the speed of it's "first release".)
There is certainly a set of performance-critical problems where making optimal use of vector instructions is essential. It does seem that Rust is unlikely to be competitive for those today. But i think it's a minority of all problems.
It uses the LLVM support.
> How do you do ASM in Rust?
With the asm! macro.
> Can you align memory in rust?
Yes. Write an allocator that does this and use it. The language doesn't have an allocator "built-in" and has full support for custom allocators.
What do you mean by this? 1. Any scaler code might get vectorised by the LLVM if you're luckly.
or 2. You can write the instrinsics yourself in inline code, and the compiler will (almost) obey them verbatim?
In my experience, LLVM's vectorisation is behind GCC and quite a way behind ICC...
How do you do ASM in Rust?
Can you align memory in rust?