Skip to content

Commit dee0246

Browse files
committed
---
yaml --- r: 272885 b: refs/heads/beta c: 8b7c3f2 h: refs/heads/master i: 272883: 92d5032
1 parent dfd0337 commit dee0246

File tree

1,629 files changed

+55957
-117697
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,629 files changed

+55957
-117697
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ refs/tags/0.9: 36870b185fc5f5486636d4515f0e22677493f225
2323
refs/tags/0.10: ac33f2b15782272ae348dbd7b14b8257b2148b5a
2424
refs/tags/0.11.0: e1247cb1d0d681be034adb4b558b5a0c0d5720f9
2525
refs/tags/0.12.0: f0c419429ef30723ceaf6b42f9b5a2aeb5d2e2d1
26-
refs/heads/beta: 24578e0fe555f267bef40528b8ac79bc7e898007
26+
refs/heads/beta: 8b7c3f20e83de20518abb879f7a0e41b6e93414f
2727
refs/tags/1.0.0-alpha: e42bd6d93a1d3433c486200587f8f9e12590a4d7
2828
refs/heads/tmp: e06d2ad9fcd5027bcaac5b08fc9aa39a49d0ecd3
2929
refs/tags/1.0.0-alpha.2: 4c705f6bc559886632d3871b04f58aab093bfa2f

branches/beta/.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
*.elc
1818
*.epub
1919
*.exe
20+
*.pdb
2021
*.fn
2122
*.html
2223
*.kdev4
@@ -93,3 +94,4 @@ tmp.*.rs
9394
version.md
9495
version.ml
9596
version.texi
97+
/target

branches/beta/.gitmodules

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,4 @@
1616
url = https://github.com/rust-lang/rust-installer.git
1717
[submodule "src/liblibc"]
1818
path = src/liblibc
19-
url = https://github.com/rust-lang-nursery/libc.git
19+
url = https://github.com/rust-lang/libc.git

branches/beta/.mailmap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ Gareth Daniel Smith <garethdanielsmith@gmail.com> Gareth Smith <garethdanielsmit
8282
Georges Dubus <georges.dubus@gmail.com> <georges.dubus@compiletoi.net>
8383
Graham Fawcett <graham.fawcett@gmail.com> Graham Fawcett <fawcett@uwindsor.ca>
8484
Graydon Hoare <graydon@pobox.com> Graydon Hoare <graydon@mozilla.com>
85-
Guillaume Gomez <guillaume1.gomez@gmail.com>
85+
Guillaume Gomez <guillaume1.gomez@gmail.com> Guillaume Gomez <ggomez@ggo.ifr.lan>
8686
Heather <heather@cynede.net> <Cynede@Gentoo.org>
8787
Heather <heather@cynede.net> <Heather@cynede.net>
8888
Herman J. Radtke III <herman@hermanradtke.com> Herman J. Radtke III <hermanradtke@gmail.com>

branches/beta/COMPILER_TESTS.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,3 +42,43 @@ whole, instead of just a few lines inside the test.
4242
* `ignore-test` always ignores the test
4343
* `ignore-lldb` and `ignore-gdb` will skip the debuginfo tests
4444
* `min-{gdb,lldb}-version`
45+
* `should-fail` indicates that the test should fail; used for "meta testing",
46+
where we test the compiletest program itself to check that it will generate
47+
errors in appropriate scenarios. This header is ignored for pretty-printer tests.
48+
49+
## Revisions
50+
51+
Certain classes of tests support "revisions" (as of the time of this
52+
writing, this includes run-pass, compile-fail, run-fail, and
53+
incremental, though incremental tests are somewhat
54+
different). Revisions allow a single test file to be used for multiple
55+
tests. This is done by adding a special header at the top of the file:
56+
57+
```
58+
// revisions: foo bar baz
59+
```
60+
61+
This will result in the test being compiled (and tested) three times,
62+
once with `--cfg foo`, once with `--cfg bar`, and once with `--cfg
63+
baz`. You can therefore use `#[cfg(foo)]` etc within the test to tweak
64+
each of these results.
65+
66+
You can also customize headers and expected error messages to a particular
67+
revision. To do this, add `[foo]` (or `bar`, `baz`, etc) after the `//`
68+
comment, like so:
69+
70+
```
71+
// A flag to pass in only for cfg `foo`:
72+
//[foo]compile-flags: -Z verbose
73+
74+
#[cfg(foo)]
75+
fn test_foo() {
76+
let x: usize = 32_u32; //[foo]~ ERROR mismatched types
77+
}
78+
```
79+
80+
Note that not all headers have meaning when customized too a revision.
81+
For example, the `ignore-test` header (and all "ignore" headers)
82+
currently only apply to the test as a whole, not to particular
83+
revisions. The only headers that are intended to really work when
84+
customized to a revision are error patterns and compiler flags.

branches/beta/CONTRIBUTING.md

Lines changed: 66 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ links to the major sections:
66

77
* [Feature Requests](#feature-requests)
88
* [Bug Reports](#bug-reports)
9+
* [The Build System](#the-build-system)
910
* [Pull Requests](#pull-requests)
1011
* [Writing Documentation](#writing-documentation)
1112
* [Issue Triage](#issue-triage)
@@ -77,6 +78,70 @@ to do this is to invoke `rustc` like this:
7778
$ RUST_BACKTRACE=1 rustc ...
7879
```
7980

81+
## The Build System
82+
83+
Rust's build system allows you to bootstrap the compiler, run tests &
84+
benchmarks, generate documentation, install a fresh build of Rust, and more.
85+
It's your best friend when working on Rust, allowing you to compile & test
86+
your contributions before submission.
87+
88+
All the configuration for the build system lives in [the `mk` directory][mkdir]
89+
in the project root. It can be hard to follow in places, as it uses some
90+
advanced Make features which make for some challenging reading. If you have
91+
questions on the build system internals, try asking in
92+
[`#rust-internals`][pound-rust-internals].
93+
94+
[mkdir]: https://github.com/rust-lang/rust/tree/master/mk/
95+
96+
### Configuration
97+
98+
Before you can start building the compiler you need to configure the build for
99+
your system. In most cases, that will just mean using the defaults provided
100+
for Rust. Configuring involves invoking the `configure` script in the project
101+
root.
102+
103+
```
104+
./configure
105+
```
106+
107+
There are large number of options accepted by this script to alter the
108+
configuration used later in the build process. Some options to note:
109+
110+
- `--enable-debug` - Build a debug version of the compiler (disables optimizations)
111+
- `--enable-optimize` - Enable optimizations (can be used with `--enable-debug`
112+
to make a debug build with optimizations)
113+
- `--disable-valgrind-rpass` - Don't run tests with valgrind
114+
- `--enable-clang` - Prefer clang to gcc for building dependencies (e.g., LLVM)
115+
- `--enable-ccache` - Invoke clang/gcc with ccache to re-use object files between builds
116+
- `--enable-compiler-docs` - Build compiler documentation
117+
118+
To see a full list of options, run `./configure --help`.
119+
120+
### Useful Targets
121+
122+
Some common make targets are:
123+
124+
- `make rustc-stage1` - build up to (and including) the first stage. For most
125+
cases we don't need to build the stage2 compiler, so we can save time by not
126+
building it. The stage1 compiler is a fully functioning compiler and
127+
(probably) will be enough to determine if your change works as expected.
128+
- `make check` - build the full compiler & run all tests (takes a while). This
129+
is what gets run by the continuous integration system against your pull
130+
request. You should run this before submitting to make sure your tests pass
131+
& everything builds in the correct manner.
132+
- `make check-stage1-std NO_REBUILD=1` - test the standard library without
133+
rebuilding the entire compiler
134+
- `make check TESTNAME=<substring-of-test-name>` - Run a matching set of tests.
135+
- `TESTNAME` should be a substring of the tests to match against e.g. it could
136+
be the fully qualified test name, or just a part of it.
137+
`TESTNAME=collections::hash::map::test_map::test_capacity_not_less_than_len`
138+
or `TESTNAME=test_capacity_not_less_than_len`.
139+
- `make check-stage1-rpass TESTNAME=<substring-of-test-name>` - Run a single
140+
rpass test with the stage1 compiler (this will be quicker than running the
141+
command above as we only build the stage1 compiler, not the entire thing).
142+
You can also leave off the `-rpass` to run all stage1 test types.
143+
- `make check-stage1-coretest` - Run stage1 tests in `libcore`.
144+
80145
## Pull Requests
81146

82147
Pull requests are the primary mechanism we use to change Rust. GitHub itself
@@ -174,7 +239,7 @@ labels to triage issues:
174239
* Yellow, **A**-prefixed labels state which **area** of the project an issue
175240
relates to.
176241

177-
* Magenta, **B**-prefixed labels identify bugs which **belong** elsewhere.
242+
* Magenta, **B**-prefixed labels identify bugs which are **blockers**.
178243

179244
* Green, **E**-prefixed labels explain the level of **experience** necessary
180245
to fix the issue.

branches/beta/COPYRIGHT

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ terms.
66

77
Longer version:
88

9-
The Rust Project is copyright 2016, The Rust Project
10-
Developers (given in the file AUTHORS.txt).
9+
The Rust Project is copyright 2010, The Rust Project
10+
Developers.
1111

1212
Licensed under the Apache License, Version 2.0
1313
<LICENSE-APACHE or

branches/beta/LICENSE-MIT

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Copyright (c) 2016 The Rust Project Developers
1+
Copyright (c) 2010 The Rust Project Developers
22

33
Permission is hereby granted, free of charge, to any
44
person obtaining a copy of this software and associated

branches/beta/Makefile.in

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,10 @@
100100
# // Having trouble figuring out which test is failing? Turn off parallel tests
101101
# make check-stage1-std RUST_TEST_THREADS=1
102102
#
103+
# // To make debug!() and other logging calls visible, reconfigure:
104+
# ./configure --enable-debug-assertions
105+
# make ....
106+
#
103107
# If you really feel like getting your hands dirty, then:
104108
#
105109
# run `make nitty-gritty`
@@ -220,19 +224,12 @@ endif
220224
# The test suite
221225
ifneq ($(strip $(findstring check,$(MAKECMDGOALS)) \
222226
$(findstring test,$(MAKECMDGOALS)) \
223-
$(findstring perf,$(MAKECMDGOALS)) \
224227
$(findstring tidy,$(MAKECMDGOALS))),)
225228
CFG_INFO := $(info cfg: including test rules)
226229
include $(CFG_SRC_DIR)mk/tests.mk
227230
include $(CFG_SRC_DIR)mk/grammar.mk
228231
endif
229232

230-
# Performance and benchmarking
231-
ifneq ($(findstring perf,$(MAKECMDGOALS)),)
232-
CFG_INFO := $(info cfg: including perf rules)
233-
include $(CFG_SRC_DIR)mk/perf.mk
234-
endif
235-
236233
# Copy all the distributables to another directory for binary install
237234
ifneq ($(strip $(findstring prepare,$(MAKECMDGOALS)) \
238235
$(findstring dist,$(MAKECMDGOALS)) \

branches/beta/README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@ and documentation.
99

1010
Read ["Installing Rust"] from [The Book].
1111

12-
["Installing Rust"]: https://doc.rust-lang.org/book/installing-rust.html
12+
["Installing Rust"]: https://doc.rust-lang.org/book/getting-started.html#installing-rust
1313
[The Book]: https://doc.rust-lang.org/book/index.html
1414

1515
## Building from Source
1616

1717
1. Make sure you have installed the dependencies:
1818

1919
* `g++` 4.7 or `clang++` 3.x
20-
* `python` 2.7 or later (but not 3.x)
20+
* `python` 2.7 (but not 3.x)
2121
* GNU `make` 3.81 or later
2222
* `curl`
2323
* `git`
@@ -77,8 +77,8 @@ build.
7777
7878
Download [MinGW from
7979
here](http://mingw-w64.org/doku.php/download/mingw-builds), and choose the
80-
`threads=win32,exceptions=dwarf/seh` flavor when installing. After installing,
81-
add its `bin` directory to your `PATH`. This is due to #28260, in the future,
80+
`threads=win32,exceptions=dwarf/seh` flavor when installing. Also, make sure to install to a path without spaces in it. After installing,
81+
add its `bin` directory to your `PATH`. This is due to [#28260](https://github.com/rust-lang/rust/issues/28260), in the future,
8282
installing from pacman should be just fine.
8383
8484
```

0 commit comments

Comments
 (0)