Skip to content

Commit f81ecd6

Browse files
committed
---
yaml --- r: 171894 b: refs/heads/beta c: 8cebb1f h: refs/heads/master v: v3
1 parent b44518e commit f81ecd6

File tree

823 files changed

+16248
-14514
lines changed

Some content is hidden

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

823 files changed

+16248
-14514
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,5 +31,5 @@ refs/heads/automation-fail: 1bf06495443584539b958873e04cc2f864ab10e4
3131
refs/heads/issue-18208-method-dispatch-3-quick-reject: 2009f85b9f99dedcec4404418eda9ddba90258a2
3232
refs/heads/batch: b5571ed71a5879c0495a982506258d5d267744ed
3333
refs/heads/building: 126db549b038c84269a1e4fe46f051b2c15d6970
34-
refs/heads/beta: 25d5a3a19423fee01787de87a56d185dd4e0a4e7
34+
refs/heads/beta: 8cebb1f64498508e1fc940d885ad05d7a2fb4089
3535
refs/heads/windistfix: 7608dbad651f02e837ed05eef3d74a6662a6e928

branches/beta/CONTRIBUTING.md

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -47,14 +47,5 @@ example, if it's 2014, and you change a Rust file that was created in
4747
// Copyright 2010-2014 The Rust Project Developers.
4848
```
4949

50-
# Coordination and communication
51-
52-
Get feedback from other developers on
53-
[discuss.rust-lang.org][discuss], and
54-
[#rust-internals][pound-rust-internals].
55-
56-
[pound-rust-internals]: http://chat.mibbit.com/?server=irc.mozilla.org&channel=%23rust-internals
57-
[discuss]: http://discuss.rust-lang.org
58-
5950
For more details, please refer to
6051
[Note-development-policy](https://github.com/rust-lang/rust/wiki/Note-development-policy).

branches/beta/man/rustc.1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ Specify the name of the crate being built
3434
\fB\-\-emit\fR [asm|llvm-bc|llvm-ir|obj|link|dep-info]
3535
Configure the output that rustc will produce
3636
.TP
37-
\fB\-\-print\fR [crate-name|file-names|sysroot]
37+
\fB\-\-print\fR [crate-name|output-file-names|sysroot]
3838
Comma separated list of compiler information to print on stdout
3939
.TP
4040
\fB\-g\fR

branches/beta/mk/crates.mk

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,12 @@
5050
################################################################################
5151

5252
TARGET_CRATES := libc std flate arena term \
53-
serialize getopts collections test rand \
53+
serialize getopts collections test time rand \
5454
log regex graphviz core rbml alloc \
5555
unicode
5656
RUSTC_CRATES := rustc rustc_typeck rustc_borrowck rustc_resolve rustc_driver \
5757
rustc_trans rustc_back rustc_llvm
58-
HOST_CRATES := syntax $(RUSTC_CRATES) rustdoc fmt_macros
58+
HOST_CRATES := syntax $(RUSTC_CRATES) rustdoc regex_macros fmt_macros
5959
CRATES := $(TARGET_CRATES) $(HOST_CRATES)
6060
TOOLS := compiletest rustdoc rustc
6161

@@ -75,11 +75,11 @@ DEPS_rustc_typeck := rustc syntax
7575
DEPS_rustc_borrowck := rustc log graphviz syntax
7676
DEPS_rustc_resolve := rustc log syntax
7777
DEPS_rustc := syntax flate arena serialize getopts rbml \
78-
log graphviz rustc_llvm rustc_back
78+
time log graphviz rustc_llvm rustc_back
7979
DEPS_rustc_llvm := native:rustllvm libc std
8080
DEPS_rustc_back := std syntax rustc_llvm flate log libc
8181
DEPS_rustdoc := rustc rustc_driver native:hoedown serialize getopts \
82-
test
82+
test time
8383
DEPS_flate := std native:miniz
8484
DEPS_arena := std
8585
DEPS_graphviz := std
@@ -90,10 +90,12 @@ DEPS_term := std log
9090
DEPS_getopts := std
9191
DEPS_collections := core alloc unicode
9292
DEPS_num := std
93-
DEPS_test := std getopts serialize rbml term regex native:rust_test_helpers
93+
DEPS_test := std getopts serialize rbml term time regex native:rust_test_helpers
94+
DEPS_time := std serialize
9495
DEPS_rand := core
9596
DEPS_log := std regex
9697
DEPS_regex := std
98+
DEPS_regex_macros = rustc syntax std regex
9799
DEPS_fmt_macros = std
98100

99101
TOOL_DEPS_compiletest := test getopts
@@ -122,8 +124,10 @@ DOC_CRATES := $(filter-out rustc, \
122124
$(filter-out rustc_driver, \
123125
$(filter-out log, \
124126
$(filter-out regex, \
127+
$(filter-out regex_macros, \
125128
$(filter-out getopts, \
126-
$(filter-out syntax, $(CRATES)))))))))))
129+
$(filter-out time, \
130+
$(filter-out syntax, $(CRATES)))))))))))))
127131
COMPILER_DOC_CRATES := rustc rustc_trans rustc_borrowck rustc_resolve \
128132
rustc_typeck rustc_driver syntax
129133

branches/beta/mk/docs.mk

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,8 @@ RUSTDOC_HTML_OPTS_NO_CSS = --html-before-content=doc/version_info.html \
4949
RUSTDOC_HTML_OPTS = $(RUSTDOC_HTML_OPTS_NO_CSS) --markdown-css rust.css
5050

5151
PANDOC_BASE_OPTS := --standalone --toc --number-sections
52-
PANDOC_TEX_OPTS = $(PANDOC_BASE_OPTS) --from=markdown --to=latex \
53-
--include-before-body=doc/version.tex \
54-
--include-before-body=doc/footer.tex \
55-
--include-in-header=doc/uptack.tex
52+
PANDOC_TEX_OPTS = $(PANDOC_BASE_OPTS) --include-before-body=doc/version.tex \
53+
--from=markdown --include-before-body=doc/footer.tex --to=latex
5654
PANDOC_EPUB_OPTS = $(PANDOC_BASE_OPTS) --to=epub
5755

5856
# The rustdoc executable...
@@ -157,9 +155,6 @@ doc/footer.tex: $(D)/footer.inc | doc/
157155
@$(call E, pandoc: $@)
158156
$(CFG_PANDOC) --from=html --to=latex $< --output=$@
159157

160-
doc/uptack.tex: $(D)/uptack.tex | doc/
161-
$(Q)cp $< $@
162-
163158
# HTML (rustdoc)
164159
DOC_TARGETS += doc/not_found.html
165160
doc/not_found.html: $(D)/not_found.md $(HTML_DEPS) | doc/
@@ -185,7 +180,7 @@ doc/$(1).epub: $$(D)/$(1).md | doc/
185180

186181
# PDF (md =(pandoc)=> tex =(pdflatex)=> pdf)
187182
DOC_TARGETS += doc/$(1).tex
188-
doc/$(1).tex: $$(D)/$(1).md doc/uptack.tex doc/footer.tex doc/version.tex | doc/
183+
doc/$(1).tex: $$(D)/$(1).md doc/footer.tex doc/version.tex | doc/
189184
@$$(call E, pandoc: $$@)
190185
$$(CFG_PANDOC) $$(PANDOC_TEX_OPTS) $$< --output=$$@
191186

branches/beta/mk/grammar.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ $(BG)RustLexer.class: $(BG) $(SG)RustLexer.g4
3737
check-build-lexer-verifier: $(BG)verify
3838

3939
ifeq ($(NO_REBUILD),)
40-
VERIFY_DEPS := rustc-stage2-H-$(CFG_BUILD) $(LD)stamp.rustc
40+
VERIFY_DEPS := rustc-stage2-H-$(CFG_BUILD) $(LD)stamp.regex_macros $(LD)stamp.rustc
4141
else
4242
VERIFY_DEPS :=
4343
endif

branches/beta/mk/install.mk

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,11 @@ endif
2828
# Remove tmp files because it's a decent amount of disk space
2929
$(Q)rm -R tmp/dist
3030

31-
prepare_install: dist-tar-bins | tmp/empty_dir
31+
ifeq ($(CFG_DISABLE_DOCS),)
32+
prepare_install: dist/$(PKG_NAME)-$(CFG_BUILD).tar.gz dist/$(DOC_PKG_NAME)-$(CFG_BUILD).tar.gz | tmp/empty_dir
33+
else
34+
prepare_install: dist/$(PKG_NAME)-$(CFG_BUILD).tar.gz | tmp/empty_dir
35+
endif
3236

3337
uninstall:
3438
ifeq (root user, $(USER) $(patsubst %,user,$(SUDO_USER)))
@@ -44,7 +48,7 @@ endif
4448
# Remove tmp files because it's a decent amount of disk space
4549
$(Q)rm -R tmp/dist
4650

47-
prepare_uninstall: dist-tar-bins | tmp/empty_dir
51+
prepare_uninstall: dist/$(PKG_NAME)-$(CFG_BUILD).tar.gz | tmp/empty_dir
4852

4953
.PHONY: install prepare_install uninstall prepare_uninstall
5054

branches/beta/mk/tests.mk

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,6 +373,15 @@ TESTDEP_$(1)_$(2)_$(3)_$(4) = $$(SREQ$(1)_T_$(2)_H_$(3)) \
373373
$$(TLIB$(1)_T_$(2)_H_$(3))/stamp.$$(crate)) \
374374
$$(CRATE_FULLDEPS_$(1)_T_$(2)_H_$(3)_$(4))
375375

376+
# The regex crate depends on the regex_macros crate during testing, but it
377+
# notably depend on the *host* regex_macros crate, not the target version.
378+
# Additionally, this is not a dependency in stage1, only in stage2.
379+
ifeq ($(4),regex)
380+
ifneq ($(1),1)
381+
TESTDEP_$(1)_$(2)_$(3)_$(4) += $$(TLIB$(1)_T_$(3)_H_$(3))/stamp.regex_macros
382+
endif
383+
endif
384+
376385
else
377386
TESTDEP_$(1)_$(2)_$(3)_$(4) = $$(RSINPUTS_$(4))
378387
endif
@@ -834,8 +843,27 @@ else
834843
CRATEDOCTESTDEP_$(1)_$(2)_$(3)_$(4) = $$(RSINPUTS_$(4))
835844
endif
836845

846+
# (Issues #13732, #13983, #14000) The doc for the regex crate includes
847+
# uses of the `regex!` macro from the regex_macros crate. There is
848+
# normally a dependence injected that makes the target's regex depend
849+
# upon the host's regex_macros (see #13845), but that dependency
850+
# injection is currently skipped for stage1 as a special case.
851+
#
852+
# Therefore, as a further special case, this conditional skips
853+
# attempting to run the doc tests for the regex crate atop stage1,
854+
# (since there is no regex_macros crate for the stage1 rustc to load).
855+
#
856+
# (Another approach for solving this would be to inject the desired
857+
# dependence for stage1 as well, by setting things up to generate a
858+
# regex_macros crate that was compatible with the stage1 rustc and
859+
# thus re-enable our ability to run this test.)
860+
ifeq (stage$(1)-crate-$(4),stage1-crate-regex)
861+
check-stage$(1)-T-$(2)-H-$(3)-doc-crate-$(4)-exec:
862+
@$$(call E, skipping doc-crate-$(4) as it uses macros and cannot run at stage$(1))
863+
else
837864
check-stage$(1)-T-$(2)-H-$(3)-doc-crate-$(4)-exec: \
838865
$$(call TEST_OK_FILE,$(1),$(2),$(3),doc-crate-$(4))
866+
endif
839867

840868
ifeq ($(2),$$(CFG_BUILD))
841869
$$(call TEST_OK_FILE,$(1),$(2),$(3),doc-crate-$(4)): $$(CRATEDOCTESTDEP_$(1)_$(2)_$(3)_$(4))

branches/beta/src/compiletest/common.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ use std::fmt;
1313
use std::str::FromStr;
1414
use regex::Regex;
1515

16-
#[derive(Clone, PartialEq)]
16+
#[deriving(Clone, PartialEq)]
1717
pub enum Mode {
1818
CompileFail,
1919
RunFail,
@@ -59,7 +59,7 @@ impl fmt::Show for Mode {
5959
}
6060
}
6161

62-
#[derive(Clone)]
62+
#[deriving(Clone)]
6363
pub struct Config {
6464
// The library paths required for running the compiler
6565
pub compile_lib_path: String,

branches/beta/src/compiletest/compiletest.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ extern crate regex;
2222
use std::os;
2323
use std::io;
2424
use std::io::fs;
25-
use std::str::FromStr;
25+
use std::str::{FromStr, from_str};
2626
use std::thunk::Thunk;
2727
use getopts::{optopt, optflag, reqopt};
2828
use common::Config;
@@ -339,9 +339,8 @@ pub fn is_test(config: &Config, testfile: &Path) -> bool {
339339
return valid;
340340
}
341341

342-
pub fn make_test<F>(config: &Config, testfile: &Path, f: F) -> test::TestDescAndFn where
343-
F: FnOnce() -> test::TestFn,
344-
{
342+
pub fn make_test(config: &Config, testfile: &Path, f: || -> test::TestFn)
343+
-> test::TestDescAndFn {
345344
test::TestDescAndFn {
346345
desc: test::TestDesc {
347346
name: make_test_name(config, testfile),

branches/beta/src/compiletest/errors.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ pub struct ExpectedError {
3030
pub static EXPECTED_PATTERN : &'static str =
3131
r"//~(?P<follow>\|)?(?P<adjusts>\^*)\s*(?P<kind>\S*)\s*(?P<msg>.*)";
3232

33-
#[derive(PartialEq, Show)]
33+
#[deriving(PartialEq, Show)]
3434
enum WhichLine { ThisLine, FollowPrevious(uint), AdjustBackward(uint) }
3535

3636
// Load any test directives embedded in the file

branches/beta/src/compiletest/header.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -220,9 +220,7 @@ pub fn is_test_ignored(config: &Config, testfile: &Path) -> bool {
220220
!val
221221
}
222222

223-
fn iter_header<F>(testfile: &Path, mut it: F) -> bool where
224-
F: FnMut(&str) -> bool,
225-
{
223+
fn iter_header(testfile: &Path, it: |&str| -> bool) -> bool {
226224
use std::io::{BufferedReader, File};
227225

228226
let mut rdr = BufferedReader::new(File::open(testfile).unwrap());

branches/beta/src/compiletest/runtest.rs

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1233,14 +1233,12 @@ enum TargetLocation {
12331233
ThisDirectory(Path),
12341234
}
12351235

1236-
fn make_compile_args<F>(config: &Config,
1237-
props: &TestProps,
1238-
extras: Vec<String> ,
1239-
xform: F,
1240-
testfile: &Path)
1241-
-> ProcArgs where
1242-
F: FnOnce(&Config, &Path) -> TargetLocation,
1243-
{
1236+
fn make_compile_args(config: &Config,
1237+
props: &TestProps,
1238+
extras: Vec<String> ,
1239+
xform: |&Config, &Path| -> TargetLocation,
1240+
testfile: &Path)
1241+
-> ProcArgs {
12441242
let xform_file = xform(config, testfile);
12451243
let target = if props.force_host {
12461244
config.host.as_slice()

branches/beta/src/doc/complement-lang-faq.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Some examples that demonstrate different aspects of the language:
1717
* [sprocketnes], an NES emulator with no GC, using modern Rust conventions
1818
* The language's general-purpose [hash] function, SipHash-2-4. Bit twiddling, OO, macros
1919
* The standard library's [HashMap], a sendable hash map in an OO style
20-
* The standard library's [json] module. Enums and pattern matching
20+
* The extra library's [json] module. Enums and pattern matching
2121

2222
[sprocketnes]: https://github.com/pcwalton/sprocketnes
2323
[hash]: https://github.com/rust-lang/rust/blob/master/src/libstd/hash/mod.rs

branches/beta/src/doc/guide-ffi.md

Lines changed: 23 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -451,7 +451,7 @@ them.
451451
~~~no_run
452452
extern crate libc;
453453
454-
use std::ffi::CString;
454+
use std::c_str::ToCStr;
455455
use std::ptr;
456456
457457
#[link(name = "readline")]
@@ -460,10 +460,11 @@ extern {
460460
}
461461
462462
fn main() {
463-
let prompt = CString::from_slice(b"[my-awesome-shell] $");
464-
unsafe { rl_prompt = prompt.as_ptr(); }
465-
// get a line, process it
466-
unsafe { rl_prompt = ptr::null(); }
463+
"[my-awesome-shell] $".with_c_str(|buf| {
464+
unsafe { rl_prompt = buf; }
465+
// get a line, process it
466+
unsafe { rl_prompt = ptr::null(); }
467+
});
467468
}
468469
~~~
469470
@@ -508,28 +509,23 @@ to define a block for all windows systems, not just x86 ones.
508509
509510
# Interoperability with foreign code
510511
511-
Rust guarantees that the layout of a `struct` is compatible with the platform's
512-
representation in C only if the `#[repr(C)]` attribute is applied to it.
513-
`#[repr(C, packed)]` can be used to lay out struct members without padding.
514-
`#[repr(C)]` can also be applied to an enum.
515-
516-
Rust's owned boxes (`Box<T>`) use non-nullable pointers as handles which point
517-
to the contained object. However, they should not be manually created because
518-
they are managed by internal allocators. References can safely be assumed to be
519-
non-nullable pointers directly to the type. However, breaking the borrow
520-
checking or mutability rules is not guaranteed to be safe, so prefer using raw
521-
pointers (`*`) if that's needed because the compiler can't make as many
522-
assumptions about them.
523-
524-
Vectors and strings share the same basic memory layout, and utilities are
525-
available in the `vec` and `str` modules for working with C APIs. However,
526-
strings are not terminated with `\0`. If you need a NUL-terminated string for
527-
interoperability with C, you should use the `CString` type in the `std::ffi`
528-
module.
529-
530-
The standard library includes type aliases and function definitions for the C
531-
standard library in the `libc` module, and Rust links against `libc` and `libm`
532-
by default.
512+
Rust guarantees that the layout of a `struct` is compatible with the platform's representation in C
513+
only if the `#[repr(C)]` attribute is applied to it. `#[repr(C, packed)]` can be used to lay out
514+
struct members without padding. `#[repr(C)]` can also be applied to an enum.
515+
516+
Rust's owned boxes (`Box<T>`) use non-nullable pointers as handles which point to the contained
517+
object. However, they should not be manually created because they are managed by internal
518+
allocators. References can safely be assumed to be non-nullable pointers directly to the type.
519+
However, breaking the borrow checking or mutability rules is not guaranteed to be safe, so prefer
520+
using raw pointers (`*`) if that's needed because the compiler can't make as many assumptions about
521+
them.
522+
523+
Vectors and strings share the same basic memory layout, and utilities are available in the `vec` and
524+
`str` modules for working with C APIs. However, strings are not terminated with `\0`. If you need a
525+
NUL-terminated string for interoperability with C, you should use the `c_str::to_c_str` function.
526+
527+
The standard library includes type aliases and function definitions for the C standard library in
528+
the `libc` module, and Rust links against `libc` and `libm` by default.
533529
534530
# The "nullable pointer optimization"
535531

0 commit comments

Comments
 (0)