Skip to content

Commit 2a18e08

Browse files
committed
---
yaml --- r: 228140 b: refs/heads/try c: fb6eeb6 h: refs/heads/master v: v3
1 parent 025c371 commit 2a18e08

File tree

33 files changed

+461
-940
lines changed

33 files changed

+461
-940
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
refs/heads/master: aca2057ed5fb7af3f8905b2bc01f72fa001c35c8
33
refs/heads/snap-stage3: 1af31d4974e33027a68126fa5a5a3c2c6491824f
4-
refs/heads/try: 29aabcc7c4f43ccd2b032d1764f3052666487504
4+
refs/heads/try: fb6eeb6ce8980c23daec0361e61dfe406f535eb5
55
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
66
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
77
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503

branches/try/CONTRIBUTING.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -108,10 +108,6 @@ will run all the tests on every platform we support. If it all works out,
108108

109109
[merge-queue]: http://buildbot.rust-lang.org/homu/queue/rust
110110

111-
Speaking of tests, Rust has a comprehensive test suite. More information about
112-
it can be found
113-
[here](https://github.com/rust-lang/rust-wiki-backup/blob/master/Note-testsuite.md).
114-
115111
## Writing Documentation
116112

117113
Documentation improvements are very welcome. The source of `doc.rust-lang.org`

branches/try/mk/main.mk

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -295,6 +295,7 @@ LLVM_BINDIR_$(1)=$$(shell "$$(LLVM_CONFIG_$(1))" --bindir)
295295
LLVM_INCDIR_$(1)=$$(shell "$$(LLVM_CONFIG_$(1))" --includedir)
296296
LLVM_LIBDIR_$(1)=$$(shell "$$(LLVM_CONFIG_$(1))" --libdir)
297297
LLVM_LIBDIR_RUSTFLAGS_$(1)=-L "$$(LLVM_LIBDIR_$(1))"
298+
LLVM_LIBS_$(1)=$$(shell "$$(LLVM_CONFIG_$(1))" --libs $$(LLVM_COMPONENTS))
298299
LLVM_LDFLAGS_$(1)=$$(shell "$$(LLVM_CONFIG_$(1))" --ldflags)
299300
ifeq ($$(findstring freebsd,$(1)),freebsd)
300301
# On FreeBSD, it may search wrong headers (that are for pre-installed LLVM),

branches/try/mk/target.mk

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -249,9 +249,11 @@ endef
249249

250250
$(foreach host,$(CFG_HOST), \
251251
$(foreach target,$(CFG_TARGET), \
252-
$(foreach crate,$(CRATES), \
253-
$(eval $(call SETUP_LIB_MSVC_ENV_VARS,0,$(target),$(host),$(crate))))))
252+
$(foreach stage,$(STAGES), \
253+
$(foreach crate,$(CRATES), \
254+
$(eval $(call SETUP_LIB_MSVC_ENV_VARS,$(stage),$(target),$(host),$(crate)))))))
254255
$(foreach host,$(CFG_HOST), \
255256
$(foreach target,$(CFG_TARGET), \
256-
$(foreach tool,$(TOOLS), \
257-
$(eval $(call SETUP_TOOL_MSVC_ENV_VARS,0,$(target),$(host),$(tool))))))
257+
$(foreach stage,$(STAGES), \
258+
$(foreach tool,$(TOOLS), \
259+
$(eval $(call SETUP_TOOL_MSVC_ENV_VARS,$(stage),$(target),$(host),$(tool)))))))

branches/try/src/doc/trpl/comments.md

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -38,17 +38,6 @@ fn add_one(x: i32) -> i32 {
3838
}
3939
```
4040

41-
There is another style of doc comment, `//!`, to comment containing items (e.g.
42-
crates, modules or functions), instead of the items following it. Commonly used
43-
inside crates root (lib.rs) or modules root (mod.rs):
44-
45-
```
46-
//! # The Rust Standard Library
47-
//!
48-
//! The Rust Standard Library provides the essential runtime
49-
//! functionality for building portable Rust software.
50-
```
51-
5241
When writing doc comments, providing some examples of usage is very, very
5342
helpful. You’ll notice we’ve used a new macro here: `assert_eq!`. This compares
5443
two values, and `panic!`s if they’re not equal to each other. It’s very helpful

branches/try/src/doc/trpl/ffi.md

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -533,10 +533,19 @@ attribute turns off Rust's name mangling, so that it is easier to link to.
533533

534534
# FFI and panics
535535

536-
It’s important to be mindful of `panic!`s when working with FFI. A `panic!`
537-
across an FFI boundary is undefined behavior. If you’re writing code that may
538-
panic, you should run it in another thread, so that the panic doesn’t bubble up
539-
to C:
536+
It’s important to be mindful of `panic!`s when working with FFI. This code,
537+
when called from C, will `abort`:
538+
539+
```rust
540+
#[no_mangle]
541+
pub extern fn oh_no() -> ! {
542+
panic!("Oops!");
543+
}
544+
# fn main() {}
545+
```
546+
547+
If you’re writing code that may panic, you should run it in another thread,
548+
so that the panic doesn’t bubble up to C:
540549

541550
```rust
542551
use std::thread;

branches/try/src/doc/trpl/patterns.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -282,6 +282,38 @@ This ‘destructuring’ behavior works on any compound data type, like
282282
[tuples]: primitive-types.html#tuples
283283
[enums]: enums.html
284284

285+
# Ignoring bindings
286+
287+
You can use `_` in a pattern to disregard the value. For example, here’s a
288+
`match` against a `Result<T, E>`:
289+
290+
```rust
291+
# let some_value: Result<i32, &'static str> = Err("There was an error");
292+
match some_value {
293+
Ok(value) => println!("got a value: {}", value),
294+
Err(_) => println!("an error occurred"),
295+
}
296+
```
297+
298+
In the first arm, we bind the value inside the `Ok` variant to `value`. But
299+
in the `Err` arm, we use `_` to disregard the specific error, and just print
300+
a general error message.
301+
302+
`_` is valid in any pattern that creates a binding. This can be useful to
303+
ignore parts of a larger structure:
304+
305+
```rust
306+
fn coordinate() -> (i32, i32, i32) {
307+
// generate and return some sort of triple tuple
308+
# (1, 2, 3)
309+
}
310+
311+
let (x, _, z) = coordinate();
312+
```
313+
314+
Here, we bind the first and last element of the tuple to `x` and `z`, but
315+
ignore the middle element.
316+
285317
# Mix and Match
286318

287319
Whew! That’s a lot of different ways to match things, and they can all be

branches/try/src/etc/mklldeps.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,10 @@
1414

1515
f = open(sys.argv[1], 'wb')
1616

17-
components = sys.argv[2].split() # splits on whitespace
17+
components = sys.argv[2].split(' ')
18+
components = [i for i in components if i] # ignore extra whitespaces
1819
enable_static = sys.argv[3]
19-
llvm_config = sys.argv[4]
20+
llconfig = sys.argv[4]
2021

2122
f.write("""// Copyright 2013 The Rust Project Developers. See the COPYRIGHT
2223
// file at the top-level directory of this distribution and at
@@ -38,15 +39,15 @@ def run(args):
3839
out, err = proc.communicate()
3940

4041
if err:
41-
print("failed to run llvm_config: args = `{}`".format(args))
42+
print("failed to run llconfig: args = `{}`".format(args))
4243
print(err)
4344
sys.exit(1)
4445
return out
4546

4647
f.write("\n")
4748

4849
# LLVM libs
49-
args = [llvm_config, '--libs', '--system-libs']
50+
args = [llconfig, '--libs', '--system-libs']
5051

5152
args.extend(components)
5253
out = run(args)
@@ -68,13 +69,13 @@ def run(args):
6869
f.write(")]\n")
6970

7071
# LLVM ldflags
71-
out = run([llvm_config, '--ldflags'])
72+
out = run([llconfig, '--ldflags'])
7273
for lib in out.strip().split(' '):
7374
if lib[:2] == "-l":
7475
f.write("#[link(name = \"" + lib[2:] + "\")]\n")
7576

7677
# C++ runtime library
77-
out = run([llvm_config, '--cxxflags'])
78+
out = run([llconfig, '--cxxflags'])
7879
if enable_static == '1':
7980
assert('stdlib=libc++' not in out)
8081
f.write("#[link(name = \"stdc++\", kind = \"static\")]\n")

branches/try/src/liblibc/lib.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6128,7 +6128,7 @@ pub mod funcs {
61286128
use types::os::arch::c95::{c_char, c_uchar, c_int, c_uint, c_ulong, size_t};
61296129

61306130
extern {
6131-
pub fn ioctl(fd: c_int, request: c_ulong, ...) -> c_int;
6131+
pub fn ioctl(d: c_int, request: c_ulong, ...) -> c_int;
61326132
pub fn sysctl(name: *mut c_int,
61336133
namelen: c_uint,
61346134
oldp: *mut c_void,
@@ -6160,12 +6160,12 @@ pub mod funcs {
61606160
#[cfg(any(target_os = "linux", target_os = "android"))]
61616161
pub mod bsd44 {
61626162
use types::common::c95::{c_void};
6163-
use types::os::arch::c95::{c_uchar, c_int, c_ulong, size_t};
6163+
use types::os::arch::c95::{c_uchar, c_int, size_t};
61646164

61656165
extern {
61666166
#[cfg(not(all(target_os = "android", target_arch = "aarch64")))]
61676167
pub fn getdtablesize() -> c_int;
6168-
pub fn ioctl(fd: c_int, request: c_ulong, ...) -> c_int;
6168+
pub fn ioctl(d: c_int, request: c_int, ...) -> c_int;
61696169
pub fn madvise(addr: *mut c_void, len: size_t, advice: c_int)
61706170
-> c_int;
61716171
pub fn mincore(addr: *mut c_void, len: size_t, vec: *mut c_uchar)

branches/try/src/librustc_driver/lib.rs

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -481,17 +481,6 @@ pub fn commit_date_str() -> Option<&'static str> {
481481
option_env!("CFG_VER_DATE")
482482
}
483483

484-
/// Returns a stage string, such as "stage0".
485-
pub fn stage_str() -> Option<&'static str> {
486-
if cfg!(stage0) {
487-
Some("stage0")
488-
} else if cfg!(stage1) {
489-
Some("stage1")
490-
} else {
491-
None
492-
}
493-
}
494-
495484
/// Prints version information
496485
pub fn version(binary: &str, matches: &getopts::Matches) {
497486
let verbose = matches.opt_present("verbose");
@@ -504,9 +493,6 @@ pub fn version(binary: &str, matches: &getopts::Matches) {
504493
println!("commit-date: {}", unw(commit_date_str()));
505494
println!("host: {}", config::host_triple());
506495
println!("release: {}", unw(release_str()));
507-
if let Some(stage) = stage_str() {
508-
println!("stage: {}", stage);
509-
}
510496
}
511497
}
512498

branches/try/src/librustc_trans/back/link.rs

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ use super::archive::{Archive, ArchiveBuilder, ArchiveConfig, METADATA_FILENAME};
1212
use super::linker::{Linker, GnuLinker, MsvcLinker};
1313
use super::rpath::RPathConfig;
1414
use super::rpath;
15-
use super::msvc;
1615
use super::svh::Svh;
1716
use session::config;
1817
use session::config::NoDebugInfo;
@@ -359,14 +358,10 @@ pub fn mangle_internal_name_by_path_and_seq(path: PathElems, flav: &str) -> Stri
359358
mangle(path.chain(Some(gensym_name(flav))), None)
360359
}
361360

362-
pub fn get_linker(sess: &Session) -> (String, Command) {
363-
if let Some(ref linker) = sess.opts.cg.linker {
364-
(linker.clone(), Command::new(linker))
365-
} else if sess.target.target.options.is_like_msvc {
366-
("link.exe".to_string(), msvc::link_exe_cmd(sess))
367-
} else {
368-
(sess.target.target.options.linker.clone(),
369-
Command::new(&sess.target.target.options.linker))
361+
pub fn get_cc_prog(sess: &Session) -> String {
362+
match sess.opts.cg.linker {
363+
Some(ref linker) => return linker.to_string(),
364+
None => sess.target.target.options.linker.clone(),
370365
}
371366
}
372367

@@ -812,7 +807,8 @@ fn link_natively(sess: &Session, trans: &CrateTranslation, dylib: bool,
812807
let tmpdir = TempDir::new("rustc").ok().expect("needs a temp dir");
813808

814809
// The invocations of cc share some flags across platforms
815-
let (pname, mut cmd) = get_linker(sess);
810+
let pname = get_cc_prog(sess);
811+
let mut cmd = Command::new(&pname);
816812
cmd.env("PATH", command_path(sess));
817813

818814
let root = sess.target_filesearch(PathKind::Native).get_lib_path();

0 commit comments

Comments
 (0)