- Notifications
You must be signed in to change notification settings - Fork0
A safe, concurrent, practical language.
License
Apache-2.0, MIT licenses found
Licenses found
LionOps/rust
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This is the main source code repository forRust. It contains the compiler,standard library, and documentation.
Read"Installing Rust" fromThe Book.
Make sure you have installed the dependencies:
g++
4.7 or later orclang++
3.xpython
2.7 (but not 3.x)- GNU
make
3.81 or later cmake
2.8.8 or latercurl
git
Clone thesource with
git
:$ git clone https://github.com/rust-lang/rust.git$cd rust
Build and install:
$ ./configure$ make&& make install
Note: You may need to use
sudo make install
if you do notnormally have permission to modify the destination directory. Theinstall locations can be adjusted by passing a--prefix
argumenttoconfigure
. 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, andrustdoc
, theAPI-documentation tool. This install does not includeCargo,Rust's package manager, which you may also want to build.
There are two prominent ABIs in use on Windows: the native (MSVC) ABI used byVisual Studio, and the GNU ABI used by the GCC toolchain. Which version of Rustyou need depends largely on what C/C++ libraries you want to interoperate with:for interop with software produced by Visual Studio use the MSVC build of Rust;for interop with GNU software built using the MinGW/MSYS2 toolchain use the GNUbuild.
MSYS2 can be used to easily build Rust on Windows:
Grab the latestMSYS2 installer and go through the installer.
Run
mingw32_shell.bat
ormingw64_shell.bat
from wherever you installedMSYS2 (i.e.C:\msys64
), depending on whether you want 32-bit or 64-bitRust. (As of the latest version of MSYS2 you have to runmsys2_shell.cmd -mingw32
ormsys2_shell.cmd -mingw64
from the command line instead)From this terminal, install the required tools:
# Update package mirrors (may be needed if you have a fresh install of MSYS2)$ pacman -Sy pacman-mirrors# Install build tools needed for Rust. If you're building a 32-bit compiler,# then replace "x86_64" below with "i686". If you've already got git, python,# or CMake installed and in PATH you can remove them from this list. Note# that it is important that the `python2` and `cmake` packages **not** used.# The build has historically been known to fail with these packages.$ pacman -S git \ make \ diffutils \ mingw-w64-x86_64-python2 \ mingw-w64-x86_64-cmake \ mingw-w64-x86_64-gcc
Navigate to Rust's source code (or clone it), then configure and build it:
$ ./configure$ make&& make install
MSVC builds of Rust additionally require an installation of Visual Studio 2013(or later) sorustc
can use its linker. Make sure to check the “C++ tools”option.
With these dependencies installed, the build takes two steps:
$ ./configure$ make&& make install
The old build system, based on makefiles, is currently being rewritten into aRust-based build system called rustbuild. This can be used to bootstrap thecompiler on MSVC without needing to install MSYS or MinGW. All you need arePython 2,CMake, andGit in your PATH (make sure you do not use theones from MSYS if you have it installed). You'll also need Visual Studio 2013 ornewer with the C++ tools. Then all you need to do is to kick off rustbuild.
python .\src\bootstrap\bootstrap.py
Currently rustbuild only works with some known versions of Visual Studio. If youhave a more recent version installed that a part of rustbuild doesn't understandthen you may need to force rustbuild to use an older version. This can be doneby manually calling the appropriate vcvars file before running the bootstrap.
CALL "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\vcvars64.bat"python .\src\bootstrap\bootstrap.py
If you’d like to build the documentation, it’s almost the same:
$ ./configure$ make docs
Building the documentation requires building the compiler, so the abovedetails will apply. Once you have the compiler built, you can
$ make docs NO_REBUILD=1
To make sure you don’t re-build the compiler because you made a changeto some documentation.
The generated documentation will appear in a top-leveldoc
directory,created by themake
rule.
Since the Rust compiler is written in Rust, it must be built by aprecompiled "snapshot" version of itself (made in an earlier state ofdevelopment). As such, source builds require a connection to the Internet, tofetch snapshots, and an OS that can execute the available snapshot binaries.
Snapshot binaries are currently built and tested on several platforms:
Platform \ Architecture | x86 | x86_64 |
---|---|---|
Windows (7, 8, Server 2008 R2) | ✓ | ✓ |
Linux (2.6.18 or later) | ✓ | ✓ |
OSX (10.7 Lion or later) | ✓ | ✓ |
You may find that other platforms work, but these are our officiallysupported build environments that are most likely to work.
Rust currently needs between 600MiB and 1.5GiB to build, depending on platform.If it hits swap, it will take a very long time to build.
There is more advice about hacking on Rust inCONTRIBUTING.md.
The Rust community congregates in a few places:
- Stack Overflow - Direct questions about using the language.
- users.rust-lang.org - General discussion and broader questions.
- /r/rust - News and general discussion.
To contribute to Rust, please seeCONTRIBUTING.
Rust has anIRC culture and most real-time collaboration happens in avariety of channels on Mozilla's IRC network, irc.mozilla.org. Themost popular channel is #rust, a venue for general discussion aboutRust. And a good place to ask for help would be #rust-beginners.
Rust is primarily distributed under the terms of both the MIT licenseand the Apache License (Version 2.0), with portions covered by variousBSD-like licenses.
SeeLICENSE-APACHE,LICENSE-MIT, andCOPYRIGHT for details.
About
A safe, concurrent, practical language.
Resources
License
Apache-2.0, MIT licenses found
Licenses found
Stars
Watchers
Forks
Packages0
Languages
- Rust94.1%
- C1.6%
- Makefile1.3%
- Shell1.1%
- Python0.7%
- Yacc0.3%
- Other0.9%