Skip to content

Commit 4230162

Browse files
committed
---
yaml --- r: 234934 b: refs/heads/stable c: 0f6d4aa h: refs/heads/master v: v3
1 parent e99b56f commit 4230162

File tree

153 files changed

+6021
-5537
lines changed

Some content is hidden

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

153 files changed

+6021
-5537
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ refs/heads/tmp: afae2ff723393b3ab4ccffef6ac7c6d1809e2da0
2929
refs/tags/1.0.0-alpha.2: 4c705f6bc559886632d3871b04f58aab093bfa2f
3030
refs/tags/homu-tmp: f859507de8c410b648d934d8f5ec1c52daac971d
3131
refs/tags/1.0.0-beta: 8cbb92b53468ee2b0c2d3eeb8567005953d40828
32-
refs/heads/stable: 04daae77be0c74a5df6076b3b0c3a121e464fedf
32+
refs/heads/stable: 0f6d4aa786e565c91df2f361dfb3bee5b202bdca
3333
refs/tags/1.0.0: 55bd4f8ff2b323f317ae89e254ce87162d52a375
3434
refs/tags/1.1.0: bc3c16f09287e5545c1d3f76b7abd54f2eca868b
3535
refs/tags/1.2.0: f557861f822c34f07270347b94b5280de20a597e

branches/stable/RELEASES.md

Lines changed: 14 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,3 @@
1-
Version 1.2.0 (August 2015)
2-
===========================
3-
4-
Highlights
5-
----------
6-
7-
* [Parallel codegen][parcodegen] is now working again, which can substantially
8-
speed up large builds in debug mode; It also gets another ~33% speedup when
9-
bootstrapping on a 4 core machine (using 8 jobs). It's not enabled by default,
10-
but will be "in the near future"
11-
12-
13-
[parcodegen]: https://github.com/rust-lang/rust/pull/26018
14-
15-
161
Version 1.1.0 (June 2015)
172
=========================
183

@@ -21,28 +6,29 @@ Version 1.1.0 (June 2015)
216
Highlights
227
----------
238

24-
* The [`std::fs` module has been expanded][fs] to expand the set of
9+
* The [`std::fs` module has been expanded][fs-expand] to expand the set of
2510
functionality exposed:
2611
* `DirEntry` now supports optimizations like `file_type` and `metadata` which
2712
don't incur a syscall on some platforms.
2813
* A `symlink_metadata` function has been added.
2914
* The `fs::Metadata` structure now lowers to its OS counterpart, providing
3015
access to all underlying information.
31-
* The compiler now contains extended explanations of many errors. When an error
32-
with an explanation occurs the compiler suggests using the `--explain` flag
33-
to read the explanation. Error explanations are also [available online][err-index].
16+
* The compiler contains extended explanations of many errors. When it
17+
emits such an error it also suggests using the `--explain` flag to
18+
read the extended explanations, which are also [cataloged on the web
19+
site][err].
3420
* Thanks to multiple [improvements][sk] to [type checking][pre], as
3521
well as other work, the time to bootstrap the compiler decreased by
3622
32%.
3723

3824
Libraries
3925
---------
4026

41-
* The [`str::split_whitespace`] method splits a string on unicode
27+
* The `str::split_whitespace` method splits a string on unicode
4228
whitespace boundaries.
4329
* On both Windows and Unix, new extension traits provide conversion of
4430
I/O types to and from the underlying system handles. On Unix, these
45-
traits are [`FromRawFd`] and [`AsRawFd`], on Windows `FromRawHandle`
31+
traits are [`FrowRawFd`] and [`AsRawFd`], on Windows `FromRawHandle`
4632
and `AsRawHandle`. These are implemented for `File`, `TcpStream`,
4733
`TcpListener`, and `UpdSocket`. Further implementations for
4834
`std::process` will be stabilized later.
@@ -94,14 +80,15 @@ Misc
9480
* [The `drop_with_repr_extern` lint warns about mixing `repr(C)`
9581
with `Drop`][drop].
9682

97-
[`str::split_whitespace`]: http://doc.rust-lang.org/nightly/std/primitive.str.html#method.split_whitespace
83+
[`split_whitespace`]: http://doc.rust-lang.org/nightly/std/primitive.str.html#method.split_whitespace
84+
[`Iterator::cloned`]: http://doc.rust-lang.org/nightly/core/iter/trait.Iterator.html#method.cloned
9885
[`FromRawFd`]: http://doc.rust-lang.org/nightly/std/os/unix/io/trait.FromRawFd.html
9986
[`AsRawFd`]: http://doc.rust-lang.org/nightly/std/os/unix/io/trait.AsRawFd.html
10087
[`std::os::unix::symlink`]: http://doc.rust-lang.org/nightly/std/os/unix/fs/fn.symlink.html
10188
[`IntoIterator`]: http://doc.rust-lang.org/nightly/std/iter/trait.IntoIterator.html
10289
[`From`]: http://doc.rust-lang.org/nightly/std/convert/trait.From.html
10390
[rf]: https://github.com/rust-lang/rust/pull/24491
104-
[err-index]: http://doc.rust-lang.org/error-index.html
91+
[err]: http://doc.rust-lang.org/error-index.html
10592
[sk]: https://github.com/rust-lang/rust/pull/24615
10693
[pre]: https://github.com/rust-lang/rust/pull/25323
10794
[file]: https://github.com/rust-lang/rust/pull/24598
@@ -264,6 +251,7 @@ Misc
264251
[sw]: https://github.com/rust-lang/rfcs/blob/master/text/1054-str-words.md
265252
[th]: https://github.com/rust-lang/rfcs/blob/master/text/0909-move-thread-local-to-std-thread.md
266253
[send-rfc]: https://github.com/rust-lang/rfcs/blob/master/text/0458-send-improvements.md
254+
[scoped]: http://static.rust-lang.org/doc/master/std/thread/fn.scoped.html
267255
[moar-ufcs]: https://github.com/rust-lang/rust/pull/22172
268256
[prim-inherent]: https://github.com/rust-lang/rust/pull/23104
269257
[overflow]: https://github.com/rust-lang/rfcs/blob/master/text/0560-integer-overflow.md
@@ -273,10 +261,12 @@ Misc
273261
[string-pattern]: https://github.com/rust-lang/rust/pull/22466
274262
[oibit-final]: https://github.com/rust-lang/rust/pull/21689
275263
[reflect]: https://github.com/rust-lang/rust/pull/23712
264+
[debug-builder]: https://github.com/rust-lang/rfcs/blob/master/text/0640-debug-improvements.md
276265
[conversion]: https://github.com/rust-lang/rfcs/pull/529
277266
[num-traits]: https://github.com/rust-lang/rust/pull/23549
278267
[index-value]: https://github.com/rust-lang/rust/pull/23601
279268
[dropck]: https://github.com/rust-lang/rfcs/pull/769
269+
[fundamental]: https://github.com/rust-lang/rfcs/pull/1023
280270
[ci-compare]: https://gist.github.com/brson/a30a77836fbec057cbee
281271
[fn-inherit]: https://github.com/rust-lang/rust/pull/23282
282272
[fn-blanket]: https://github.com/rust-lang/rust/pull/23895
@@ -379,6 +369,7 @@ Version 1.0.0-alpha.2 (February 2015)
379369
[osstr]: https://github.com/rust-lang/rust/pull/21488
380370
[osstr-rfc]: https://github.com/rust-lang/rfcs/blob/master/text/0517-io-os-reform.md
381371
[Self]: https://github.com/rust-lang/rust/pull/22158
372+
[ufcs]: https://github.com/rust-lang/rust/pull/21077
382373
[ufcs-rfc]: https://github.com/rust-lang/rfcs/blob/master/text/0132-ufcs.md
383374
[un]: https://github.com/rust-lang/rust/pull/22256
384375

branches/stable/configure

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -899,18 +899,6 @@ then
899899
fi
900900
fi
901901

902-
# If the clang isn't already enabled, check for GCC, and if it is missing, turn
903-
# on clang as a backup.
904-
if [ -z "$CFG_ENABLE_CLANG" ]
905-
then
906-
CFG_GCC_VERSION=$("$CFG_GCC" --version 2>&1)
907-
if [ $? -ne 0 ]
908-
then
909-
step_msg "GCC not installed, will try using Clang"
910-
CFG_ENABLE_CLANG=1
911-
fi
912-
fi
913-
914902
# Okay, at this point, we have made up our minds about whether we are
915903
# going to force CFG_ENABLE_CLANG or not; save the setting if so.
916904
if [ ! -z "$CFG_ENABLE_CLANG" ]
@@ -932,7 +920,7 @@ then
932920
LLVM_VERSION=$($LLVM_CONFIG --version)
933921

934922
case $LLVM_VERSION in
935-
(3.[5-7]*)
923+
(3.[5-6]*)
936924
msg "found ok version of LLVM: $LLVM_VERSION"
937925
;;
938926
(*)
@@ -1049,14 +1037,6 @@ for target_file in ${CFG_SRC_DIR}mk/cfg/*.mk; do
10491037
CFG_SUPPORTED_TARGET="${CFG_SUPPORTED_TARGET} $(basename "$target_file" .mk)"
10501038
done
10511039

1052-
# copy build-triples to host-triples so that builds are a subset of hosts
1053-
V_TEMP=""
1054-
for i in $CFG_BUILD $CFG_HOST;
1055-
do
1056-
echo "$V_TEMP" | grep -qF $i || V_TEMP="$V_TEMP${V_TEMP:+ }$i"
1057-
done
1058-
CFG_HOST=$V_TEMP
1059-
10601040
# copy host-triples to target-triples so that hosts are a subset of targets
10611041
V_TEMP=""
10621042
for i in $CFG_HOST $CFG_TARGET;

branches/stable/mk/cfg/x86_64-pc-windows-msvc.mk

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,64 @@ CFG_RUN_x86_64-pc-windows-msvc=$(2)
2323
CFG_RUN_TARG_x86_64-pc-windows-msvc=$(call CFG_RUN_x86_64-pc-windows-msvc,,$(2))
2424
CFG_GNU_TRIPLE_x86_64-pc-windows-msvc := x86_64-pc-win32
2525

26+
# These two environment variables are scraped by the `./configure` script and
27+
# are necessary for `cl.exe` to find standard headers (the INCLUDE variable) and
28+
# for `link.exe` to find standard libraries (the LIB variable).
29+
ifdef CFG_MSVC_INCLUDE_PATH
30+
export INCLUDE := $(CFG_MSVC_INCLUDE_PATH)
31+
endif
32+
ifdef CFG_MSVC_LIB_PATH
33+
export LIB := $(CFG_MSVC_LIB_PATH)
34+
endif
35+
36+
# Unfortunately `link.exe` is also a program in `/usr/bin` on MinGW installs,
37+
# but it's not the one that we want. As a result we make sure that our detected
38+
# `link.exe` shows up in PATH first.
39+
ifdef CFG_MSVC_LINK
40+
export PATH := $(CFG_MSVC_ROOT)/VC/bin/amd64:$(PATH)
41+
endif
42+
43+
# There are more comments about this available in the target specification for
44+
# Windows MSVC in the compiler, but the gist of it is that we use `llvm-ar.exe`
45+
# instead of `lib.exe` for assembling archives, so we need to inject this custom
46+
# dependency here.
47+
NATIVE_TOOL_DEPS_core_T_x86_64-pc-windows-msvc += llvm-ar.exe
48+
INSTALLED_BINS_x86_64-pc-windows-msvc += llvm-ar.exe
49+
50+
# When working with MSVC on windows, each DLL needs to explicitly declare its
51+
# interface to the outside world through some means. The options for doing so
52+
# include:
53+
#
54+
# 1. A custom attribute on each function itself
55+
# 2. A linker argument saying what to export
56+
# 3. A file which lists all symbols that need to be exported
57+
#
58+
# The Rust compiler takes care (1) for us for all Rust code by annotating all
59+
# public-facing functions with dllexport, but we have a few native dependencies
60+
# which need to cross the DLL boundary. The most important of these dependencies
61+
# is LLVM which is linked into `rustc_llvm.dll` but primarily used from
62+
# `rustc_trans.dll`. This means that many of LLVM's C API functions need to be
63+
# exposed from `rustc_llvm.dll` to be forwarded over the boundary.
64+
#
65+
# Unfortunately, at this time, LLVM does not handle this sort of exportation on
66+
# Windows for us, so we're forced to do it ourselves if we want it (which seems
67+
# like the path of least resistance right now). To do this we generate a `.DEF`
68+
# file [1] which we then custom-pass to the linker when building the rustc_llvm
69+
# crate. This DEF file list all symbols that are exported from
70+
# `src/librustc_llvm/lib.rs` and is generated by a small python script.
71+
#
72+
# Fun times!
73+
#
74+
# [1]: https://msdn.microsoft.com/en-us/library/28d6s79h.aspx
75+
RUSTFLAGS_rustc_llvm_T_x86_64-pc-windows-msvc += \
76+
-C link-args="-DEF:x86_64-pc-windows-msvc/rt/rustc_llvm.def"
77+
CUSTOM_DEPS_rustc_llvm_T_x86_64-pc-windows-msvc += \
78+
x86_64-pc-windows-msvc/rt/rustc_llvm.def
79+
80+
x86_64-pc-windows-msvc/rt/rustc_llvm.def: $(S)src/etc/mklldef.py \
81+
$(S)src/librustc_llvm/lib.rs
82+
$(CFG_PYTHON) $^ $@ rustc_llvm-$(CFG_FILENAME_EXTRA)
83+
2684
# All windows nightiles are currently a GNU triple, so this MSVC triple is not
2785
# bootstrapping from itself. This is relevant during stage0, and other parts of
2886
# the build system take this into account.

branches/stable/mk/main.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
######################################################################
1414

1515
# The version number
16-
CFG_RELEASE_NUM=1.3.0
16+
CFG_RELEASE_NUM=1.2.0
1717

1818
# An optional number to put after the label, e.g. '.2' -> '-beta.2'
1919
# NB Make sure it starts with a dot to conform to semver pre-release

branches/stable/mk/platform.mk

Lines changed: 0 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -238,72 +238,3 @@ endef
238238

239239
$(foreach target,$(CFG_TARGET), \
240240
$(eval $(call CFG_MAKE_TOOLCHAIN,$(target))))
241-
242-
# These two environment variables are scraped by the `./configure` script and
243-
# are necessary for `cl.exe` to find standard headers (the INCLUDE variable) and
244-
# for `link.exe` to find standard libraries (the LIB variable).
245-
ifdef CFG_MSVC_INCLUDE_PATH
246-
export INCLUDE := $(CFG_MSVC_INCLUDE_PATH)
247-
endif
248-
ifdef CFG_MSVC_LIB_PATH
249-
export LIB := $(CFG_MSVC_LIB_PATH)
250-
endif
251-
252-
# Unfortunately `link.exe` is also a program in `/usr/bin` on MinGW installs,
253-
# but it's not the one that we want. As a result we make sure that our detected
254-
# `link.exe` shows up in PATH first.
255-
ifdef CFG_MSVC_LINK
256-
export PATH := $(CFG_MSVC_ROOT)/VC/bin/amd64:$(PATH)
257-
endif
258-
259-
# There are more comments about this available in the target specification for
260-
# Windows MSVC in the compiler, but the gist of it is that we use `llvm-ar.exe`
261-
# instead of `lib.exe` for assembling archives, so we need to inject this custom
262-
# dependency here.
263-
define ADD_LLVM_AR_TO_MSVC_DEPS
264-
ifeq ($$(findstring msvc,$(1)),msvc)
265-
NATIVE_TOOL_DEPS_core_T_$(1) += llvm-ar.exe
266-
INSTALLED_BINS_$(1) += llvm-ar.exe
267-
endif
268-
endef
269-
270-
$(foreach target,$(CFG_TARGET), \
271-
$(eval $(call ADD_LLVM_AR_TO_MSVC_DEPS,$(target))))
272-
273-
# When working with MSVC on windows, each DLL needs to explicitly declare its
274-
# interface to the outside world through some means. The options for doing so
275-
# include:
276-
#
277-
# 1. A custom attribute on each function itself
278-
# 2. A linker argument saying what to export
279-
# 3. A file which lists all symbols that need to be exported
280-
#
281-
# The Rust compiler takes care (1) for us for all Rust code by annotating all
282-
# public-facing functions with dllexport, but we have a few native dependencies
283-
# which need to cross the DLL boundary. The most important of these dependencies
284-
# is LLVM which is linked into `rustc_llvm.dll` but primarily used from
285-
# `rustc_trans.dll`. This means that many of LLVM's C API functions need to be
286-
# exposed from `rustc_llvm.dll` to be forwarded over the boundary.
287-
#
288-
# Unfortunately, at this time, LLVM does not handle this sort of exportation on
289-
# Windows for us, so we're forced to do it ourselves if we want it (which seems
290-
# like the path of least resistance right now). To do this we generate a `.DEF`
291-
# file [1] which we then custom-pass to the linker when building the rustc_llvm
292-
# crate. This DEF file list all symbols that are exported from
293-
# `src/librustc_llvm/lib.rs` and is generated by a small python script.
294-
#
295-
# Fun times!
296-
#
297-
# [1]: https://msdn.microsoft.com/en-us/library/28d6s79h.aspx
298-
define ADD_RUSTC_LLVM_DEF_TO_MSVC
299-
ifeq ($$(findstring msvc,$(1)),msvc)
300-
RUSTFLAGS_rustc_llvm_T_$(1) += -C link-args="-DEF:$(1)/rt/rustc_llvm.def"
301-
CUSTOM_DEPS_rustc_llvm_T_$(1) += $(1)/rt/rustc_llvm.def
302-
303-
$(1)/rt/rustc_llvm.def: $$(S)src/etc/mklldef.py $$(S)src/librustc_llvm/lib.rs
304-
$$(CFG_PYTHON) $$^ $$@ rustc_llvm-$$(CFG_FILENAME_EXTRA)
305-
endif
306-
endef
307-
308-
$(foreach target,$(CFG_TARGET), \
309-
$(eval $(call ADD_RUSTC_LLVM_DEF_TO_MSVC,$(target))))

branches/stable/mk/rt.mk

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,9 @@ NATIVE_DEPS_hoedown_$(1) := hoedown/src/autolink.c \
5353
NATIVE_DEPS_miniz_$(1) = miniz.c
5454
NATIVE_DEPS_rust_builtin_$(1) := rust_builtin.c \
5555
rust_android_dummy.c
56-
NATIVE_DEPS_rustrt_native_$(1) := arch/$$(HOST_$(1))/record_sp.S
57-
ifeq ($$(findstring msvc,$(1)),msvc)
58-
NATIVE_DEPS_rustrt_native_$(1) += rust_try_msvc_64.ll
59-
else
60-
NATIVE_DEPS_rustrt_native_$(1) += rust_try.ll
61-
endif
56+
NATIVE_DEPS_rustrt_native_$(1) := \
57+
rust_try.ll \
58+
arch/$$(HOST_$(1))/record_sp.S
6259
NATIVE_DEPS_rust_test_helpers_$(1) := rust_test_helpers.c
6360
NATIVE_DEPS_morestack_$(1) := arch/$$(HOST_$(1))/morestack.S
6461

branches/stable/src/doc/style/features/traits/generics.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ explicitly implement to be used by this generic function.
2929
explicit conversions or other method calls would usually be necessary. See the
3030
[overloading/implicits use case](#use-case:-limited-overloading-and/or-implicit-conversions)
3131
below.
32-
* _Precise types_. Because generics give a _name_ to the specific type
32+
* _Precise types_. Because generic give a _name_ to the specific type
3333
implementing a trait, it is possible to be precise about places where that
3434
exact type is required or produced. For example, a function
3535

branches/stable/src/doc/trpl/academic-research.md

Lines changed: 2 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -42,32 +42,5 @@ Recommended for inspiration and a better understanding of Rust's background.
4242

4343
### Papers *about* Rust
4444

45-
* [GPU Programming in Rust: Implementing High Level Abstractions in a
46-
Systems Level
47-
Language](http://www.cs.indiana.edu/~eholk/papers/hips2013.pdf). Early GPU work by Eric Holk.
48-
* [Parallel closures: a new twist on an old
49-
idea](https://www.usenix.org/conference/hotpar12/parallel-closures-new-twist-old-idea)
50-
- not exactly about rust, but by nmatsakis
51-
* [Patina: A Formalization of the Rust Programming
52-
Language](ftp://ftp.cs.washington.edu/tr/2015/03/UW-CSE-15-03-02.pdf). Early
53-
formalization of a subset of the type system, by Eric Reed.
54-
* [Experience Report: Developing the Servo Web Browser Engine using
55-
Rust](http://arxiv.org/abs/1505.07383). By Lars Bergstrom.
56-
* [Implementing a Generic Radix Trie in
57-
Rust](https://michaelsproul.github.io/rust_radix_paper/rust-radix-sproul.pdf). Undergrad
58-
paper by Michael Sproul.
59-
* [Reenix: Implementing a Unix-Like Operating System in
60-
Rust](http://scialex.github.io/reenix.pdf). Undergrad paper by Alex
61-
Light.
62-
* [Evaluation of performance and productivity metrics of potential
63-
programming languages in the HPC environment](). Bachelor's thesis by
64-
Florian Wilkens. Compares C, Go and Rust.
65-
* [Nom, a byte oriented, streaming, zero copy, parser combinators library
66-
in Rust](http://spw15.langsec.org/papers/couprie-nom.pdf). By
67-
Geoffroy Couprie, research for VLC.
68-
* [Graph-Based Higher-Order Intermediate
69-
Representation](http://compilers.cs.uni-saarland.de/papers/lkh15_cgo.pdf). An
70-
experimental IR implemented in Impala, a Rust-like language.
71-
* [Code Refinement of Stencil
72-
Codes](http://compilers.cs.uni-saarland.de/papers/ppl14_web.pdf). Another
73-
paper using Impala.
45+
* [GPU programming in Rust](http://www.cs.indiana.edu/~eholk/papers/hips2013.pdf)
46+
* [Parallel closures: a new twist on an old idea](https://www.usenix.org/conference/hotpar12/parallel-closures-new-twist-old-idea) - not exactly about rust, but by nmatsakis

branches/stable/src/doc/trpl/documentation.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ we could have added more explanation in a new paragraph.
102102
#### Special sections
103103

104104
Next, are special sections. These are indicated with a header, `#`. There
105-
are four kinds of headers that are commonly used. They aren't special syntax,
105+
are three kinds of headers that are commonly used. They aren't special syntax,
106106
just convention, for now.
107107

108108
```rust
@@ -144,7 +144,7 @@ responsible for upholding.
144144
# fn foo() {}
145145
```
146146

147-
Fourth, `Examples`. Include one or more examples of using your function or
147+
Third, `Examples`. Include one or more examples of using your function or
148148
method, and your users will love you for it. These examples go inside of
149149
code block annotations, which we'll talk about in a moment, and can have
150150
more than one section:

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -309,8 +309,8 @@ and invokes callbacks from there.
309309
In these cases access to Rust data structures inside the callbacks is
310310
especially unsafe and proper synchronization mechanisms must be used.
311311
Besides classical synchronization mechanisms like mutexes, one possibility in
312-
Rust is to use channels (in `std::sync::mpsc`) to forward data from the C
313-
thread that invoked the callback into a Rust thread.
312+
Rust is to use channels (in `std::comm`) to forward data from the C thread
313+
that invoked the callback into a Rust thread.
314314
315315
If an asynchronous callback targets a special object in the Rust address space
316316
it is also absolutely necessary that no more callbacks are performed by the

0 commit comments

Comments
 (0)