Skip to content

Commit 1bb4d8a

Browse files
committed
---
yaml --- r: 102285 b: refs/heads/master c: 123eb4e h: refs/heads/master i: 102283: faa0be6 v: v3
1 parent 4bcded0 commit 1bb4d8a

File tree

124 files changed

+3853
-2246
lines changed

Some content is hidden

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

124 files changed

+3853
-2246
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
refs/heads/master: 5d825def29ba347c4f99d25a131981b632780516
2+
refs/heads/master: 123eb4ebea695f724a2375a73db53b91273e5ce0
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: 6e7f170fedd3c526a643c0b2d13863acd982be02
55
refs/heads/try: a97642026c18a624ff6ea01075dd9550f8ed07ff

trunk/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 \

trunk/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

trunk/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

trunk/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

trunk/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

trunk/src/doc/tutorial.md

Lines changed: 17 additions & 6 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

trunk/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) }

trunk/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/

trunk/src/etc/pkg/Distribution.xml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?xml version="1.0" encoding="utf-8" standalone="no"?>
2+
<installer-gui-script minSpecVersion="2">
3+
<title>Rust</title>
4+
<license file="LICENSE.txt" mime-type="text/plain"/>
5+
<pkg-ref id="org.rust-lang.rust"/>
6+
<options customize="never" require-scripts="false" hostArchitectures="i386,x86_64"/>
7+
<volume-check>
8+
<allowed-os-versions>
9+
<os-version min="10.7"/>
10+
</allowed-os-versions>
11+
</volume-check>
12+
<choices-outline>
13+
<line choice="default">
14+
<line choice="org.rust-lang.rust"/>
15+
</line>
16+
</choices-outline>
17+
<choice id="default"/>
18+
<choice id="org.rust-lang.rust" visible="false">
19+
<pkg-ref id="org.rust-lang.rust"/>
20+
</choice>
21+
<pkg-ref id="org.rust-lang.rust" version="0" onConclusion="none">rust.pkg</pkg-ref>
22+
</installer-gui-script>

trunk/src/etc/vim/ftplugin/rust.vim

Lines changed: 53 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
" Vim syntax file
22
" Language: Rust
33
" Maintainer: Chris Morgan <[email protected]>
4-
" Last Change: 2013 Jul 10
4+
" Last Change: 2014 Feb 27
55

66
if exists("b:did_ftplugin")
77
finish
@@ -42,4 +42,55 @@ if exists("g:loaded_delimitMate")
4242
let b:delimitMate_excluded_regions = delimitMate#Get("excluded_regions") . ',rustLifetimeCandidate,rustGenericLifetimeCandidate'
4343
endif
4444

45-
let b:undo_ftplugin = "setlocal formatoptions< comments< commentstring< includeexpr< suffixesadd< | if exists('b:rust_original_delimitMate_excluded_regions') | let b:delimitMate_excluded_regions = b:rust_original_delimitMate_excluded_regions | unlet b:rust_original_delimitMate_excluded_regions | elseif exists('b:delimitMate_excluded_regions') | unlet b:delimitMate_excluded_regions | endif"
45+
" Bind motion commands to support hanging indents
46+
nnoremap <silent> <buffer> [[ :call <SID>Rust_Jump('n', 'Back')<CR>
47+
nnoremap <silent> <buffer> ]] :call <SID>Rust_Jump('n', 'Forward')<CR>
48+
xnoremap <silent> <buffer> [[ :call <SID>Rust_Jump('v', 'Back')<CR>
49+
xnoremap <silent> <buffer> ]] :call <SID>Rust_Jump('v', 'Forward')<CR>
50+
onoremap <silent> <buffer> [[ :call <SID>Rust_Jump('o', 'Back')<CR>
51+
onoremap <silent> <buffer> ]] :call <SID>Rust_Jump('o', 'Forward')<CR>
52+
53+
let b:undo_ftplugin = "
54+
\setlocal formatoptions< comments< commentstring< includeexpr< suffixesadd<
55+
\|if exists('b:rust_original_delimitMate_excluded_regions')
56+
\|let b:delimitMate_excluded_regions = b:rust_original_delimitMate_excluded_regions
57+
\|unlet b:rust_original_delimitMate_excluded_regions
58+
\|elseif exists('b:delimitMate_excluded_regions')
59+
\|unlet b:delimitMate_excluded_regions
60+
\|endif
61+
\|nunmap <buffer> [[
62+
\|nunmap <buffer> ]]
63+
\|xunmap <buffer> [[
64+
\|xunmap <buffer> ]]
65+
\|ounmap <buffer> [[
66+
\|ounmap <buffer> ]]
67+
\"
68+
69+
if exists('*<SID>Rust_Jump') | finish | endif
70+
71+
function! <SID>Rust_Jump(mode, function) range
72+
let cnt = v:count1
73+
normal! m'
74+
if a:mode ==# 'v'
75+
norm! gv
76+
endif
77+
let foldenable = &foldenable
78+
set nofoldenable
79+
while cnt > 0
80+
execute "call <SID>Rust_Jump_" . a:function . "()"
81+
let cnt = cnt - 1
82+
endwhile
83+
let &foldenable = foldenable
84+
endfunction
85+
86+
function! <SID>Rust_Jump_Back()
87+
call search('{', 'b')
88+
keepjumps normal! w99[{
89+
endfunction
90+
91+
function! <SID>Rust_Jump_Forward()
92+
normal! j0
93+
call search('{', 'b')
94+
keepjumps normal! w99[{%
95+
call search('{')
96+
endfunction

0 commit comments

Comments
 (0)