Skip to content

Commit 880128c

Browse files
committed
---
yaml --- r: 156072 b: refs/heads/try2 c: 8f717ff h: refs/heads/master v: v3
1 parent 09f9cf4 commit 880128c

File tree

345 files changed

+4503
-3314
lines changed

Some content is hidden

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

345 files changed

+4503
-3314
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ refs/heads/snap-stage3: 78a7676898d9f80ab540c6df5d4c9ce35bb50463
55
refs/heads/try: 519addf6277dbafccbb4159db4b710c37eaa2ec5
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
8-
refs/heads/try2: 2c0f87610d8fdcb6a90cd8dd1a372fe0ccc8a418
8+
refs/heads/try2: 8f717ffe60af1911943c7e9483d26bd4b9b73637
99
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503

branches/try2/README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,11 @@ documentation.
1010
3. Enjoy!
1111

1212
> ***Note:*** Windows users can read the detailed
13-
> [using Rust on Windows][win-wiki] notes on the wiki.
13+
> [getting started][wiki-start] notes on the wiki.
1414
1515
[installer]: http://www.rust-lang.org/install.html
1616
[guide]: http://doc.rust-lang.org/guide.html
17+
[wiki-start]: https://github.com/rust-lang/rust/wiki/Note-getting-started-developing-Rust
1718
[win-wiki]: https://github.com/rust-lang/rust/wiki/Using-Rust-on-Windows
1819

1920
## Building from Source

branches/try2/mk/crates.mk

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151

5252
TARGET_CRATES := libc std green native flate arena glob term semver \
5353
uuid serialize sync getopts collections num test time rand \
54-
url log regex graphviz core rbml rlibc alloc rustrt \
54+
url log regex graphviz core rbml rlibc alloc debug rustrt \
5555
unicode
5656
HOST_CRATES := syntax rustc rustdoc fourcc hexfloat regex_macros fmt_macros \
5757
rustc_llvm rustc_back
@@ -63,19 +63,20 @@ DEPS_libc := core
6363
DEPS_rlibc := core
6464
DEPS_unicode := core
6565
DEPS_alloc := core libc native:jemalloc
66+
DEPS_debug := std
6667
DEPS_rustrt := alloc core libc collections native:rustrt_native
6768
DEPS_std := core libc rand alloc collections rustrt sync unicode \
6869
native:rust_builtin native:backtrace
6970
DEPS_graphviz := std
7071
DEPS_green := std native:context_switch
7172
DEPS_native := std
72-
DEPS_syntax := std term serialize log fmt_macros arena libc
73+
DEPS_syntax := std term serialize log fmt_macros debug arena libc
7374
DEPS_rustc := syntax flate arena serialize getopts rbml \
74-
time log graphviz rustc_llvm rustc_back
75+
time log graphviz debug rustc_llvm rustc_back
7576
DEPS_rustc_llvm := native:rustllvm libc std
7677
DEPS_rustc_back := std syntax rustc_llvm flate log libc
7778
DEPS_rustdoc := rustc native:hoedown serialize getopts \
78-
test time
79+
test time debug
7980
DEPS_flate := std native:miniz
8081
DEPS_arena := std
8182
DEPS_graphviz := std

branches/try2/mk/install.mk

Lines changed: 4 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -14,34 +14,16 @@ else
1414
MAYBE_DISABLE_VERIFY=
1515
endif
1616

17-
install:
18-
ifeq (root user, $(USER) $(patsubst %,user,$(SUDO_USER)))
19-
# Build the dist as the original user
20-
$(Q)sudo -u "$$SUDO_USER" $(MAKE) prepare_install
21-
else
22-
$(Q)$(MAKE) prepare_install
23-
endif
17+
install: dist-install-dir-$(CFG_BUILD) | tmp/empty_dir
2418
$(Q)cd tmp/empty_dir && sh ../../tmp/dist/$(PKG_NAME)-$(CFG_BUILD)/install.sh --prefix="$(DESTDIR)$(CFG_PREFIX)" --libdir="$(DESTDIR)$(CFG_LIBDIR)" --mandir="$(DESTDIR)$(CFG_MANDIR)" "$(MAYBE_DISABLE_VERIFY)"
25-
# Remove tmp files because it's a decent amount of disk space
19+
# Remove tmp files while we can because they may have been created under sudo
2620
$(Q)rm -R tmp/dist
2721

28-
prepare_install: dist-install-dir-$(CFG_BUILD) | tmp/empty_dir
29-
30-
uninstall:
31-
ifeq (root user, $(USER) $(patsubst %,user,$(SUDO_USER)))
32-
# Build the dist as the original user
33-
$(Q)sudo -u "$$SUDO_USER" $(MAKE) prepare_uninstall
34-
else
35-
$(Q)$(MAKE) prepare_uninstall
36-
endif
22+
uninstall: dist-install-dir-$(CFG_BUILD) | tmp/empty_dir
3723
$(Q)cd tmp/empty_dir && sh ../../tmp/dist/$(PKG_NAME)-$(CFG_BUILD)/install.sh --uninstall --prefix="$(DESTDIR)$(CFG_PREFIX)" --libdir="$(DESTDIR)$(CFG_LIBDIR)" --mandir="$(DESTDIR)$(CFG_MANDIR)"
38-
# Remove tmp files because it's a decent amount of disk space
24+
# Remove tmp files while we can because they may have been created under sudo
3925
$(Q)rm -R tmp/dist
4026

41-
prepare_uninstall: dist-install-dir-$(CFG_BUILD) | tmp/empty_dir
42-
43-
.PHONY: install prepare_install uninstall prepare_uninstall
44-
4527
tmp/empty_dir:
4628
mkdir -p $@
4729

branches/try2/mk/tests.mk

Lines changed: 4 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -199,29 +199,14 @@ check-docs: cleantestlibs cleantmptestlogs check-stage2-docs
199199

200200
# Some less critical tests that are not prone to breakage.
201201
# Not run as part of the normal test suite, but tested by bors on checkin.
202-
check-secondary: check-build-compiletest check-lexer check-pretty
202+
check-secondary: check-lexer check-pretty
203203

204204
# check + check-secondary.
205-
#
206-
# Issue #17883: build check-secondary first so hidden dependencies in
207-
# e.g. building compiletest are exercised (resolve those by adding
208-
# deps to rules that need them; not by putting `check` first here).
209-
check-all: check-secondary check
205+
check-all: check check-secondary
210206

211207
# Pretty-printing tests.
212208
check-pretty: check-stage2-T-$(CFG_BUILD)-H-$(CFG_BUILD)-pretty-exec
213209

214-
define DEF_CHECK_BUILD_COMPILETEST_FOR_STAGE
215-
check-stage$(1)-build-compiletest: $$(HBIN$(1)_H_$(CFG_BUILD))/compiletest$$(X_$(CFG_BUILD))
216-
endef
217-
218-
$(foreach stage,$(STAGES), \
219-
$(eval $(call DEF_CHECK_BUILD_COMPILETEST_FOR_STAGE,$(stage))))
220-
221-
check-build-compiletest: \
222-
check-stage1-build-compiletest \
223-
check-stage2-build-compiletest
224-
225210
.PHONY: cleantmptestlogs cleantestlibs
226211

227212
cleantmptestlogs:
@@ -299,7 +284,7 @@ tidy:
299284
| xargs -n 10 $(CFG_PYTHON) $(S)src/etc/tidy.py
300285
$(Q)echo $(ALL_HS) \
301286
| xargs -n 10 $(CFG_PYTHON) $(S)src/etc/tidy.py
302-
$(Q)find $(S)src -type f -perm +a+x \
287+
$(Q)find $(S)src -type f -perm a+x \
303288
-not -name '*.rs' -and -not -name '*.py' \
304289
-and -not -name '*.sh' \
305290
| grep '^$(S)src/jemalloc' -v \
@@ -735,13 +720,6 @@ PRETTY_DEPS_pretty-rpass-full = $(RPASS_FULL_TESTS)
735720
PRETTY_DEPS_pretty-rfail = $(RFAIL_TESTS)
736721
PRETTY_DEPS_pretty-bench = $(BENCH_TESTS)
737722
PRETTY_DEPS_pretty-pretty = $(PRETTY_TESTS)
738-
# The stage- and host-specific dependencies are for e.g. macro_crate_test which pulls in
739-
# external crates.
740-
PRETTY_DEPS$(1)_H_$(3)_pretty-rpass =
741-
PRETTY_DEPS$(1)_H_$(3)_pretty-rpass-full = $$(HLIB$(1)_H_$(3))/stamp.syntax $$(HLIB$(1)_H_$(3))/stamp.rustc
742-
PRETTY_DEPS$(1)_H_$(3)_pretty-rfail =
743-
PRETTY_DEPS$(1)_H_$(3)_pretty-bench =
744-
PRETTY_DEPS$(1)_H_$(3)_pretty-pretty =
745723
PRETTY_DIRNAME_pretty-rpass = run-pass
746724
PRETTY_DIRNAME_pretty-rpass-full = run-pass-fulldeps
747725
PRETTY_DIRNAME_pretty-rfail = run-fail
@@ -760,8 +738,7 @@ check-stage$(1)-T-$(2)-H-$(3)-$(4)-exec: $$(call TEST_OK_FILE,$(1),$(2),$(3),$(4
760738

761739
$$(call TEST_OK_FILE,$(1),$(2),$(3),$(4)): \
762740
$$(TEST_SREQ$(1)_T_$(2)_H_$(3)) \
763-
$$(PRETTY_DEPS_$(4)) \
764-
$$(PRETTY_DEPS$(1)_H_$(3)_$(4))
741+
$$(PRETTY_DEPS_$(4))
765742
@$$(call E, run pretty-rpass [$(2)]: $$<)
766743
$$(Q)$$(call CFG_RUN_CTEST_$(2),$(1),$$<,$(3)) \
767744
$$(PRETTY_ARGS$(1)-T-$(2)-H-$(3)-$(4)) \

branches/try2/src/compiletest/errors.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ pub fn load_errors(re: &Regex, testfile: &Path) -> Vec<ExpectedError> {
3131
fn parse_expected(line_num: uint, line: &str, re: &Regex) -> Option<ExpectedError> {
3232
re.captures(line).and_then(|caps| {
3333
let adjusts = caps.name("adjusts").len();
34-
let kind = caps.name("kind").to_ascii().to_lowercase().into_string();
34+
let kind = caps.name("kind").to_ascii().to_lower().into_string();
3535
let msg = caps.name("msg").trim().to_string();
3636

3737
debug!("line={} kind={} msg={}", line_num, kind, msg);

branches/try2/src/compiletest/runtest.rs

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -947,12 +947,15 @@ fn check_expected_errors(expected_errors: Vec<errors::ExpectedError> ,
947947
String::from_chars(c.as_slice())
948948
}
949949

950-
#[cfg(windows)]
950+
#[cfg(target_os = "windows")]
951951
fn prefix_matches( line : &str, prefix : &str ) -> bool {
952952
to_lower(line).as_slice().starts_with(to_lower(prefix).as_slice())
953953
}
954954

955-
#[cfg(unix)]
955+
#[cfg(any(target_os = "linux",
956+
target_os = "macos",
957+
target_os = "freebsd",
958+
target_os = "dragonfly"))]
956959
fn prefix_matches( line : &str, prefix : &str ) -> bool {
957960
line.starts_with( prefix )
958961
}
@@ -1353,23 +1356,26 @@ fn program_output(config: &Config, testfile: &Path, lib_path: &str, prog: String
13531356
}
13541357

13551358
// Linux and mac don't require adjusting the library search path
1356-
#[cfg(unix)]
1359+
#[cfg(any(target_os = "linux",
1360+
target_os = "macos",
1361+
target_os = "freebsd",
1362+
target_os = "dragonfly"))]
13571363
fn make_cmdline(_libpath: &str, prog: &str, args: &[String]) -> String {
13581364
format!("{} {}", prog, args.connect(" "))
13591365
}
13601366

1361-
#[cfg(windows)]
1367+
#[cfg(target_os = "windows")]
13621368
fn make_cmdline(libpath: &str, prog: &str, args: &[String]) -> String {
1363-
1364-
// Build the LD_LIBRARY_PATH variable as it would be seen on the command line
1365-
// for diagnostic purposes
1366-
fn lib_path_cmd_prefix(path: &str) -> String {
1367-
format!("{}=\"{}\"", util::lib_path_env_var(), util::make_new_path(path))
1368-
}
1369-
13701369
format!("{} {} {}", lib_path_cmd_prefix(libpath), prog, args.connect(" "))
13711370
}
13721371

1372+
// Build the LD_LIBRARY_PATH variable as it would be seen on the command line
1373+
// for diagnostic purposes
1374+
#[cfg(target_os = "windows")]
1375+
fn lib_path_cmd_prefix(path: &str) -> String {
1376+
format!("{}=\"{}\"", util::lib_path_env_var(), util::make_new_path(path))
1377+
}
1378+
13731379
fn dump_output(config: &Config, testfile: &Path, out: &str, err: &str) {
13741380
dump_output_file(config, testfile, out, "out");
13751381
dump_output_file(config, testfile, err, "err");

branches/try2/src/doc/README.md

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
# Rust documentations
2-
3-
## Dependencies
1+
# Dependencies
42

53
[Pandoc](http://johnmacfarlane.net/pandoc/installing.html), a universal
64
document converter, is required to generate docs as HTML from Rust's
@@ -12,7 +10,7 @@ docs from the master (English) docs.
1210
[GNU gettext](http://www.gnu.org/software/gettext/) is required for managing
1311
the translation data.
1412

15-
## Building
13+
# Building
1614

1715
To generate all the docs, just run `make docs` from the root of the repository.
1816
This will convert the distributed Markdown docs to HTML and generate HTML doc
@@ -26,7 +24,7 @@ rustdoc --output html-doc/ --output-format html ../src/libstd/path.rs
2624

2725
(This, of course, requires a working build of the `rustdoc` tool.)
2826

29-
## Additional notes
27+
# Additional notes
3028

3129
To generate an HTML version of a doc from Markdown manually, you can do
3230
something like:
@@ -35,39 +33,37 @@ something like:
3533
pandoc --from=markdown --to=html5 --number-sections -o reference.html reference.md
3634
~~~~
3735

38-
(`reference.md` being the Rust Reference Manual.)
36+
(reference.md being the Rust Reference Manual.)
3937

4038
The syntax for pandoc flavored markdown can be found at:
41-
42-
- http://johnmacfarlane.net/pandoc/README.html#pandocs-markdown
39+
http://johnmacfarlane.net/pandoc/README.html#pandocs-markdown
4340

4441
A nice quick reference (for non-pandoc markdown) is at:
42+
http://kramdown.rubyforge.org/quickref.html
4543

46-
- http://kramdown.gettalong.org/quickref.html
47-
48-
## Notes for translators
44+
# Notes for translators
4945

5046
Notice: The procedure described below is a work in progress. We are working on
5147
translation system but the procedure contains some manual operations for now.
5248

53-
To start the translation for a new language, see `po4a.conf` at first.
49+
To start the translation for a new language, see po4a.conf at first.
5450

55-
To generate `.pot` and `.po` files, do something like:
51+
To generate .pot and .po files, do something like:
5652

5753
~~~~
5854
po4a --copyright-holder="The Rust Project Developers" \
5955
--package-name="Rust" \
60-
--package-version="0.13.0" \
56+
--package-version="0.11.0" \
6157
-M UTF-8 -L UTF-8 \
6258
src/doc/po4a.conf
6359
~~~~
6460

65-
(the version number must be changed if it is not `0.13.0` now.)
61+
(the version number must be changed if it is not 0.11.0 now.)
6662

67-
Now you can translate documents with `.po` files, commonly used with gettext. If
63+
Now you can translate documents with .po files, commonly used with gettext. If
6864
you are not familiar with gettext-based translation, please read the online
6965
manual linked from http://www.gnu.org/software/gettext/ . We use UTF-8 as the
70-
file encoding of `.po` files.
66+
file encoding of .po files.
7167

7268
When you want to make a commit, do the command below before staging your
7369
change:
@@ -83,4 +79,4 @@ for f in src/doc/po/**/*.po; do
8379
done
8480
~~~~
8581

86-
This removes untranslated entries from `.po` files to save disk space.
82+
This removes untranslated entries from .po files to save disk space.

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,7 @@ fn main() {
298298
C code:
299299

300300
~~~~c
301-
typedef void (*rust_callback)(void*, int32_t);
301+
typedef void (*rust_callback)(int32_t);
302302
void* cb_target;
303303
rust_callback cb;
304304

branches/try2/src/doc/guide-strings.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,5 +206,5 @@ Many more bytes than graphemes!
206206

207207
# Other Documentation
208208

209-
* [the `&str` API documentation](std/str/index.html)
209+
* [the `&str` API documentation](/std/str/index.html)
210210
* [the `String` API documentation](std/string/index.html)

branches/try2/src/doc/guide-tasks.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ concurrency: particularly, ownership. The language leaves the implementation
4141
details to the standard library.
4242

4343
The `spawn` function has a very simple type signature: `fn spawn(f: proc():
44-
Send)`. Because it accepts only procs, and procs contain only owned data,
44+
Send)`. Because it accepts only procs, and procs contain only owned data,
4545
`spawn` can safely move the entire proc and all its associated state into an
4646
entirely different task for execution. Like any closure, the function passed to
4747
`spawn` may capture an environment that it carries across tasks.
@@ -213,7 +213,7 @@ println!("fib(50) = {}", delayed_fib.get())
213213
# }
214214
```
215215

216-
The call to `future::spawn` immediately returns a `future` object regardless of
216+
The call to `future::spawn` returns immediately a `future` object regardless of
217217
how long it takes to run `fib(50)`. You can then make yourself a sandwich while
218218
the computation of `fib` is running. The result of the execution of the method
219219
is obtained by calling `get` on the future. This call will block until the
@@ -297,7 +297,7 @@ let numbers_arc = Arc::new(numbers);
297297
```
298298

299299
and a clone is captured for each task via a procedure. This only copies
300-
the wrapper and not its contents. Within the task's procedure, the captured
300+
the wrapper and not it's contents. Within the task's procedure, the captured
301301
Arc reference can be used as a shared reference to the underlying vector as
302302
if it were local.
303303

@@ -323,20 +323,20 @@ Rust has a built-in mechanism for raising exceptions. The `fail!()` macro
323323
(which can also be written with an error string as an argument: `fail!(
324324
~reason)`) and the `assert!` construct (which effectively calls `fail!()` if a
325325
boolean expression is false) are both ways to raise exceptions. When a task
326-
raises an exception, the task unwinds its stackrunning destructors and
327-
freeing memory along the wayand then exits. Unlike exceptions in C++,
326+
raises an exception the task unwinds its stack---running destructors and
327+
freeing memory along the way---and then exits. Unlike exceptions in C++,
328328
exceptions in Rust are unrecoverable within a single task: once a task fails,
329329
there is no way to "catch" the exception.
330330

331331
While it isn't possible for a task to recover from failure, tasks may notify
332332
each other of failure. The simplest way of handling task failure is with the
333-
`try` function, which is similar to `spawn`, but immediately blocks and waits
334-
for the child task to finish. `try` returns a value of type
335-
`Result<T, Box<Any + Send>>`. `Result` is an `enum` type with two variants:
336-
`Ok` and `Err`. In this case, because the type arguments to `Result` are `int`
337-
and `()`, callers can pattern-match on a result to check whether it's an `Ok`
338-
result with an `int` field (representing a successful result) or an `Err` result
339-
(representing termination with an error).
333+
`try` function, which is similar to `spawn`, but immediately blocks waiting for
334+
the child task to finish. `try` returns a value of type `Result<T, Box<Any +
335+
Send>>`. `Result` is an `enum` type with two variants: `Ok` and `Err`. In this
336+
case, because the type arguments to `Result` are `int` and `()`, callers can
337+
pattern-match on a result to check whether it's an `Ok` result with an `int`
338+
field (representing a successful result) or an `Err` result (representing
339+
termination with an error).
340340

341341
```{rust}
342342
# use std::task;
@@ -369,4 +369,4 @@ the entire program (perhaps you're writing an assert which, if it trips,
369369
indicates an unrecoverable logic error); in other cases you might want to
370370
contain the failure at a certain boundary (perhaps a small piece of input from
371371
the outside world, which you happen to be processing in parallel, is malformed
372-
such that the processing task cannot proceed).
372+
and its processing task can't proceed).

0 commit comments

Comments
 (0)