Skip to content

Commit f603df5

Browse files
committed
---
yaml --- r: 234201 b: refs/heads/beta c: 523acd9 h: refs/heads/master i: 234199: ad3e047 v: v3
1 parent 9fd160b commit f603df5

File tree

42 files changed

+331
-294
lines changed

Some content is hidden

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

42 files changed

+331
-294
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: 2305dc093a198b877c1ed14cd0da5112faf0146a
26+
refs/heads/beta: 523acd980454992f8cb03840f00c553290447820
2727
refs/tags/1.0.0-alpha: e42bd6d93a1d3433c486200587f8f9e12590a4d7
2828
refs/heads/tmp: 370fe2786109360f7c35b8ba552b83b773dd71d6
2929
refs/tags/1.0.0-alpha.2: 4c705f6bc559886632d3871b04f58aab093bfa2f

branches/beta/COMPILER_TESTS.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Compiler Test Documentation
2+
3+
In the Rust project, we use a special set of comands imbedded in
4+
comments to test the Rust compiler. There are two groups of commands:
5+
6+
1. Header commands
7+
2. Error info commands
8+
9+
Both types of commands are inside comments, but header commands should
10+
be in a comment before any code.
11+
12+
## Summary of Error Info Commands
13+
14+
Error commands specify something about certain lines of the
15+
program. They tell the test what kind of error and what message you
16+
are expecting.
17+
18+
* `~`: Associates the following error level and message with the
19+
current line
20+
* `~|`: Associates the following error level and message with the same
21+
line as the previous comment
22+
* `~^`: Associates the following error level and message with the
23+
previous line. Each caret (`^`) that you add adds a line to this, so
24+
`~^^^^^^^` is seven lines up.
25+
26+
The error levels that you can have are:
27+
1. `ERROR`
28+
2. `WARNING`
29+
3. `NOTE`
30+
4. `HELP` and `SUGGESTION`*
31+
32+
\* **Note**: `SUGGESTION` must follow emediatly after `HELP`.
33+
34+
## Summary of Header Commands
35+
36+
Header commands specify something about the entire test file, as a
37+
whole, instead of just a few lines inside the test.
38+
39+
* `ignore-X` where `X` is an architecture, OS or stage will ignore the test accordingly
40+
* `ignore-pretty` will not compile the pretty-printed test (this is done to test the pretty-printer, but might not always work)
41+
* `ignore-test` always ignores the test
42+
* `ignore-lldb` and `ignore-gdb` will skip the debuginfo tests
43+
* `min-{gdb,lldb}-version`

branches/beta/CONTRIBUTING.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ links to the major sections:
1010
* [Writing Documentation](#writing-documentation)
1111
* [Issue Triage](#issue-triage)
1212
* [Out-of-tree Contributions](#out-of-tree-contributions)
13+
* [Helpful Links and Information](#helpful-links-and-information)
1314

1415
If you have questions, please make a post on [internals.rust-lang.org][internals] or
1516
hop on [#rust-internals][pound-rust-internals].
@@ -210,3 +211,28 @@ valuable!
210211
[users]: https://users.rust-lang.org/
211212
[so]: http://stackoverflow.com/questions/tagged/rust
212213
[community-library]: https://github.com/rust-lang/rfcs/labels/A-community-library
214+
215+
## Helpful Links and Information
216+
217+
For people new to Rust, and just starting to contribute, or even for
218+
more seasoned developers, some useful places to look for information
219+
are:
220+
221+
* The [Rust Internals forum][rif], a place to ask questions and
222+
discuss Rust's internals
223+
* The [generated documentation for rust's compiler][gdfrustc]
224+
* The [rust referance][rr], even though it doesn't specifically talk about Rust's internals, its a great reasource nontheless
225+
* Although out of date, [Tom Lee's great blog article][tlgba] is very helpful
226+
* [rustaceans.org][ro] is helpful, but mostly dedicated to IRC
227+
* The [Rust Compiler Testing Docs][rctd]
228+
* For @bors, [this cheetsheat][cheetsheat] is helpful (Remember to replace `@homu` with `@bors` in the commands that you use.)
229+
* **Google**!
230+
* Don't be afraid to ask! The Rust community is friendly and helpful.
231+
232+
[gdfrustc]: http://manishearth.github.io/rust-internals-docs/rustc/
233+
[rif]: http://internals.rust-lang.org
234+
[rr]: https://doc.rust-lang.org/book/README.html
235+
[tlgba]: http://tomlee.co/2014/04/03/a-more-detailed-tour-of-the-rust-compiler/
236+
[ro]: http://www.rustaceans.org/
237+
[rctd]: ./COMPILER_TESTS.md
238+
[cheetsheat]: http://buildbot.rust-lang.org/homu/

branches/beta/src/etc/platform-intrinsics/generator.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -737,6 +737,9 @@ def open(self, platform):
737737
use IntrinsicDef::Named;
738738
use rustc::middle::ty;
739739
740+
// The default inlining settings trigger a pathological behaviour in
741+
// LLVM, which causes makes compilation very slow. See #28273.
742+
#[inline(never)]
740743
pub fn find<'tcx>(_tcx: &ty::ctxt<'tcx>, name: &str) -> Option<Intrinsic> {{
741744
if !name.starts_with("{0}") {{ return None }}
742745
Some(match &name["{0}".len()..] {{'''.format(platform.intrinsic_prefix())

branches/beta/src/liballoc/arc.rs

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ impl<T: ?Sized + Unsize<U>, U: ?Sized> CoerceUnsized<Arc<U>> for Arc<T> {}
137137
/// Weak pointers will not keep the data inside of the `Arc` alive, and can be
138138
/// used to break cycles between `Arc` pointers.
139139
#[unsafe_no_drop_flag]
140-
#[unstable(feature = "arc_weak", reason = "needs FCP", issue = "27718")]
140+
#[stable(feature = "arc_weak", since = "1.4.0")]
141141
pub struct Weak<T: ?Sized> {
142142
// FIXME #12808: strange name to try to avoid interfering with
143143
// field accesses of the contained type via Deref
@@ -201,7 +201,6 @@ impl<T> Arc<T> {
201201
/// # Examples
202202
///
203203
/// ```
204-
/// #![feature(arc_unique)]
205204
/// use std::sync::Arc;
206205
///
207206
/// let x = Arc::new(3);
@@ -212,7 +211,7 @@ impl<T> Arc<T> {
212211
/// assert_eq!(Arc::try_unwrap(x), Err(Arc::new(4)));
213212
/// ```
214213
#[inline]
215-
#[unstable(feature = "arc_unique", reason = "needs FCP", issue = "27718")]
214+
#[stable(feature = "arc_unique", since = "1.4.0")]
216215
pub fn try_unwrap(this: Self) -> Result<T, Self> {
217216
// See `drop` for why all these atomics are like this
218217
if this.inner().strong.compare_and_swap(1, 0, Release) != 1 { return Err(this) }
@@ -238,14 +237,13 @@ impl<T: ?Sized> Arc<T> {
238237
/// # Examples
239238
///
240239
/// ```
241-
/// #![feature(arc_weak)]
242240
/// use std::sync::Arc;
243241
///
244242
/// let five = Arc::new(5);
245243
///
246244
/// let weak_five = Arc::downgrade(&five);
247245
/// ```
248-
#[unstable(feature = "arc_weak", reason = "needs FCP", issue = "27718")]
246+
#[stable(feature = "arc_weak", since = "1.4.0")]
249247
pub fn downgrade(this: &Self) -> Weak<T> {
250248
loop {
251249
// This Relaxed is OK because we're checking the value in the CAS
@@ -270,14 +268,16 @@ impl<T: ?Sized> Arc<T> {
270268

271269
/// Get the number of weak references to this value.
272270
#[inline]
273-
#[unstable(feature = "arc_counts", reason = "not clearly useful, and racy", issue = "27718")]
271+
#[unstable(feature = "arc_counts", reason = "not clearly useful, and racy",
272+
issue = "28356")]
274273
pub fn weak_count(this: &Self) -> usize {
275274
this.inner().weak.load(SeqCst) - 1
276275
}
277276

278277
/// Get the number of strong references to this value.
279278
#[inline]
280-
#[unstable(feature = "arc_counts", reason = "not clearly useful, and racy", issue = "27718")]
279+
#[unstable(feature = "arc_counts", reason = "not clearly useful, and racy",
280+
issue = "28356")]
281281
pub fn strong_count(this: &Self) -> usize {
282282
this.inner().strong.load(SeqCst)
283283
}
@@ -366,7 +366,8 @@ impl<T: ?Sized> Deref for Arc<T> {
366366
}
367367

368368
impl<T: Clone> Arc<T> {
369-
#[unstable(feature = "arc_unique", reason = "renamed to Arc::make_mut", issue = "27718")]
369+
#[unstable(feature = "arc_make_unique", reason = "renamed to Arc::make_mut",
370+
issue = "27718")]
370371
#[deprecated(since = "1.4.0", reason = "renamed to Arc::make_mut")]
371372
pub fn make_unique(this: &mut Self) -> &mut T {
372373
Arc::make_mut(this)
@@ -381,7 +382,6 @@ impl<T: Clone> Arc<T> {
381382
/// # Examples
382383
///
383384
/// ```
384-
/// #![feature(arc_unique)]
385385
/// use std::sync::Arc;
386386
///
387387
/// let mut data = Arc::new(5);
@@ -398,7 +398,7 @@ impl<T: Clone> Arc<T> {
398398
///
399399
/// ```
400400
#[inline]
401-
#[unstable(feature = "arc_unique", reason = "needs FCP", issue = "27718")]
401+
#[stable(feature = "arc_unique", since = "1.4.0")]
402402
pub fn make_mut(this: &mut Self) -> &mut T {
403403
// Note that we hold both a strong reference and a weak reference.
404404
// Thus, releasing our strong reference only will not, by itself, cause
@@ -460,7 +460,6 @@ impl<T: ?Sized> Arc<T> {
460460
/// # Examples
461461
///
462462
/// ```
463-
/// #![feature(arc_unique)]
464463
/// use std::sync::Arc;
465464
///
466465
/// let mut x = Arc::new(3);
@@ -471,7 +470,7 @@ impl<T: ?Sized> Arc<T> {
471470
/// assert!(Arc::get_mut(&mut x).is_none());
472471
/// ```
473472
#[inline]
474-
#[unstable(feature = "arc_unique", reason = "needs FCP", issue = "27718")]
473+
#[stable(feature = "arc_unique", since = "1.4.0")]
475474
pub fn get_mut(this: &mut Self) -> Option<&mut T> {
476475
if this.is_unique() {
477476
// This unsafety is ok because we're guaranteed that the pointer
@@ -595,7 +594,6 @@ impl<T: ?Sized> Weak<T> {
595594
/// # Examples
596595
///
597596
/// ```
598-
/// #![feature(arc_weak)]
599597
/// use std::sync::Arc;
600598
///
601599
/// let five = Arc::new(5);
@@ -604,7 +602,7 @@ impl<T: ?Sized> Weak<T> {
604602
///
605603
/// let strong_five: Option<Arc<_>> = weak_five.upgrade();
606604
/// ```
607-
#[unstable(feature = "arc_weak", reason = "needs FCP", issue = "27718")]
605+
#[stable(feature = "arc_weak", since = "1.4.0")]
608606
pub fn upgrade(&self) -> Option<Arc<T>> {
609607
// We use a CAS loop to increment the strong count instead of a
610608
// fetch_add because once the count hits 0 it must never be above 0.
@@ -630,7 +628,7 @@ impl<T: ?Sized> Weak<T> {
630628
}
631629
}
632630

633-
#[unstable(feature = "arc_weak", reason = "needs FCP", issue = "27718")]
631+
#[stable(feature = "arc_weak", since = "1.4.0")]
634632
impl<T: ?Sized> Clone for Weak<T> {
635633
/// Makes a clone of the `Weak<T>`.
636634
///
@@ -639,7 +637,6 @@ impl<T: ?Sized> Clone for Weak<T> {
639637
/// # Examples
640638
///
641639
/// ```
642-
/// #![feature(arc_weak)]
643640
/// use std::sync::Arc;
644641
///
645642
/// let weak_five = Arc::downgrade(&Arc::new(5));
@@ -672,7 +669,6 @@ impl<T: ?Sized> Drop for Weak<T> {
672669
/// # Examples
673670
///
674671
/// ```
675-
/// #![feature(arc_weak)]
676672
/// use std::sync::Arc;
677673
///
678674
/// {

branches/beta/src/liballoc/boxed.rs

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -226,11 +226,8 @@ impl<T : ?Sized> Box<T> {
226226
/// Function is unsafe, because improper use of this function may
227227
/// lead to memory problems like double-free, for example if the
228228
/// function is called twice on the same raw pointer.
229-
#[unstable(feature = "box_raw",
230-
reason = "may be renamed or moved out of Box scope",
231-
issue = "27768")]
229+
#[stable(feature = "box_raw", since = "1.4.0")]
232230
#[inline]
233-
// NB: may want to be called from_ptr, see comments on CStr::from_ptr
234231
pub unsafe fn from_raw(raw: *mut T) -> Self {
235232
mem::transmute(raw)
236233
}
@@ -244,17 +241,14 @@ impl<T : ?Sized> Box<T> {
244241
/// `Box` does not specify, how memory is allocated.
245242
///
246243
/// # Examples
247-
/// ```
248-
/// #![feature(box_raw)]
249244
///
245+
/// ```
250246
/// let seventeen = Box::new(17u32);
251247
/// let raw = Box::into_raw(seventeen);
252248
/// let boxed_again = unsafe { Box::from_raw(raw) };
253249
/// ```
254-
#[unstable(feature = "box_raw", reason = "may be renamed",
255-
issue = "27768")]
250+
#[stable(feature = "box_raw", since = "1.4.0")]
256251
#[inline]
257-
// NB: may want to be called into_ptr, see comments on CStr::from_ptr
258252
pub fn into_raw(b: Box<T>) -> *mut T {
259253
unsafe { mem::transmute(b) }
260254
}
@@ -289,8 +283,6 @@ impl<T: Clone> Clone for Box<T> {
289283
/// # Examples
290284
///
291285
/// ```
292-
/// #![feature(box_raw)]
293-
///
294286
/// let x = Box::new(5);
295287
/// let mut y = Box::new(10);
296288
///

branches/beta/src/liballoc/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@
100100
#![cfg_attr(stage0, feature(alloc_system))]
101101
#![cfg_attr(not(stage0), feature(needs_allocator))]
102102

103-
#![cfg_attr(test, feature(test, rustc_private, box_raw))]
103+
#![cfg_attr(test, feature(test, rustc_private))]
104104

105105
#[cfg(stage0)]
106106
extern crate alloc_system;

0 commit comments

Comments
 (0)