Skip to content

Commit 7cff1ba

Browse files
committed
---
yaml --- r: 101272 b: refs/heads/snap-stage3 c: 11ca7ec h: refs/heads/master v: v3
1 parent 3d68890 commit 7cff1ba

File tree

225 files changed

+4768
-2736
lines changed

Some content is hidden

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

225 files changed

+4768
-2736
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: e3b1f3c443c048913e2d573fcc5a9c2be3484a78
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
4-
refs/heads/snap-stage3: b9d3844f49403ca995ea4dcb2b418fd77bc0c43c
4+
refs/heads/snap-stage3: 11ca7ec8cd897d8a036e32641b6b38d48f86d600
55
refs/heads/try: a97642026c18a624ff6ea01075dd9550f8ed07ff
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b

branches/snap-stage3/.travis.yml

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,32 +3,23 @@
33
# it treats unknown languages as ruby-like I believe.
44
language: c
55

6-
# Before we start doing anything, install the latest stock LLVM. These are
7-
# maintained by LLVM, and more information can be found at llvm.org/apt.
8-
#
9-
# Right now, the highest version is 3.5, and our SVN version is roughly aligned
10-
# with the 3.5 API (hurray!)
6+
# Before we start doing anything, install a stock LLVM
117
install:
12-
- sudo sh -c "echo 'deb http://llvm.org/apt/precise/ llvm-toolchain-precise main' >> /etc/apt/sources.list"
13-
- sudo sh -c "echo 'deb-src http://llvm.org/apt/precise/ llvm-toolchain-precise main' >> /etc/apt/sources.list"
14-
- sudo sh -c "echo 'deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu precise main' >> /etc/apt/sources.list"
15-
- wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add -
16-
- sudo apt-get update -qq
17-
- sudo apt-get install -y --force-yes -qq llvm-3.5 llvm-3.5-dev clang-3.5 lldb-3.5
8+
- sudo apt-get install llvm-3.3 llvm-3.3-dev clang-3.3 lldb-3.3
189

19-
# All of the llvm tools are suffixed with "-3.5" which we don't want, so symlink
10+
# All of the llvm tools are suffixed with "-3.3" which we don't want, so symlink
2011
# them all into a local directory and just use that
2112
#
2213
# FIXME: this shouldn't update the src/llvm sub-repo, that takes about a minute
2314
# it's gotta download so much stuff.
2415
before_script:
2516
- mkdir -p local-llvm/bin
26-
- ln -nsf /usr/bin/llvm-config-3.5 local-llvm/bin/llvm-config
27-
- ln -nsf /usr/bin/llvm-mc-3.5 local-llvm/bin/llvm-mc
28-
- ln -nsf /usr/bin/llvm-as-3.5 local-llvm/bin/llvm-as
29-
- ln -nsf /usr/bin/llvm-dis-3.5 local-llvm/bin/llvm-dis
30-
- ln -nsf /usr/bin/llc-3.5 local-llvm/bin/llc
31-
- ln -nsf /usr/include/llvm-3.5 local-llvm/include
17+
- ln -nsf /usr/bin/llvm-config-3.3 local-llvm/bin/llvm-config
18+
- ln -nsf /usr/bin/llvm-mc-3.3 local-llvm/bin/llvm-mc
19+
- ln -nsf /usr/bin/llvm-as-3.3 local-llvm/bin/llvm-as
20+
- ln -nsf /usr/bin/llvm-dis-3.3 local-llvm/bin/llvm-dis
21+
- ln -nsf /usr/bin/llc-3.3 local-llvm/bin/llc
22+
- ln -nsf /usr/include/llvm-3.3 local-llvm/include
3223
- ./configure --disable-optimize-tests --llvm-root=`pwd`/local-llvm --enable-fast-make --enable-clang
3324

3425
# Tidy everything up first, then build a few things, and then run a few tests.

branches/snap-stage3/mk/clean.mk

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ clean-generic-$(2)-$(1):
5858
-name '*.[odasS]' -o \
5959
-name '*.so' -o \
6060
-name '*.dylib' -o \
61+
-name '*.rlib' -o \
6162
-name 'stamp.*' -o \
6263
-name '*.lib' -o \
6364
-name '*.dll' -o \

branches/snap-stage3/mk/crates.mk

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,8 @@ DEPS_test := std extra collections getopts serialize term
8181
DEPS_time := std serialize
8282

8383
TOOL_DEPS_compiletest := test green rustuv getopts
84-
TOOL_DEPS_rustdoc := rustdoc green rustuv
85-
TOOL_DEPS_rustc := rustc green rustuv
84+
TOOL_DEPS_rustdoc := rustdoc native
85+
TOOL_DEPS_rustc := rustc native
8686
TOOL_SOURCE_compiletest := $(S)src/compiletest/compiletest.rs
8787
TOOL_SOURCE_rustdoc := $(S)src/driver/driver.rs
8888
TOOL_SOURCE_rustc := $(S)src/driver/driver.rs

branches/snap-stage3/mk/dist.mk

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ PKG_ICO = $(S)src/etc/pkg/rust-logo.ico
1212
PKG_EXE = $(PKG_DIR)-install.exe
1313
endif
1414

15+
ifeq ($(CFG_OSTYPE), apple-darwin)
16+
PKG_OSX = $(PKG_DIR).pkg
17+
endif
18+
1519
PKG_GITMODULES := $(S)src/libuv $(S)src/llvm $(S)src/gyp $(S)src/compiler-rt
1620

1721
PKG_FILES := \
@@ -41,10 +45,10 @@ PKG_FILES := \
4145

4246
UNROOTED_PKG_FILES := $(patsubst $(S)%,./%,$(PKG_FILES))
4347

44-
ifdef CFG_ISCC
4548
LICENSE.txt: $(S)COPYRIGHT $(S)LICENSE-APACHE $(S)LICENSE-MIT
4649
cat $^ > $@
4750

51+
ifdef CFG_ISCC
4852
%.iss: $(S)src/etc/pkg/%.iss
4953
cp $< $@
5054

@@ -103,7 +107,7 @@ distcheck: dist
103107

104108
else
105109

106-
dist: $(PKG_TAR)
110+
dist: $(PKG_TAR) $(PKG_OSX)
107111

108112
distcheck: $(PKG_TAR)
109113
$(Q)rm -Rf dist
@@ -124,3 +128,31 @@ distcheck: $(PKG_TAR)
124128
@echo -----------------------------------------------
125129

126130
endif
131+
132+
ifeq ($(CFG_OSTYPE), apple-darwin)
133+
134+
dist-prepare-osx: PREPARE_HOST=$(CFG_BUILD)
135+
dist-prepare-osx: PREPARE_TARGETS=$(CFG_BUILD)
136+
dist-prepare-osx: PREPARE_DEST_DIR=tmp/dist/pkgroot
137+
dist-prepare-osx: PREPARE_STAGE=2
138+
dist-prepare-osx: PREPARE_DIR_CMD=$(DEFAULT_PREPARE_DIR_CMD)
139+
dist-prepare-osx: PREPARE_BIN_CMD=$(DEFAULT_PREPARE_BIN_CMD)
140+
dist-prepare-osx: PREPARE_LIB_CMD=$(DEFAULT_PREPARE_LIB_CMD)
141+
dist-prepare-osx: PREPARE_MAN_CMD=$(DEFAULT_PREPARE_MAN_CMD)
142+
dist-prepare-osx: prepare-base
143+
144+
$(PKG_OSX): Distribution.xml LICENSE.txt dist-prepare-osx
145+
@$(call E, making OS X pkg)
146+
$(Q)pkgbuild --identifier org.rust-lang.rust --root tmp/dist/pkgroot rust.pkg
147+
$(Q)productbuild --distribution Distribution.xml --resources . $(PKG_OSX)
148+
$(Q)rm -rf tmp rust.pkg
149+
150+
dist-osx: $(PKG_OSX)
151+
152+
distcheck-osx: $(PKG_OSX)
153+
@echo
154+
@echo -----------------------------------------------
155+
@echo $(PKG_OSX) ready for distribution
156+
@echo -----------------------------------------------
157+
158+
endif

branches/snap-stage3/src/doc/guide-container.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -384,7 +384,7 @@ the trailing underscore is a workaround for issue #5898 and will be removed.
384384
~~~
385385
let mut ys = [1, 2, 3, 4, 5];
386386
ys.mut_iter().reverse_();
387-
assert_eq!(ys, [5, 4, 3, 2, 1]);
387+
assert!(ys == [5, 4, 3, 2, 1]);
388388
~~~
389389

390390
## Random-access iterators

branches/snap-stage3/src/doc/index.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ li {list-style-type: none; }
4242
* [The `sync` library for concurrency-enabled mechanisms and primitives](sync/index.html)
4343
* [The `syntax` library, the Rust parser](syntax/index.html)
4444
* [The `term` terminal-handling library](term/index.html)
45-
* [The `test` library](test/index.html)
45+
* [The `test` library containing the unit-testing & micro-benchmark framework](test/index.html)
46+
* [The `time` library](time/index.html)
4647
* [The `uuid` 128-bit universally unique identifier library](uuid/index.html)
4748

4849
# Tooling

branches/snap-stage3/src/doc/rust.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3256,10 +3256,10 @@ An example of a *recursive* type and its use:
32563256
~~~~
32573257
enum List<T> {
32583258
Nil,
3259-
Cons(T, @List<T>)
3259+
Cons(T, ~List<T>)
32603260
}
32613261
3262-
let a: List<int> = Cons(7, @Cons(13, @Nil));
3262+
let a: List<int> = Cons(7, ~Cons(13, ~Nil));
32633263
~~~~
32643264

32653265
### Pointer types

branches/snap-stage3/src/doc/tutorial.md

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,10 @@ fn main() {
133133
println!("hello?");
134134
}
135135
~~~~
136+
> ***Note:*** An identifier followed by an exclamation point, like
137+
> `println!`, is a macro invocation. Macros are explained
138+
> [later](#syntax-extensions); for now just remember to include the
139+
> exclamation point.
136140
137141
If the Rust compiler was installed successfully, running `rustc
138142
hello.rs` will produce an executable called `hello` (or `hello.exe` on
@@ -1059,7 +1063,7 @@ box, while the owner holds onto a pointer to it:
10591063
list -> | Cons | 1 | ~ | -> | Cons | 2 | ~ | -> | Cons | 3 | ~ | -> | Nil |
10601064
+--------------+ +--------------+ +--------------+ +--------------+
10611065

1062-
> Note: the above diagram shows the logical contents of the enum. The actual
1066+
> ***Note:*** the above diagram shows the logical contents of the enum. The actual
10631067
> memory layout of the enum may vary. For example, for the `List` enum shown
10641068
> above, Rust guarantees that there will be no enum tag field in the actual
10651069
> structure. See the language reference for more details.
@@ -1114,7 +1118,7 @@ let z = x; // no new memory allocated, `x` can no longer be used
11141118
~~~~
11151119

11161120
The `clone` method is provided by the `Clone` trait, and can be derived for
1117-
our `List` type. Traits will be explained in detail later.
1121+
our `List` type. Traits will be explained in detail [later](#traits).
11181122

11191123
~~~{.ignore}
11201124
#[deriving(Clone)]
@@ -1207,8 +1211,8 @@ let ys = Cons(5, ~Cons(10, ~Nil));
12071211
assert!(eq(&xs, &ys));
12081212
~~~
12091213

1210-
Note that Rust doesn't guarantee [tail-call](http://en.wikipedia.org/wiki/Tail_call) optimization,
1211-
but LLVM is able to handle a simple case like this with optimizations enabled.
1214+
> ***Note:*** Rust doesn't guarantee [tail-call](http://en.wikipedia.org/wiki/Tail_call) optimization,
1215+
> but LLVM is able to handle a simple case like this with optimizations enabled.
12121216
12131217
## Lists of other types
12141218

@@ -1218,6 +1222,9 @@ element type.
12181222

12191223
The `u32` in the previous definition can be substituted with a type parameter:
12201224

1225+
> ***Note:*** The following code introduces generics, which are explained in a
1226+
> [dedicated section](#generics).
1227+
12211228
~~~
12221229
enum List<T> {
12231230
Cons(T, ~List<T>),
@@ -1336,10 +1343,14 @@ impl<T: Eq> Eq for List<T> {
13361343
13371344
let xs = Cons(5, ~Cons(10, ~Nil));
13381345
let ys = Cons(5, ~Cons(10, ~Nil));
1346+
// The methods below are part of the Eq trait,
1347+
// which we implemented on our linked list.
13391348
assert!(xs.eq(&ys));
1340-
assert!(xs == ys);
13411349
assert!(!xs.ne(&ys));
1342-
assert!(!(xs != ys));
1350+
1351+
// The Eq trait also allows us to use the shorthand infix operators.
1352+
assert!(xs == ys); // `xs == ys` is short for `xs.eq(&ys)`
1353+
assert!(!(xs != ys)); // `xs != ys` is short for `xs.ne(&ys)`
13431354
~~~
13441355

13451356
# More on boxes
@@ -1677,7 +1688,7 @@ let x = Rc::new([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
16771688
let y = x.clone(); // a new owner
16781689
let z = x; // this moves `x` into `z`, rather than creating a new owner
16791690

1680-
assert_eq!(*z.borrow(), [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
1691+
assert!(*z.borrow() == [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
16811692

16821693
// the variable is mutable, but not the contents of the box
16831694
let mut a = Rc::new([10, 9, 8, 7, 6, 5, 4, 3, 2, 1]);
@@ -1696,7 +1707,7 @@ let x = Gc::new([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
16961707
let y = x; // does not perform a move, unlike with `Rc`
16971708
let z = x;
16981709

1699-
assert_eq!(*z.borrow(), [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
1710+
assert!(*z.borrow() == [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
17001711
~~~
17011712
17021713
With shared ownership, mutability cannot be inherited so the boxes are always immutable. However,

branches/snap-stage3/src/driver/driver.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,15 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11+
#[no_uv];
12+
1113
#[cfg(rustdoc)]
1214
extern crate this = "rustdoc";
1315

1416
#[cfg(rustc)]
1517
extern crate this = "rustc";
1618

17-
fn main() { this::main() }
19+
extern crate native;
20+
21+
#[start]
22+
fn start(argc: int, argv: **u8) -> int { native::start(argc, argv, this::main) }

branches/snap-stage3/src/etc/ctags.rust

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
--langdef=Rust
22
--langmap=Rust:.rs
3-
--regex-Rust=/^[ \t]*(pub[ \t]+)?fn[ \t]+([a-zA-Z0-9_]+)/\2/f,functions,function definitions/
3+
--regex-Rust=/^[ \t]*(#\[[^\]]\][ \t]*)*(pub[ \t]+)?(extern[ \t]+)?("[^"]+"[ \t]+)?(unsafe[ \t]+)?fn[ \t]+([a-zA-Z0-9_]+)/\6/f,functions,function definitions/
44
--regex-Rust=/^[ \t]*(pub[ \t]+)?type[ \t]+([a-zA-Z0-9_]+)/\2/T,types,type definitions/
55
--regex-Rust=/^[ \t]*(pub[ \t]+)?enum[ \t]+([a-zA-Z0-9_]+)/\2/g,enum,enumeration names/
66
--regex-Rust=/^[ \t]*(pub[ \t]+)?struct[ \t]+([a-zA-Z0-9_]+)/\2/s,structure names/

0 commit comments

Comments
 (0)