Skip to content

Commit ed5a989

Browse files
committed
---
yaml --- r: 158975 b: refs/heads/auto c: 6ee56c9 h: refs/heads/master i: 158973: 7957c36 158971: 2438715 158967: a294772 158959: d6cf73b 158943: e248e20 158911: 9348170 158847: 8ff9bfb 158719: f8d4f4a v: v3
1 parent 6ae12d5 commit ed5a989

File tree

275 files changed

+5729
-3515
lines changed

Some content is hidden

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

275 files changed

+5729
-3515
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503
1010
refs/tags/release-0.3.1: 495bae036dfe5ec6ceafd3312b4dca48741e845b
1111
refs/tags/release-0.4: e828ea2080499553b97dfe33b3f4d472b4562ad7
1212
refs/tags/release-0.5: 7e3bcfbf21278251ee936ad53e92e9b719702d73
13-
refs/heads/auto: ddb17b239b5b2b05932516bfb6b7679915fd4c27
13+
refs/heads/auto: 6ee56c9a5febad45865b7d41422b7ae4d996fcaa
1414
refs/heads/servo: af82457af293e2a842ba6b7759b70288da276167
1515
refs/tags/release-0.6: b4ebcfa1812664df5e142f0134a5faea3918544c
1616
refs/tags/0.1: b19db808c2793fe2976759b85a355c3ad8c8b336

branches/auto/configure

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,24 @@ putvar() {
7676
printf "%-20s := %s\n" $1 "$T" >>config.tmp
7777
}
7878

79+
putpathvar() {
80+
local T
81+
eval T=\$$1
82+
eval TLEN=\${#$1}
83+
if [ $TLEN -gt 35 ]
84+
then
85+
printf "configure: %-20s := %.35s ...\n" $1 "$T"
86+
else
87+
printf "configure: %-20s := %s %s\n" $1 "$T" "$2"
88+
fi
89+
if [ -z "$T" ]
90+
then
91+
printf "%-20s := \n" $1 >>config.tmp
92+
else
93+
printf "%-20s := \"%s\"\n" $1 "$T" >>config.tmp
94+
fi
95+
}
96+
7997
probe() {
8098
local V=$1
8199
shift
@@ -101,7 +119,7 @@ probe() {
101119
fi
102120
done
103121
eval $V=\$T
104-
putvar $V "$VER"
122+
putpathvar $V "$VER"
105123
}
106124

107125
probe_need() {
@@ -638,9 +656,9 @@ probe CFG_ADB adb
638656

639657
if [ ! -z "$CFG_PANDOC" ]
640658
then
641-
PV_MAJOR_MINOR=$(pandoc --version | grep '^pandoc ' |
659+
PV_MAJOR_MINOR=$(pandoc --version | grep '^pandoc\(.exe\)\? ' |
642660
# extract the first 2 version fields, ignore everything else
643-
sed 's/pandoc \([0-9]*\)\.\([0-9]*\).*/\1 \2/')
661+
sed 's/pandoc\(.exe\)\? \([0-9]*\)\.\([0-9]*\).*/\2 \3/')
644662

645663
MIN_PV_MAJOR="1"
646664
MIN_PV_MINOR="9"
@@ -1330,8 +1348,7 @@ do
13301348
done
13311349

13321350
# Munge any paths that appear in config.mk back to posix-y
1333-
perl -i.bak -p -e 's@ ([a-zA-Z]):[/\\]@ /\1/@go;' \
1334-
-e 's@\\@/@go;' config.tmp
1351+
perl -i.bak -p -e 's@ ([a-zA-Z]):[/\\]@ /\1/@go;' config.tmp
13351352
rm -f config.tmp.bak
13361353

13371354
msg

branches/auto/mk/crates.mk

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151

5252
TARGET_CRATES := libc std green native flate arena term \
5353
serialize sync getopts collections test time rand \
54-
log regex graphviz core rbml rlibc alloc rustrt \
54+
log regex graphviz core rbml alloc rustrt \
5555
unicode
5656
HOST_CRATES := syntax rustc rustdoc regex_macros fmt_macros \
5757
rustc_llvm rustc_back
@@ -60,7 +60,6 @@ TOOLS := compiletest rustdoc rustc
6060

6161
DEPS_core :=
6262
DEPS_libc := core
63-
DEPS_rlibc := core
6463
DEPS_unicode := core
6564
DEPS_alloc := core libc native:jemalloc
6665
DEPS_rustrt := alloc core libc collections native:rustrt_native
@@ -104,7 +103,6 @@ TOOL_SOURCE_rustc := $(S)src/driver/driver.rs
104103

105104
ONLY_RLIB_core := 1
106105
ONLY_RLIB_libc := 1
107-
ONLY_RLIB_rlibc := 1
108106
ONLY_RLIB_alloc := 1
109107
ONLY_RLIB_rand := 1
110108
ONLY_RLIB_collections := 1

branches/auto/mk/main.mk

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,7 @@ endif
155155
RUSTFLAGS_STAGE0 += -C prefer-dynamic
156156
RUSTFLAGS_STAGE1 += -C prefer-dynamic
157157
RUST_LIB_FLAGS_ST2 += -C prefer-dynamic
158+
RUST_LIB_FLAGS_ST3 += -C prefer-dynamic
158159

159160
# Landing pads require a lot of codegen. We can get through bootstrapping faster
160161
# by not emitting them.

branches/auto/mk/reconfig.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ ifndef CFG_DISABLE_MANAGE_SUBMODULES
1919
# (nothing checked out at all). `./configure --{llvm,jemalloc}-root`
2020
# will explicitly deinitialize the corresponding submodules, and we don't
2121
# want to force constant rebuilds in that case.
22-
NEED_GIT_RECONFIG=$(shell cd "$(CFG_SRC_DIR)" && "$(CFG_GIT)" submodule status | grep -c '^+')
22+
NEED_GIT_RECONFIG=$(shell cd "$(CFG_SRC_DIR)" && $(CFG_GIT) submodule status | grep -c '^+')
2323
else
2424
NEED_GIT_RECONFIG=0
2525
endif

branches/auto/mk/tests.mk

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -677,7 +677,9 @@ CTEST_DEPS_cfail_$(1)-T-$(2)-H-$(3) = $$(CFAIL_TESTS)
677677
CTEST_DEPS_bench_$(1)-T-$(2)-H-$(3) = $$(BENCH_TESTS)
678678
CTEST_DEPS_perf_$(1)-T-$(2)-H-$(3) = $$(PERF_TESTS)
679679
CTEST_DEPS_debuginfo-gdb_$(1)-T-$(2)-H-$(3) = $$(DEBUGINFO_GDB_TESTS)
680-
CTEST_DEPS_debuginfo-lldb_$(1)-T-$(2)-H-$(3) = $$(DEBUGINFO_LLDB_TESTS)
680+
CTEST_DEPS_debuginfo-lldb_$(1)-T-$(2)-H-$(3) = $$(DEBUGINFO_LLDB_TESTS) \
681+
$(S)src/etc/lldb_batchmode.py \
682+
$(S)src/etc/lldb_rust_formatters.py
681683
CTEST_DEPS_codegen_$(1)-T-$(2)-H-$(3) = $$(CODEGEN_TESTS)
682684

683685
endef

branches/auto/src/doc/guide.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1149,7 +1149,7 @@ enum StringResult {
11491149
}
11501150
```
11511151
Where a `StringResult` is either an `StringOK`, with the result of a computation, or an
1152-
`ErrorReason` with a `String` explaining what caused the computation to fail. This kind of
1152+
`ErrorReason` with a `String` explaining what caused the computation to fail. These kinds of
11531153
`enum`s are actually very useful and are even part of the standard library.
11541154

11551155
As you can see `enum`s with values are quite a powerful tool for data representation,
@@ -1901,8 +1901,8 @@ result is a link to
19011901
click on that result, we'll be taken to its documentation page.
19021902

19031903
This page shows us a few things: the type signature of the function, some
1904-
explanatory text, and then an example. Let's modify our code to add in the
1905-
`random` function:
1904+
explanatory text, and then an example. Let's try to modify our code to add in the
1905+
`random` function and see what happens:
19061906

19071907
```{rust,ignore}
19081908
use std::io;

branches/auto/src/doc/reference.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1961,8 +1961,10 @@ On an `extern` block, the following attributes are interpreted:
19611961
name and type. This is feature gated and the exact behavior is
19621962
implementation-defined (due to variety of linker invocation syntax).
19631963
- `link` - indicate that a native library should be linked to for the
1964-
declarations in this block to be linked correctly. See [external
1965-
blocks](#external-blocks)
1964+
declarations in this block to be linked correctly. `link` supports an optional `kind`
1965+
key with three possible values: `dylib`, `static`, and `framework`. See [external blocks](#external-blocks) for more about external blocks. Two
1966+
examples: `#[link(name = "readline")]` and
1967+
`#[link(name = "CoreFoundation", kind = "framework")]`.
19661968

19671969
On declarations inside an `extern` block, the following attributes are
19681970
interpreted:

branches/auto/src/etc/lldb_batchmode.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,10 @@
2828
import os
2929
import sys
3030
import threading
31+
import thread
3132
import re
3233
import atexit
34+
import time
3335

3436
# Set this to True for additional output
3537
DEBUG_OUTPUT = False
@@ -130,6 +132,22 @@ def listen():
130132
target.GetBroadcaster().AddListener(listener, lldb.SBTarget.eBroadcastBitBreakpointChanged)
131133

132134

135+
def start_watchdog():
136+
"Starts a watchdog thread that will terminate the process after a certain period of time"
137+
watchdog_start_time = time.clock()
138+
watchdog_max_time = watchdog_start_time + 30
139+
140+
def watchdog():
141+
while time.clock() < watchdog_max_time:
142+
time.sleep(1)
143+
print("TIMEOUT: lldb_batchmode.py has been running for too long. Aborting!")
144+
thread.interrupt_main()
145+
146+
# Start the listener and let it run as a daemon
147+
watchdog_thread = threading.Thread(target = watchdog)
148+
watchdog_thread.daemon = True
149+
watchdog_thread.start()
150+
133151
####################################################################################################
134152
# ~main
135153
####################################################################################################
@@ -147,6 +165,9 @@ def listen():
147165
print("Target executable is '%s'." % target_path)
148166
print("Current working directory is '%s'" % os.getcwd())
149167

168+
# Start the timeout watchdog
169+
start_watchdog()
170+
150171
# Create a new debugger instance
151172
debugger = lldb.SBDebugger.Create()
152173

@@ -175,6 +196,10 @@ def listen():
175196

176197
for line in script_file:
177198
command = line.strip()
199+
if command == "run" or command == "r" or re.match("^process\s+launch.*", command):
200+
# Before starting to run the program, let the thread sleep a bit, so all
201+
# breakpoint added events can be processed
202+
time.sleep(0.5)
178203
if command != '':
179204
execute_command(command_interpreter, command)
180205

branches/auto/src/etc/unicode.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
3535
// NOTE: The following code was generated by "src/etc/unicode.py", do not edit directly
3636
37-
#![allow(missing_docs, non_uppercase_statics, non_snake_case)]
37+
#![allow(missing_docs, non_upper_case_globals, non_snake_case)]
3838
'''
3939

4040
# Mapping taken from Table 12 from:
@@ -293,7 +293,7 @@ def emit_bsearch_range_table(f):
293293
f.write("""
294294
fn bsearch_range_table(c: char, r: &'static [(char,char)]) -> bool {
295295
use core::cmp::{Equal, Less, Greater};
296-
use core::slice::ImmutableSlice;
296+
use core::slice::SlicePrelude;
297297
r.binary_search(|&(lo,hi)| {
298298
if lo <= c && c <= hi { Equal }
299299
else if hi < c { Less }
@@ -351,7 +351,7 @@ def emit_conversions_module(f, lowerupper, upperlower):
351351
f.write("pub mod conversions {")
352352
f.write("""
353353
use core::cmp::{Equal, Less, Greater};
354-
use core::slice::ImmutableSlice;
354+
use core::slice::SlicePrelude;
355355
use core::tuple::Tuple2;
356356
use core::option::{Option, Some, None};
357357
use core::slice;
@@ -390,7 +390,7 @@ def emit_conversions_module(f, lowerupper, upperlower):
390390

391391
def emit_grapheme_module(f, grapheme_table, grapheme_cats):
392392
f.write("""pub mod grapheme {
393-
use core::slice::ImmutableSlice;
393+
use core::slice::SlicePrelude;
394394
use core::slice;
395395
396396
#[allow(non_camel_case_types)]
@@ -430,7 +430,7 @@ def emit_grapheme_module(f, grapheme_table, grapheme_cats):
430430
def emit_charwidth_module(f, width_table):
431431
f.write("pub mod charwidth {\n")
432432
f.write(" use core::option::{Option, Some, None};\n")
433-
f.write(" use core::slice::ImmutableSlice;\n")
433+
f.write(" use core::slice::SlicePrelude;\n")
434434
f.write(" use core::slice;\n")
435435
f.write("""
436436
fn bsearch_range_value_table(c: char, is_cjk: bool, r: &'static [(char, char, u8, u8)]) -> u8 {
@@ -530,7 +530,7 @@ def comp_pfun(char):
530530
f.write("""
531531
fn bsearch_range_value_table(c: char, r: &'static [(char, char, u8)]) -> u8 {
532532
use core::cmp::{Equal, Less, Greater};
533-
use core::slice::ImmutableSlice;
533+
use core::slice::SlicePrelude;
534534
use core::slice;
535535
match r.binary_search(|&(lo, hi, _)| {
536536
if lo <= c && c <= hi { Equal }

branches/auto/src/liballoc/arc.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ impl<T: Send + Sync + Clone> Arc<T> {
166166
// additional reference of either kind.
167167
if self.inner().strong.load(atomic::SeqCst) != 1 ||
168168
self.inner().weak.load(atomic::SeqCst) != 1 {
169-
*self = Arc::new(self.deref().clone())
169+
*self = Arc::new((**self).clone())
170170
}
171171
// This unsafety is ok because we're guaranteed that the pointer
172172
// returned is the *only* pointer that will ever be returned to T. Our

branches/auto/src/liballoc/boxed.rs

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,10 @@ impl<T: Default> Default for Box<T> {
4848
fn default() -> Box<T> { box Default::default() }
4949
}
5050

51+
impl<T> Default for Box<[T]> {
52+
fn default() -> Box<[T]> { box [] }
53+
}
54+
5155
#[unstable]
5256
impl<T: Clone> Clone for Box<T> {
5357
/// Returns a copy of the owned box.
@@ -61,12 +65,16 @@ impl<T: Clone> Clone for Box<T> {
6165
}
6266
}
6367

68+
// NOTE(stage0): remove impl after a snapshot
69+
#[cfg(stage0)]
6470
impl<T:PartialEq> PartialEq for Box<T> {
6571
#[inline]
6672
fn eq(&self, other: &Box<T>) -> bool { *(*self) == *(*other) }
6773
#[inline]
6874
fn ne(&self, other: &Box<T>) -> bool { *(*self) != *(*other) }
6975
}
76+
// NOTE(stage0): remove impl after a snapshot
77+
#[cfg(stage0)]
7078
impl<T:PartialOrd> PartialOrd for Box<T> {
7179
#[inline]
7280
fn partial_cmp(&self, other: &Box<T>) -> Option<Ordering> {
@@ -81,14 +89,50 @@ impl<T:PartialOrd> PartialOrd for Box<T> {
8189
#[inline]
8290
fn gt(&self, other: &Box<T>) -> bool { *(*self) > *(*other) }
8391
}
92+
// NOTE(stage0): remove impl after a snapshot
93+
#[cfg(stage0)]
8494
impl<T: Ord> Ord for Box<T> {
8595
#[inline]
8696
fn cmp(&self, other: &Box<T>) -> Ordering {
8797
(**self).cmp(&**other)
8898
}
8999
}
100+
// NOTE(stage0): remove impl after a snapshot
101+
#[cfg(stage0)]
90102
impl<T: Eq> Eq for Box<T> {}
91103

104+
#[cfg(not(stage0))] // NOTE(stage0): remove cfg after a snapshot
105+
impl<Sized? T: PartialEq> PartialEq for Box<T> {
106+
#[inline]
107+
fn eq(&self, other: &Box<T>) -> bool { PartialEq::eq(&**self, &**other) }
108+
#[inline]
109+
fn ne(&self, other: &Box<T>) -> bool { PartialEq::ne(&**self, &**other) }
110+
}
111+
#[cfg(not(stage0))] // NOTE(stage0): remove cfg after a snapshot
112+
impl<Sized? T: PartialOrd> PartialOrd for Box<T> {
113+
#[inline]
114+
fn partial_cmp(&self, other: &Box<T>) -> Option<Ordering> {
115+
PartialOrd::partial_cmp(&**self, &**other)
116+
}
117+
#[inline]
118+
fn lt(&self, other: &Box<T>) -> bool { PartialOrd::lt(&**self, &**other) }
119+
#[inline]
120+
fn le(&self, other: &Box<T>) -> bool { PartialOrd::le(&**self, &**other) }
121+
#[inline]
122+
fn ge(&self, other: &Box<T>) -> bool { PartialOrd::ge(&**self, &**other) }
123+
#[inline]
124+
fn gt(&self, other: &Box<T>) -> bool { PartialOrd::gt(&**self, &**other) }
125+
}
126+
#[cfg(not(stage0))] // NOTE(stage0): remove cfg after a snapshot
127+
impl<Sized? T: Ord> Ord for Box<T> {
128+
#[inline]
129+
fn cmp(&self, other: &Box<T>) -> Ordering {
130+
Ord::cmp(&**self, &**other)
131+
}
132+
}
133+
#[cfg(not(stage0))] // NOTE(stage0): remove cfg after a snapshot
134+
impl<Sized? T: Eq> Eq for Box<T> {}
135+
92136
/// Extension methods for an owning `Any` trait object.
93137
#[unstable = "post-DST and coherence changes, this will not be a trait but \
94138
rather a direct `impl` on `Box<Any>`"]

0 commit comments

Comments
 (0)