commit | 0682ad0eb9a6b268498a81b2e16a40544e44f0fa | [log] [tgz] |
---|---|---|
author | Niko Matsakis <[email protected]> | Thu Jan 10 18:59:58 2013 |
committer | Niko Matsakis <[email protected]> | Thu Jan 31 20:09:00 2013 |
tree | 694819bae28cd319401c121afa4daa00adcbdde2 | |
parent | 42b462e0765f02fd7bb0f2613240ae2489a47fee [diff] |
Finalize moves-based-on-type implementation. Changes: - Refactor move mode computation - Removes move mode arguments, unary move, capture clauses (though they still parse for backwards compatibility) - Simplify how moves are handled in trans - Fix a number of illegal copies that cropped up - Workaround for bug involving def-ids in params (see details below) Future work (I'll open bugs for these...): - Improve error messages for moves that are due to bindings - Add support for moving owned content like a.b.c to borrow check, test in trans (but I think it'll "just work") - Proper fix for def-ids in params Def ids in params: Move captures into a map instead of recomputing. This is a workaround for a larger bug having to do with the def-ids associated with ty_params, which are not always properly preserved when inlining. I am not sure of my preferred fix for the larger bug yet. This current fix removes the only code in trans that I know of which relies on ty_param def-ids, but feels fragile.
This is a compiler for Rust, including standard libraries, tools and documentation.
The Rust compiler currently must be built from a tarball, unless you are on Windows, in which case using the installer is recommended.
Since the Rust compiler is written in Rust, it must be built by a precompiled “snapshot” version of itself (made in an earlier state of development). As such, source builds require a connection to the Internet, to fetch snapshots, and an OS that can execute the available snapshot binaries.
Snapshot binaries are currently built and tested on several platforms:
You may find that other platforms work, but these are our “tier 1” supported build environments that are most likely to work.
Note: Windows users should read the detailed getting started notes on the wiki. Even when using the binary installer the Windows build requires a MinGW installation, the precise details of which are not discussed here.
To build from source you will also need the following prerequisite packages:
Assuming you're on a relatively modern *nix system and have met the prerequisites, something along these lines should work.
$ wget http://static.rust-lang.org/dist/rust-0.5.tar.gz $ tar -xzf rust-0.5.tar.gz $ cd rust-0.5 $ ./configure $ make && make install
You may need to use sudo make install
if you do not normally have permission to modify the destination directory. The install locations can be adjusted by passing a --prefix
argument to configure
. Various other options are also supported, pass --help
for more information on them.
When complete, make install
will place several programs into /usr/local/bin
: rustc
, the Rust compiler; rustdoc
, the API-documentation tool, and cargo
, the Rust package manager.
Rust is primarily distributed under the terms of both the MIT license and the Apache License (Version 2.0), with portions covered by various BSD-like licenses.
See LICENSE-APACHE, LICENSE-MIT, and COPYRIGHT for details.
The tutorial is a good starting point.