Skip to content

Commit 474e64d

Browse files
committed
---
yaml --- r: 218199 b: refs/tags/homu-tmp c: d0fdfbf h: refs/heads/master i: 218197: ac9ebc5 218195: 1108d70 218191: fc4706e v: v3
1 parent 81d1e62 commit 474e64d

File tree

204 files changed

+4282
-3305
lines changed

Some content is hidden

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

204 files changed

+4282
-3305
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ refs/heads/beta: 18adf6230e2e229d4d73391cebff060afc5e5aaa
2727
refs/tags/1.0.0-alpha: e42bd6d93a1d3433c486200587f8f9e12590a4d7
2828
refs/heads/tmp: 50df2a09b8b9dd4883eb27d833a8482799175a3b
2929
refs/tags/1.0.0-alpha.2: 4c705f6bc559886632d3871b04f58aab093bfa2f
30-
refs/tags/homu-tmp: e6596d0052e79e6393bbee3538bb122930d89887
30+
refs/tags/homu-tmp: d0fdfbfb0d34f196f52b9d15215723c4785c4afa
3131
refs/tags/1.0.0-beta: 8cbb92b53468ee2b0c2d3eeb8567005953d40828
3232
refs/heads/stable: 35ceea3997c79a3b7562e89b462ab76af5b86b22
3333
refs/tags/1.0.0: 55bd4f8ff2b323f317ae89e254ce87162d52a375

tags/homu-tmp/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Rust is a fast systems programming language that guarantees
44
memory safety and offers painless concurrency ([no data races]).
55
It does not employ a garbage collector and has minimal runtime overhead.
66

7-
This repo contains the code for `rustc`, the Rust compiler, as well
7+
This repo contains the code for the compiler (`rustc`), as well
88
as standard libraries, tools and documentation for Rust.
99

1010
[no data races]: http://blog.rust-lang.org/2015/04/10/Fearless-Concurrency.html
@@ -73,7 +73,7 @@ Read ["Installing Rust"] from [The Book].
7373
```
7474
7575
3. Run `mingw32_shell.bat` or `mingw64_shell.bat` from wherever you installed
76-
MYSY2 (i.e. `C:\msys`), depending on whether you want 32-bit or 64-bit Rust.
76+
MSYS2 (i.e. `C:\msys`), depending on whether you want 32-bit or 64-bit Rust.
7777
7878
4. Navigate to Rust's source code, configure and build it:
7979

tags/homu-tmp/configure

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -405,6 +405,10 @@ case $CFG_OSTYPE in
405405
CFG_OSTYPE=unknown-openbsd
406406
;;
407407

408+
NetBSD)
409+
CFG_OSTYPE=unknown-netbsd
410+
;;
411+
408412
Darwin)
409413
CFG_OSTYPE=apple-darwin
410414
;;
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# x86_64-unknown-netbsd configuration
2+
CC_x86_64-unknown-netbsd=$(CC)
3+
CXX_x86_64-unknown-netbsd=$(CXX)
4+
CPP_x86_64-unknown-netbsd=$(CPP)
5+
AR_x86_64-unknown-netbsd=$(AR)
6+
CFG_LIB_NAME_x86_64-unknown-netbsd=lib$(1).so
7+
CFG_STATIC_LIB_NAME_x86_64-unknown-netbsd=lib$(1).a
8+
CFG_LIB_GLOB_x86_64-unknown-netbsd=lib$(1)-*.so
9+
CFG_LIB_DSYM_GLOB_x86_64-unknown-netbsd=$(1)-*.dylib.dSYM
10+
CFG_JEMALLOC_CFLAGS_x86_64-unknown-netbsd := -I/usr/local/include $(CFLAGS)
11+
CFG_GCCISH_CFLAGS_x86_64-unknown-netbsd := -Wall -Werror -g -fPIC -I/usr/local/include $(CFLAGS)
12+
CFG_GCCISH_LINK_FLAGS_x86_64-unknown-netbsd := -shared -fPIC -g -pthread -lrt
13+
CFG_GCCISH_DEF_FLAG_x86_64-unknown-netbsd := -Wl,--export-dynamic,--dynamic-list=
14+
CFG_LLC_FLAGS_x86_64-unknown-netbsd :=
15+
CFG_INSTALL_NAME_x86_64-unknown-netbsd =
16+
CFG_EXE_SUFFIX_x86_64-unknown-netbsd :=
17+
CFG_WINDOWSY_x86_64-unknown-netbsd :=
18+
CFG_UNIXY_x86_64-unknown-netbsd := 1
19+
CFG_LDPATH_x86_64-unknown-netbsd :=
20+
CFG_RUN_x86_64-unknown-netbsd=$(2)
21+
CFG_RUN_TARG_x86_64-unknown-netbsd=$(call CFG_RUN_x86_64-unknown-netbsd,,$(2))
22+
CFG_GNU_TRIPLE_x86_64-unknown-netbsd := x86_64-unknown-netbsd

tags/homu-tmp/src/compiletest/runtest.rs

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1126,16 +1126,10 @@ impl fmt::Display for Status {
11261126

11271127
fn compile_test(config: &Config, props: &TestProps,
11281128
testfile: &Path) -> ProcRes {
1129-
compile_test_(config, props, testfile, &[])
1130-
}
1131-
1132-
fn compile_test_(config: &Config, props: &TestProps,
1133-
testfile: &Path, extra_args: &[String]) -> ProcRes {
11341129
let aux_dir = aux_output_dir_name(config, testfile);
11351130
// FIXME (#9639): This needs to handle non-utf8 paths
1136-
let mut link_args = vec!("-L".to_string(),
1137-
aux_dir.to_str().unwrap().to_string());
1138-
link_args.extend(extra_args.iter().cloned());
1131+
let link_args = vec!("-L".to_string(),
1132+
aux_dir.to_str().unwrap().to_string());
11391133
let args = make_compile_args(config,
11401134
props,
11411135
link_args,
@@ -1144,7 +1138,7 @@ fn compile_test_(config: &Config, props: &TestProps,
11441138
}
11451139

11461140
fn document(config: &Config, props: &TestProps,
1147-
testfile: &Path, extra_args: &[String]) -> (ProcRes, PathBuf) {
1141+
testfile: &Path) -> (ProcRes, PathBuf) {
11481142
let aux_dir = aux_output_dir_name(config, testfile);
11491143
let out_dir = output_base_name(config, testfile);
11501144
let _ = fs::remove_dir_all(&out_dir);
@@ -1154,7 +1148,6 @@ fn document(config: &Config, props: &TestProps,
11541148
"-o".to_string(),
11551149
out_dir.to_str().unwrap().to_string(),
11561150
testfile.to_str().unwrap().to_string()];
1157-
args.extend(extra_args.iter().cloned());
11581151
args.extend(split_maybe_args(&props.compile_flags));
11591152
let args = ProcArgs {
11601153
prog: config.rustdoc_path.to_str().unwrap().to_string(),
@@ -1717,7 +1710,7 @@ fn charset() -> &'static str {
17171710
}
17181711

17191712
fn run_rustdoc_test(config: &Config, props: &TestProps, testfile: &Path) {
1720-
let (proc_res, out_dir) = document(config, props, testfile, &[]);
1713+
let (proc_res, out_dir) = document(config, props, testfile);
17211714
if !proc_res.status.success() {
17221715
fatal_proc_rec("rustdoc failed!", &proc_res);
17231716
}

tags/homu-tmp/src/compiletest/util.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ const OS_TABLE: &'static [(&'static str, &'static str)] = &[
2121
("ios", "ios"),
2222
("linux", "linux"),
2323
("mingw32", "windows"),
24+
("netbsd", "netbsd"),
2425
("openbsd", "openbsd"),
2526
("win32", "windows"),
2627
("windows", "windows"),

tags/homu-tmp/src/doc/reference.md

Lines changed: 49 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -338,12 +338,16 @@ type of the literal. The integer suffix must be the name of one of the
338338
integral types: `u8`, `i8`, `u16`, `i16`, `u32`, `i32`, `u64`, `i64`,
339339
`isize`, or `usize`.
340340

341-
The type of an _unsuffixed_ integer literal is determined by type inference.
342-
If an integer type can be _uniquely_ determined from the surrounding program
343-
context, the unsuffixed integer literal has that type. If the program context
344-
underconstrains the type, it defaults to the signed 32-bit integer `i32`; if
345-
the program context overconstrains the type, it is considered a static type
346-
error.
341+
The type of an _unsuffixed_ integer literal is determined by type inference:
342+
343+
* If an integer type can be _uniquely_ determined from the surrounding
344+
program context, the unsuffixed integer literal has that type.
345+
346+
* If the program context underconstrains the type, it defaults to the
347+
signed 32-bit integer `i32`.
348+
349+
* If the program context overconstrains the type, it is considered a
350+
static type error.
347351

348352
Examples of integer literals of various forms:
349353

@@ -371,12 +375,17 @@ The suffix forcibly sets the type of the literal. There are two valid
371375
_floating-point suffixes_, `f32` and `f64` (the 32-bit and 64-bit floating point
372376
types), which explicitly determine the type of the literal.
373377

374-
The type of an _unsuffixed_ floating-point literal is determined by type
375-
inference. If a floating-point type can be _uniquely_ determined from the
376-
surrounding program context, the unsuffixed floating-point literal has that type.
377-
If the program context underconstrains the type, it defaults to double-precision `f64`;
378-
if the program context overconstrains the type, it is considered a static type
379-
error.
378+
The type of an _unsuffixed_ floating-point literal is determined by
379+
type inference:
380+
381+
* If a floating-point type can be _uniquely_ determined from the
382+
surrounding program context, the unsuffixed floating-point literal
383+
has that type.
384+
385+
* If the program context underconstrains the type, it defaults to `f64`.
386+
387+
* If the program context overconstrains the type, it is considered a
388+
static type error.
380389

381390
Examples of floating-point literals of various forms:
382391

@@ -2023,7 +2032,7 @@ The following configurations must be defined by the implementation:
20232032
as a configuration itself, like `unix` or `windows`.
20242033
* `target_os = "..."`. Operating system of the target, examples include
20252034
`"windows"`, `"macos"`, `"ios"`, `"linux"`, `"android"`, `"freebsd"`, `"dragonfly"`,
2026-
`"bitrig"` or `"openbsd"`.
2035+
`"bitrig"` , `"openbsd"` or `"netbsd"`.
20272036
* `target_pointer_width = "..."`. Target pointer width in bits. This is set
20282037
to `"32"` for targets with 32-bit pointers, and likewise set to `"64"` for
20292038
64-bit pointers.
@@ -2963,14 +2972,12 @@ move values (depending on their type) from the environment into the lambda
29632972
expression's captured environment.
29642973

29652974
In this example, we define a function `ten_times` that takes a higher-order
2966-
function argument, and call it with a lambda expression as an argument:
2975+
function argument, and we then call it with a lambda expression as an argument:
29672976

29682977
```
29692978
fn ten_times<F>(f: F) where F: Fn(i32) {
2970-
let mut i = 0i32;
2971-
while i < 10 {
2972-
f(i);
2973-
i += 1;
2979+
for index in 0..10 {
2980+
f(index);
29742981
}
29752982
}
29762983
@@ -3319,10 +3326,13 @@ An example of a tuple type and its use:
33193326

33203327
```
33213328
type Pair<'a> = (i32, &'a str);
3322-
let p: Pair<'static> = (10, "hello");
3329+
let p: Pair<'static> = (10, "ten");
33233330
let (a, b) = p;
3324-
assert!(b != "world");
3325-
assert!(p.0 == 10);
3331+
3332+
assert_eq!(a, 10);
3333+
assert_eq!(b, "ten");
3334+
assert_eq!(p.0, 10);
3335+
assert_eq!(p.1, "ten");
33263336
```
33273337

33283338
For historical reasons and convenience, the tuple type with no elements (`()`)
@@ -3332,27 +3342,32 @@ is often called ‘unit’ or ‘the unit type’.
33323342

33333343
Rust has two different types for a list of items:
33343344

3335-
* `[T; N]`, an 'array'.
3336-
* `&[T]`, a 'slice'.
3345+
* `[T; N]`, an 'array'
3346+
* `&[T]`, a 'slice'
33373347

33383348
An array has a fixed size, and can be allocated on either the stack or the
33393349
heap.
33403350

33413351
A slice is a 'view' into an array. It doesn't own the data it points
33423352
to, it borrows it.
33433353

3344-
An example of each kind:
3354+
Examples:
33453355

33463356
```{rust}
3347-
let vec: Vec<i32> = vec![1, 2, 3];
3348-
let arr: [i32; 3] = [1, 2, 3];
3349-
let s: &[i32] = &vec[..];
3357+
// A stack-allocated array
3358+
let array: [i32; 3] = [1, 2, 3];
3359+
3360+
// A heap-allocated array
3361+
let vector: Vec<i32> = vec![1, 2, 3];
3362+
3363+
// A slice into an array
3364+
let slice: &[i32] = &vector[..];
33503365
```
33513366

33523367
As you can see, the `vec!` macro allows you to create a `Vec<T>` easily. The
33533368
`vec!` macro is also part of the standard library, rather than the language.
33543369

3355-
All in-bounds elements of arrays, and slices are always initialized, and access
3370+
All in-bounds elements of arrays and slices are always initialized, and access
33563371
to an array or slice is always bounds-checked.
33573372

33583373
### Structure types
@@ -3486,7 +3501,7 @@ x = bo(5,7);
34863501

34873502
#### Function types for specific items
34883503

3489-
Internally to the compiler, there are also function types that are specific to a particular
3504+
Internal to the compiler, there are also function types that are specific to a particular
34903505
function item. In the following snippet, for example, the internal types of the functions
34913506
`foo` and `bar` are different, despite the fact that they have the same signature:
34923507

@@ -3514,13 +3529,14 @@ more of the closure traits:
35143529

35153530
* `FnMut`
35163531
: The closure can be called multiple times as mutable. A closure called as
3517-
`FnMut` can mutate values from its environment. `FnMut` implies
3518-
`FnOnce`.
3532+
`FnMut` can mutate values from its environment. `FnMut` inherits from
3533+
`FnOnce` (i.e. anything implementing `FnMut` also implements `FnOnce`).
35193534

35203535
* `Fn`
35213536
: The closure can be called multiple times through a shared reference.
35223537
A closure called as `Fn` can neither move out from nor mutate values
3523-
from its environment. `Fn` implies `FnMut` and `FnOnce`.
3538+
from its environment. `Fn` inherits from `FnMut`, which itself
3539+
inherits from `FnOnce`.
35243540

35253541

35263542
### Trait objects
@@ -3643,7 +3659,7 @@ Coercions are defined in [RFC401]. A coercion is implicit and has no syntax.
36433659
### Coercion sites
36443660

36453661
A coercion can only occur at certain coercion sites in a program; these are
3646-
typically places where the desired type is explicit or can be dervied by
3662+
typically places where the desired type is explicit or can be derived by
36473663
propagation from explicit types (without type inference). Possible coercion
36483664
sites are:
36493665

tags/homu-tmp/src/doc/trpl/academic-research.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Recommended for inspiration and a better understanding of Rust's background.
1212
* [Macros that work together](https://www.cs.utah.edu/plt/publications/jfp12-draft-fcdf.pdf)
1313
* [Traits: composable units of behavior](http://scg.unibe.ch/archive/papers/Scha03aTraits.pdf)
1414
* [Alias burying](http://www.cs.uwm.edu/faculty/boyland/papers/unique-preprint.ps) - We tried something similar and abandoned it.
15-
* [External uniqueness is unique enough](http://www.computingscience.nl/research/techreps/repo/CS-2002/2002-048.pdf)
15+
* [External uniqueness is unique enough](http://www.cs.uu.nl/research/techreps/UU-CS-2002-048.html)
1616
* [Uniqueness and Reference Immutability for Safe Parallelism](https://research.microsoft.com/pubs/170528/msr-tr-2012-79.pdf)
1717
* [Region Based Memory Management](http://www.cs.ucla.edu/~palsberg/tba/papers/tofte-talpin-iandc97.pdf)
1818

@@ -26,10 +26,10 @@ Recommended for inspiration and a better understanding of Rust's background.
2626
* [Dynamic circular work stealing deque](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.170.1097&rep=rep1&type=pdf) - The Chase/Lev deque
2727
* [Work-first and help-first scheduling policies for async-finish task parallelism](http://www.cs.rice.edu/%7Eyguo/pubs/PID824943.pdf) - More general than fully-strict work stealing
2828
* [A Java fork/join calamity](http://www.coopsoft.com/ar/CalamityArticle.html) - critique of Java's fork/join library, particularly its application of work stealing to non-strict computation
29-
* [Scheduling techniques for concurrent systems](http://www.ece.rutgers.edu/%7Eparashar/Classes/ece572-papers/05/ps-ousterhout.pdf)
29+
* [Scheduling techniques for concurrent systems](http://www.stanford.edu/~ouster/cgi-bin/papers/coscheduling.pdf)
3030
* [Contention aware scheduling](http://www.blagodurov.net/files/a8-blagodurov.pdf)
3131
* [Balanced work stealing for time-sharing multicores](http://www.cse.ohio-state.edu/hpcs/WWW/HTML/publications/papers/TR-12-1.pdf)
32-
* [Three layer cake](http://www.upcrc.illinois.edu/workshops/paraplop10/papers/paraplop10_submission_8.pdf)
32+
* [Three layer cake for shared-memory programming](http://dl.acm.org/citation.cfm?id=1953616&dl=ACM&coll=DL&CFID=524387192&CFTOKEN=44362705)
3333
* [Non-blocking steal-half work queues](http://www.cs.bgu.ac.il/%7Ehendlerd/papers/p280-hendler.pdf)
3434
* [Reagents: expressing and composing fine-grained concurrency](http://www.mpi-sws.org/~turon/reagents.pdf)
3535
* [Algorithms for scalable synchronization of shared-memory multiprocessors](https://www.cs.rochester.edu/u/scott/papers/1991_TOCS_synch.pdf)

tags/homu-tmp/src/doc/trpl/documentation.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,10 @@ pub fn new(value: T) -> Rc<T> {
3333
```
3434

3535
This code generates documentation that looks [like this][rc-new]. I've left the
36-
implementation out, with a regular comment in its place. That's the first thing
37-
to notice about this annotation: it uses `///`, instead of `//`. The triple slash
36+
implementation out, with a regular comment in its place.
37+
38+
The first thing to notice about this annotation is that it uses
39+
`///` instead of `//`. The triple slash
3840
indicates a documentation comment.
3941

4042
Documentation comments are written in Markdown.
@@ -375,7 +377,7 @@ $ rustdoc --test path/to/my/crate/root.rs
375377
$ cargo test
376378
```
377379

378-
That's right, `cargo test` tests embedded documentation too. However,
380+
That's right, `cargo test` tests embedded documentation too. However,
379381
`cargo test` will not test binary crates, only library ones. This is
380382
due to the way `rustdoc` works: it links against the library to be tested,
381383
but with a binary, there’s nothing to link to.

tags/homu-tmp/src/doc/trpl/link-args.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Note that this feature is currently hidden behind the `feature(link_args)` gate
1717
because this is not a sanctioned way of performing linking. Right now rustc
1818
shells out to the system linker, so it makes sense to provide extra command line
1919
arguments, but this will not always be the case. In the future rustc may use
20-
LLVM directly to link native libraries in which case `link_args` will have no
20+
LLVM directly to link native libraries, in which case `link_args` will have no
2121
meaning.
2222

2323
It is highly recommended to *not* use this attribute, and rather use the more

tags/homu-tmp/src/etc/snapshot.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,14 @@ def scrub(b):
4141
download_unpack_base = os.path.join(download_dir_base, "unpack")
4242

4343
snapshot_files = {
44+
"bitrig": ["bin/rustc"],
45+
"dragonfly": ["bin/rustc"],
46+
"freebsd": ["bin/rustc"],
4447
"linux": ["bin/rustc"],
4548
"macos": ["bin/rustc"],
46-
"winnt": ["bin/rustc.exe"],
47-
"freebsd": ["bin/rustc"],
48-
"dragonfly": ["bin/rustc"],
49-
"bitrig": ["bin/rustc"],
49+
"netbsd": ["bin/rustc"],
5050
"openbsd": ["bin/rustc"],
51+
"winnt": ["bin/rustc.exe"],
5152
}
5253

5354
winnt_runtime_deps_32 = ["libgcc_s_dw2-1.dll", "libstdc++-6.dll"]
@@ -103,6 +104,8 @@ def get_kernel(triple):
103104
return "dragonfly"
104105
if os_name == "bitrig":
105106
return "bitrig"
107+
if os_name == "netbsd":
108+
return "netbsd"
106109
if os_name == "openbsd":
107110
return "openbsd"
108111
return "linux"

0 commit comments

Comments
 (0)