Skip to content

Commit 112e7a1

Browse files
committed
---
yaml --- r: 196339 b: refs/heads/tmp c: 9854143 h: refs/heads/master i: 196337: e9062e1 196335: e61e6e1 v: v3
1 parent e516a33 commit 112e7a1

File tree

620 files changed

+10509
-9735
lines changed

Some content is hidden

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

620 files changed

+10509
-9735
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ refs/heads/building: 126db549b038c84269a1e4fe46f051b2c15d6970
3232
refs/heads/beta: 9854143cba679834bc4ef932858cd5303f015a0e
3333
refs/heads/windistfix: 7608dbad651f02e837ed05eef3d74a6662a6e928
3434
refs/tags/1.0.0-alpha: e42bd6d93a1d3433c486200587f8f9e12590a4d7
35-
refs/heads/tmp: 10816266d65ead7645a147ae1fde1b90aeda5d33
35+
refs/heads/tmp: 9854143cba679834bc4ef932858cd5303f015a0e
3636
refs/tags/1.0.0-alpha.2: 4c705f6bc559886632d3871b04f58aab093bfa2f
3737
refs/tags/homu-tmp: 53a183f0274316596bf9405944d4f0468d8c93e4
3838
refs/heads/gate: 97c84447b65164731087ea82685580cc81424412

branches/tmp/RELEASES.md

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,102 @@
1+
Version 1.0.0-beta (April 2015)
2+
-------------------------------------
3+
4+
* ~1100 changes, numerous bugfixes
5+
6+
* Highlights
7+
8+
* The big news is that the vast majority of the standard library
9+
is now `#[stable]` -- 75% of the non-deprecated API surface at
10+
last count. Numerous crates are now running on stable
11+
Rust. Starting with this release, it is not possible to use
12+
unstable features on a stable build.
13+
* Arithmetic on basic integer types now
14+
[checks for overflow in debug builds][overflow].
15+
16+
* Language
17+
18+
* [`Send` no longer implies `'static`][send-rfc], which made
19+
possible the [`thread::scoped` API][scoped]. Scoped threads can
20+
borrow data from their parent's stack frame -- safely!
21+
* [UFCS now supports trait-less associated paths][moar-ufcs] like
22+
`MyType::default()`.
23+
* Primitive types [now have inherent methods][prim-inherent],
24+
obviating the need for extension traits like `SliceExt`.
25+
* Methods with `Self: Sized` in their `where` clause are
26+
[considered object-safe][self-sized], allowing many extension
27+
traits like `IteratorExt` to be merged into the traits they
28+
extended.
29+
* You can now [refer to associated types][assoc-where] whose
30+
corresponding trait bounds appear only in a `where` clause.
31+
* The final bits of [OIBIT landed][oibit-final], meaning that
32+
traits like `Send` and `Sync` are now library-defined.
33+
* A [Reflect trait][reflect] was introduced, which means that
34+
downcasting via the `Any` trait is effectively limited to
35+
concrete types. This helps retain the potentially-important
36+
"parametricity" property: generic code cannot behave differently
37+
for different type arguments except in minor ways.
38+
* The `unsafe_destructor` feature is now deprecated in favor of
39+
the [new `dropck`][dropck]. This change is a major reduction in
40+
unsafe code.
41+
* Trait coherence was [revised again][fundamental], this time with
42+
an eye toward API evolution over time.
43+
44+
* Libraries
45+
46+
* The new path and IO modules are complete and `#[stable]`. This
47+
was the major library focus for this cycle.
48+
* The path API was [revised][path-normalize] to normalize `.`,
49+
adjusting the tradeoffs in favor of the most common usage.
50+
* A large number of remaining APIs in `std` were also stabilized
51+
during this cycle; about 75% of the non-deprecated API surface
52+
is now stable.
53+
* The new [string pattern API][string-pattern] landed, which makes
54+
the string slice API much more internally consistent and flexible.
55+
* A shiny [framework for Debug implementations][debug-builder] landed.
56+
This makes it possible to opt in to "pretty-printed" debugging output.
57+
* A new set of [generic conversion traits][conversion] replaced
58+
many existing ad hoc traits.
59+
* Generic numeric traits were
60+
[completely removed][num-traits]. This was made possible thanks
61+
to inherent methods for primitive types, and the removal gives
62+
maximal flexibility for designing a numeric hierarchy in the future.
63+
* The `Fn` traits are now related via [inheritance][fn-inherit]
64+
and provide ergonomic [blanket implementations][fn-blanket].
65+
* The `Index` and `IndexMut` traits were changed to
66+
[take the index by value][index-value], enabling code like
67+
`hash_map["string"]` to work.
68+
* `Copy` now [inherits][copy-clone] from `Clone`, meaning that all
69+
`Copy` data is known to be `Clone` as well.
70+
71+
* Infrastructure
72+
73+
* Metadata was tuned, shrinking binaries [by 27%][metadata-shrink].
74+
* Much headway was made on ecosystem-wide CI, making it possible
75+
to [compare builds for breakage][ci-compare].
76+
77+
[send-rfc]: https://github.com/rust-lang/rfcs/blob/master/text/0458-send-improvements.md
78+
[scoped]: http://static.rust-lang.org/doc/master/std/thread/fn.scoped.html
79+
[moar-ufcs]: https://github.com/rust-lang/rust/pull/22172
80+
[prim-inherent]: https://github.com/rust-lang/rust/pull/23104
81+
[overflow]: https://github.com/rust-lang/rfcs/blob/master/text/0560-integer-overflow.md
82+
[metadata-shrink]: https://github.com/rust-lang/rust/pull/22971
83+
[self-sized]: https://github.com/rust-lang/rust/pull/22301
84+
[assoc-where]: https://github.com/rust-lang/rust/pull/22512
85+
[string-pattern]: https://github.com/rust-lang/rust/pull/22466
86+
[oibit-final]: https://github.com/rust-lang/rust/pull/21689
87+
[reflect]: https://github.com/rust-lang/rust/pull/23712
88+
[debug-builder]: https://github.com/rust-lang/rfcs/blob/master/text/0640-debug-improvements.md
89+
[conversion]: https://github.com/rust-lang/rfcs/pull/529
90+
[num-traits]: https://github.com/rust-lang/rust/pull/23549
91+
[index-value]: https://github.com/rust-lang/rust/pull/23601
92+
[dropck]: https://github.com/rust-lang/rfcs/pull/769
93+
[fundamental]: https://github.com/rust-lang/rfcs/pull/1023
94+
[ci-compare]: https://gist.github.com/brson/a30a77836fbec057cbee
95+
[fn-inherit]: https://github.com/rust-lang/rust/pull/23282
96+
[fn-blanket]: https://github.com/rust-lang/rust/pull/23895
97+
[copy-clone]: https://github.com/rust-lang/rust/pull/23860
98+
[path-normalize]: https://github.com/rust-lang/rust/pull/23229
99+
1100
Version 1.0.0-alpha.2 (February 2015)
2101
-------------------------------------
3102

branches/tmp/mk/crates.mk

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -125,13 +125,18 @@ ONLY_RLIB_rustc_bitflags := 1
125125
# On channels where the only usable crate is std, only build documentation for
126126
# std. This keeps distributions small and doesn't clutter up the API docs with
127127
# confusing internal details from the crates behind the facade.
128+
#
129+
# (Disabled while cmr figures out how to change rustdoc to make reexports work
130+
# slightly nicer. Otherwise, all cross-crate links to Vec will go to
131+
# libcollections, breaking them, and [src] links for anything reexported will
132+
# not work.)
128133

129-
ifeq ($(CFG_RELEASE_CHANNEL),stable)
130-
DOC_CRATES := std
131-
else
132-
ifeq ($(CFG_RELEASE_CHANNEL),beta)
133-
DOC_CRATES := std
134-
else
134+
#ifeq ($(CFG_RELEASE_CHANNEL),stable)
135+
#DOC_CRATES := std
136+
#else
137+
#ifeq ($(CFG_RELEASE_CHANNEL),beta)
138+
#DOC_CRATES := std
139+
#else
135140
DOC_CRATES := $(filter-out rustc, \
136141
$(filter-out rustc_trans, \
137142
$(filter-out rustc_typeck, \
@@ -143,8 +148,8 @@ DOC_CRATES := $(filter-out rustc, \
143148
$(filter-out log, \
144149
$(filter-out getopts, \
145150
$(filter-out syntax, $(CRATES))))))))))))
146-
endif
147-
endif
151+
#endif
152+
#endif
148153
COMPILER_DOC_CRATES := rustc rustc_trans rustc_borrowck rustc_resolve \
149154
rustc_typeck rustc_driver syntax rustc_privacy \
150155
rustc_lint

branches/tmp/mk/tests.mk

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ $(foreach file,$(wildcard $(S)src/doc/trpl/*.md), \
166166
######################################################################
167167

168168
# The main testing target. Tests lots of stuff.
169-
check: cleantmptestlogs cleantestlibs all check-stage2 tidy
169+
check: check-sanitycheck cleantmptestlogs cleantestlibs all check-stage2 tidy
170170
$(Q)$(CFG_PYTHON) $(S)src/etc/check-summary.py tmp/*.log
171171

172172
# As above but don't bother running tidy.
@@ -193,6 +193,11 @@ check-docs: cleantestlibs cleantmptestlogs check-stage2-docs
193193
# Not run as part of the normal test suite, but tested by bors on checkin.
194194
check-secondary: check-build-compiletest check-build-lexer-verifier check-lexer check-pretty
195195

196+
.PHONY: check-sanitycheck
197+
198+
check-sanitycheck:
199+
$(Q)$(CFG_PYTHON) $(S)src/etc/check-sanitycheck.py
200+
196201
# check + check-secondary.
197202
#
198203
# Issue #17883: build check-secondary first so hidden dependencies in

branches/tmp/src/compiletest/compiletest.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
#![feature(std_misc)]
1919
#![feature(test)]
2020
#![feature(path_ext)]
21-
#![feature(convert)]
2221
#![feature(str_char)]
2322

2423
#![deny(warnings)]
@@ -32,7 +31,6 @@ extern crate log;
3231
use std::env;
3332
use std::fs;
3433
use std::path::{Path, PathBuf};
35-
use std::thunk::Thunk;
3634
use getopts::{optopt, optflag, reqopt};
3735
use common::Config;
3836
use common::{Pretty, DebugInfoGdb, DebugInfoLldb, Codegen};
@@ -352,7 +350,7 @@ pub fn make_test_name(config: &Config, testfile: &Path) -> test::TestName {
352350
pub fn make_test_closure(config: &Config, testfile: &Path) -> test::TestFn {
353351
let config = (*config).clone();
354352
let testfile = testfile.to_path_buf();
355-
test::DynTestFn(Thunk::new(move || {
353+
test::DynTestFn(Box::new(move || {
356354
runtest::run(config, &testfile)
357355
}))
358356
}

branches/tmp/src/compiletest/header.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,7 @@ fn parse_exec_env(line: &str) -> Option<(String, String)> {
311311
parse_name_value_directive(line, "exec-env").map(|nv| {
312312
// nv is either FOO or FOO=BAR
313313
let mut strs: Vec<String> = nv
314-
.splitn(1, '=')
314+
.splitn(2, '=')
315315
.map(|s| s.to_string())
316316
.collect();
317317

branches/tmp/src/doc/reference.md

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -977,17 +977,13 @@ An example of `use` declarations:
977977

978978
```
979979
# #![feature(core)]
980-
use std::iter::range_step;
981980
use std::option::Option::{Some, None};
982981
use std::collections::hash_map::{self, HashMap};
983982
984983
fn foo<T>(_: T){}
985984
fn bar(map1: HashMap<String, usize>, map2: hash_map::HashMap<String, usize>){}
986985
987986
fn main() {
988-
// Equivalent to 'std::iter::range_step(0, 10, 2);'
989-
range_step(0, 10, 2);
990-
991987
// Equivalent to 'foo(vec![std::option::Option::Some(1.0f64),
992988
// std::option::Option::None]);'
993989
foo(vec![Some(1.0f64), None]);
@@ -1188,12 +1184,15 @@ the guarantee that these issues are never caused by safe code.
11881184

11891185
* Data races
11901186
* Dereferencing a null/dangling raw pointer
1191-
* Mutating an immutable value/reference without `UnsafeCell`
11921187
* Reads of [undef](http://llvm.org/docs/LangRef.html#undefined-values)
11931188
(uninitialized) memory
11941189
* Breaking the [pointer aliasing
11951190
rules](http://llvm.org/docs/LangRef.html#pointer-aliasing-rules)
11961191
with raw pointers (a subset of the rules used by C)
1192+
* `&mut` and `&` follow LLVM’s scoped [noalias] model, except if the `&T`
1193+
contains an `UnsafeCell<U>`. Unsafe code must not violate these aliasing
1194+
guarantees.
1195+
* Mutating an immutable value/reference without `UnsafeCell<U>`
11971196
* Invoking undefined behavior via compiler intrinsics:
11981197
* Indexing outside of the bounds of an object with `std::ptr::offset`
11991198
(`offset` intrinsic), with
@@ -1210,6 +1209,8 @@ the guarantee that these issues are never caused by safe code.
12101209
code. Rust's failure system is not compatible with exception handling in
12111210
other languages. Unwinding must be caught and handled at FFI boundaries.
12121211

1212+
[noalias]: http://llvm.org/docs/LangRef.html#noalias
1213+
12131214
##### Behaviour not considered unsafe
12141215

12151216
This is a list of behaviour not considered *unsafe* in Rust terms, but that may
@@ -1647,7 +1648,7 @@ specific type.
16471648
Implementations are defined with the keyword `impl`.
16481649

16491650
```
1650-
# #[derive(Copy)]
1651+
# #[derive(Copy, Clone)]
16511652
# struct Point {x: f64, y: f64};
16521653
# type Surface = i32;
16531654
# struct BoundingBox {x: f64, y: f64, width: f64, height: f64};
@@ -1660,6 +1661,10 @@ struct Circle {
16601661
16611662
impl Copy for Circle {}
16621663
1664+
impl Clone for Circle {
1665+
fn clone(&self) -> Circle { *self }
1666+
}
1667+
16631668
impl Shape for Circle {
16641669
fn draw(&self, s: Surface) { do_draw_circle(s, *self); }
16651670
fn bounding_box(&self) -> BoundingBox {

branches/tmp/src/doc/trpl/SUMMARY.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,5 +42,7 @@
4242
* [Intrinsics](intrinsics.md)
4343
* [Lang items](lang-items.md)
4444
* [Link args](link-args.md)
45+
* [Benchmark Tests](benchmark-tests.md)
46+
* [Box Syntax and Patterns](box-syntax-and-patterns.md)
4547
* [Conclusion](conclusion.md)
4648
* [Glossary](glossary.md)

0 commit comments

Comments
 (0)