Skip to content

Commit 789cf6e

Browse files
committed
---
yaml --- r: 110271 b: refs/heads/try c: 02d186a h: refs/heads/master i: 110269: 5f4a674 110267: 8974182 110263: a09e8d1 110255: 80b5d2f 110239: c2a5c5c 110207: 5111019 v: v3
1 parent 36c3dec commit 789cf6e

File tree

355 files changed

+1598
-1236
lines changed

Some content is hidden

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

355 files changed

+1598
-1236
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
refs/heads/master: e415c25bcd81dc1f9a5a3d25d9b48ed2d545336b
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: c7fac4471201977fdb1c0c0a26c87287e12dc644
5-
refs/heads/try: bec333c4bc9d414c7f393adfdb8d8ab2d394bb37
5+
refs/heads/try: 02d186ad9ba699f7824969fb60a19042613d5d60
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
88
refs/heads/try2: 147ecfdd8221e4a4d4e090486829a06da1e0ca3c

branches/try/configure

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -384,6 +384,7 @@ opt pax-flags 0 "apply PaX flags to rustc binaries (required for GRSecurity/PaX-
384384
opt inject-std-version 1 "inject the current compiler version of libstd into programs"
385385
opt rpath 1 "build rpaths into rustc itself"
386386
opt nightly 0 "build nightly packages"
387+
opt verify-install 1 "verify installed binaries work"
387388
valopt prefix "/usr/local" "set installation prefix"
388389
valopt local-rust-root "/usr/local" "set prefix for local rust binary"
389390
valopt llvm-root "" "set LLVM root"

branches/try/mk/docs.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ ifeq ($(CFG_LLNEXTGEN),)
232232
else
233233
.PHONY: verify-grammar
234234

235-
doc/rust.g: rust.md $(S)src/etc/extract_grammar.py
235+
doc/rust.g: $(D)/rust.md $(S)src/etc/extract_grammar.py
236236
@$(call E, extract_grammar: $@)
237237
$(Q)$(CFG_PYTHON) $(S)src/etc/extract_grammar.py $< >$@
238238

branches/try/mk/install.mk

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,21 @@
88
# option. This file may not be copied, modified, or distributed
99
# except according to those terms.
1010

11+
ifdef CFG_DISABLE_VERIFY_INSTALL
12+
MAYBE_DISABLE_VERIFY=--disable-verify
13+
else
14+
MAYBE_DISABLE_VERIFY=
15+
endif
1116

1217
install: dist-install-dir-$(CFG_BUILD)
13-
$(Q)sh tmp/dist/$(PKG_NAME)-$(CFG_BUILD)/install.sh --prefix="$(CFG_PREFIX)" --libdir="$(CFG_LIBDIR)" --mandir="$(CFG_MANDIR)"
18+
$(Q)sh tmp/dist/$(PKG_NAME)-$(CFG_BUILD)/install.sh --prefix="$(DESTDIR)$(CFG_PREFIX)" --libdir="$(DESTDIR)$(CFG_LIBDIR)" --mandir="$(DESTDIR)$(CFG_MANDIR)" "$(MAYBE_DISABLE_VERIFY)"
1419
# Remove tmp files while we can because they may have been created under sudo
1520
$(Q)rm -R tmp/dist/$(PKG_NAME)-$(CFG_BUILD)
1621

1722
uninstall: dist-install-dir-$(CFG_BUILD)
18-
$(Q)sh tmp/dist/$(PKG_NAME)-$(CFG_BUILD)/install.sh --uninstall --prefix="$(CFG_PREFIX)" --libdir="$(CFG_LIBDIR)" --mandir="$(CFG_MANDIR)"
23+
$(Q)sh tmp/dist/$(PKG_NAME)-$(CFG_BUILD)/install.sh --uninstall --prefix="$(DESTDIR)$(CFG_PREFIX)" --libdir="$(DESTDIR)$(CFG_LIBDIR)" --mandir="$(DESTDIR)$(CFG_MANDIR)"
24+
# Remove tmp files while we can because they may have been created under sudo
25+
$(Q)rm -R tmp/dist/$(PKG_NAME)-$(CFG_BUILD)
1926

2027

2128
######################################################################

branches/try/src/compiletest/compiletest.rs

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

11-
#[crate_type = "bin"];
12-
#[feature(phase)];
11+
#![crate_type = "bin"]
12+
#![feature(phase)]
1313

14-
#[allow(non_camel_case_types)];
15-
#[deny(warnings)];
14+
#![allow(non_camel_case_types)]
15+
#![deny(warnings)]
1616

1717
extern crate test;
1818
extern crate getopts;

branches/try/src/doc/rust.md

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ Some productions are defined by exclusion of particular Unicode characters:
153153
~~~~ {.notrust .ebnf .gram}
154154
comment : block_comment | line_comment ;
155155
block_comment : "/*" block_comment_body * '*' + '/' ;
156-
block_comment_body : (block_comment | character) * ;
156+
block_comment_body : [block_comment | character] * ;
157157
line_comment : "//" non_eol * ;
158158
~~~~
159159

@@ -205,6 +205,7 @@ The keywords are the following strings:
205205
~~~~ {.notrust .keyword}
206206
as
207207
break
208+
crate
208209
do
209210
else enum extern
210211
false fn for
@@ -496,16 +497,16 @@ All of the above extensions are expressions with values.
496497
## Macros
497498

498499
~~~~ {.notrust .ebnf .gram}
499-
expr_macro_rules : "macro_rules" '!' ident '(' macro_rule * ')'
500-
macro_rule : '(' matcher * ')' "=>" '(' transcriber * ')' ';'
500+
expr_macro_rules : "macro_rules" '!' ident '(' macro_rule * ')' ;
501+
macro_rule : '(' matcher * ')' "=>" '(' transcriber * ')' ';' ;
501502
matcher : '(' matcher * ')' | '[' matcher * ']'
502503
| '{' matcher * '}' | '$' ident ':' ident
503504
| '$' '(' matcher * ')' sep_token? [ '*' | '+' ]
504-
| non_special_token
505+
| non_special_token ;
505506
transcriber : '(' transcriber * ')' | '[' transcriber * ']'
506507
| '{' transcriber * '}' | '$' ident
507508
| '$' '(' transcriber * ')' sep_token? [ '*' | '+' ]
508-
| non_special_token
509+
| non_special_token ;
509510
~~~~
510511

511512
User-defined syntax extensions are called "macros",
@@ -802,7 +803,7 @@ use_decl : "pub" ? "use" ident [ '=' path
802803
803804
path_glob : ident [ "::" path_glob ] ?
804805
| '*'
805-
| '{' ident [ ',' ident ] * '}'
806+
| '{' ident [ ',' ident ] * '}' ;
806807
~~~~
807808

808809
A _use declaration_ creates one or more local name bindings synonymous
@@ -1457,7 +1458,7 @@ impl Seq<bool> for u32 {
14571458
### External blocks
14581459

14591460
~~~~ {.notrust .ebnf .gram}
1460-
extern_block_item : "extern" '{' extern_block '} ;
1461+
extern_block_item : "extern" '{' extern_block '}' ;
14611462
extern_block : [ foreign_fn ] * ;
14621463
~~~~
14631464

@@ -1683,7 +1684,7 @@ import public items from their destination, not private items.
16831684

16841685
~~~~ {.notrust .ebnf .gram}
16851686
attribute : '#' '[' attr_list ']' ;
1686-
attr_list : attr [ ',' attr_list ]*
1687+
attr_list : attr [ ',' attr_list ]* ;
16871688
attr : ident [ '=' literal
16881689
| '(' attr_list ')' ] ? ;
16891690
~~~~
@@ -2331,7 +2332,7 @@ struct_expr : expr_path '{' ident ':' expr
23312332
[ ".." expr ] '}' |
23322333
expr_path '(' expr
23332334
[ ',' expr ] * ')' |
2334-
expr_path
2335+
expr_path ;
23352336
~~~~
23362337

23372338
There are several forms of structure expressions.
@@ -2382,7 +2383,7 @@ Point3d {y: 0, z: 10, .. base};
23822383
~~~~ {.notrust .ebnf .gram}
23832384
block_expr : '{' [ view_item ] *
23842385
[ stmt ';' | item ] *
2385-
[ expr ] '}'
2386+
[ expr ] '}' ;
23862387
~~~~
23872388

23882389
A _block expression_ is similar to a module in terms of the declarations that
@@ -2409,7 +2410,7 @@ or dynamically dispatching if the left-hand-side expression is an indirect [obje
24092410
### Field expressions
24102411

24112412
~~~~ {.notrust .ebnf .gram}
2412-
field_expr : expr '.' ident
2413+
field_expr : expr '.' ident ;
24132414
~~~~
24142415

24152416
A _field expression_ consists of an expression followed by a single dot and an identifier,
@@ -2431,9 +2432,9 @@ it is automatically dereferenced to make the field access possible.
24312432
### Vector expressions
24322433

24332434
~~~~ {.notrust .ebnf .gram}
2434-
vec_expr : '[' "mut" ? vec_elems? ']'
2435+
vec_expr : '[' "mut" ? vec_elems? ']' ;
24352436
2436-
vec_elems : [expr [',' expr]*] | [expr ',' ".." expr]
2437+
vec_elems : [expr [',' expr]*] | [expr ',' ".." expr] ;
24372438
~~~~
24382439

24392440
A [_vector_](#vector-types) _expression_ is written by enclosing zero or
@@ -2453,7 +2454,7 @@ as a [literal](#literals) or a [static item](#static-items).
24532454
### Index expressions
24542455

24552456
~~~~ {.notrust .ebnf .gram}
2456-
idx_expr : expr '[' expr ']'
2457+
idx_expr : expr '[' expr ']' ;
24572458
~~~~
24582459

24592460
[Vector](#vector-types)-typed expressions can be indexed by writing a
@@ -2875,7 +2876,7 @@ then any `else` block is executed.
28752876
~~~~ {.notrust .ebnf .gram}
28762877
match_expr : "match" expr '{' match_arm [ '|' match_arm ] * '}' ;
28772878
2878-
match_arm : match_pat '=>' [ expr "," | '{' block '}' ] ;
2879+
match_arm : match_pat "=>" [ expr "," | '{' block '}' ] ;
28792880
28802881
match_pat : pat [ ".." pat ] ? [ "if" expr ] ;
28812882
~~~~

branches/try/src/etc/install.sh

Lines changed: 68 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,16 @@ validate_opt () {
189189
done
190190
}
191191

192+
absolutify() {
193+
FILE_PATH="${1}"
194+
FILE_PATH_DIRNAME="$(dirname ${FILE_PATH})"
195+
FILE_PATH_BASENAME="$(basename ${FILE_PATH})"
196+
FILE_ABS_PATH="$(cd ${FILE_PATH_DIRNAME} && pwd)"
197+
FILE_PATH="${FILE_ABS_PATH}/${FILE_PATH_BASENAME}"
198+
# This is the return value
199+
ABSOLUTIFIED="${FILE_PATH}"
200+
}
201+
192202
CFG_SRC_DIR="$(cd $(dirname $0) && pwd)/"
193203
CFG_SELF="$0"
194204
CFG_ARGS="$@"
@@ -212,6 +222,7 @@ BOOL_OPTIONS=""
212222
VAL_OPTIONS=""
213223

214224
flag uninstall "only uninstall from the installation prefix"
225+
opt verify 1 "verify that the installed binaries run correctly"
215226
valopt prefix "/usr/local" "set installation prefix"
216227
# NB This isn't quite the same definition as in `configure`.
217228
# just using 'lib' instead of CFG_LIBDIR_RELATIVE
@@ -230,28 +241,50 @@ validate_opt
230241

231242
# OK, let's get installing ...
232243

244+
# Sanity check: can we run the binaries?
245+
if [ -z "${CFG_DISABLE_VERIFY}" ]
246+
then
247+
# Don't do this if uninstalling. Failure here won't help in any way.
248+
if [ -z "${CFG_UNINSTALL}" ]
249+
then
250+
msg "verifying platform can run binaries"
251+
"${CFG_SRC_DIR}/bin/rustc" --version > /dev/null
252+
if [ $? -ne 0 ]
253+
then
254+
err "can't execute rustc binary on this platform"
255+
fi
256+
fi
257+
fi
258+
233259
# Sanity check: can we can write to the destination?
260+
msg "verifying destination is writable"
234261
umask 022 && mkdir -p "${CFG_LIBDIR}"
235-
need_ok "can't write to destination. consider 'sudo'."
236-
touch "${CFG_LIBDIR}/rust-install-probe" 2> /dev/null
262+
need_ok "can't write to destination. consider \`sudo\`."
263+
touch "${CFG_LIBDIR}/rust-install-probe" > /dev/null
237264
if [ $? -ne 0 ]
238265
then
239-
err "can't write to destination. consider 'sudo'."
266+
err "can't write to destination. consider \`sudo\`."
240267
fi
241-
rm "${CFG_LIBDIR}/rust-install-probe"
268+
rm -f "${CFG_LIBDIR}/rust-install-probe"
242269
need_ok "failed to remove install probe"
243270

244271
# Sanity check: don't install to the directory containing the installer.
245272
# That would surely cause chaos.
273+
msg "verifying destination is not the same as source"
246274
INSTALLER_DIR="$(cd $(dirname $0) && pwd)"
247275
PREFIX_DIR="$(cd ${CFG_PREFIX} && pwd)"
248276
if [ "${INSTALLER_DIR}" = "${PREFIX_DIR}" ]
249277
then
250278
err "can't install to same directory as installer"
251279
fi
252280

281+
# Using an absolute path to libdir in a few places so that the status
282+
# messages are consistently using absolute paths.
283+
absolutify "${CFG_LIBDIR}"
284+
ABS_LIBDIR="${ABSOLUTIFIED}"
285+
253286
# The file name of the manifest we're going to create during install
254-
INSTALLED_MANIFEST="${CFG_LIBDIR}/rustlib/manifest"
287+
INSTALLED_MANIFEST="${ABS_LIBDIR}/rustlib/manifest"
255288

256289
# First, uninstall from the installation prefix.
257290
# Errors are warnings - try to rm everything in the manifest even if some fail.
@@ -263,7 +296,7 @@ then
263296
msg "removing $p"
264297
if [ -f "$p" ]
265298
then
266-
rm "$p"
299+
rm -f "$p"
267300
if [ $? -ne 0 ]
268301
then
269302
warn "failed to remove $p"
@@ -273,8 +306,16 @@ then
273306
fi
274307
done < "${INSTALLED_MANIFEST}"
275308

309+
# If we fail to remove rustlib below, then the installed manifest will
310+
# still be full; the installed manifest needs to be empty before install.
311+
msg "removing ${INSTALLED_MANIFEST}"
312+
rm -f "${INSTALLED_MANIFEST}"
313+
# For the above reason, this is a hard error
314+
need_ok "failed to remove installed manifest"
315+
276316
# Remove 'rustlib' directory
277-
rm -r "${CFG_LIBDIR}/rustlib"
317+
msg "removing ${ABS_LIBDIR}/rustlib"
318+
rm -Rf "${ABS_LIBDIR}/rustlib"
278319
if [ $? -ne 0 ]
279320
then
280321
warn "failed to remove rustlib"
@@ -298,7 +339,9 @@ fi
298339

299340
# Create the installed manifest, which we will fill in with absolute file paths
300341
mkdir -p "${CFG_LIBDIR}/rustlib"
342+
need_ok "failed to create rustlib"
301343
touch "${INSTALLED_MANIFEST}"
344+
need_ok "failed to create installed manifest"
302345

303346
# Now install, iterate through the new manifest and copy files
304347
while read p; do
@@ -324,10 +367,8 @@ while read p; do
324367

325368
# Make the path absolute so we can uninstall it later without
326369
# starting from the installation cwd
327-
FILE_INSTALL_PATH_DIRNAME="$(dirname ${FILE_INSTALL_PATH})"
328-
FILE_INSTALL_PATH_BASENAME="$(basename ${FILE_INSTALL_PATH})"
329-
FILE_INSTALL_ABS_PATH="$(cd ${FILE_INSTALL_PATH_DIRNAME} && pwd)"
330-
FILE_INSTALL_PATH="${FILE_INSTALL_ABS_PATH}/${FILE_INSTALL_PATH_BASENAME}"
370+
absolutify "${FILE_INSTALL_PATH}"
371+
FILE_INSTALL_PATH="${ABSOLUTIFIED}"
331372

332373
# Install the file
333374
msg "${FILE_INSTALL_PATH}"
@@ -346,6 +387,22 @@ while read p; do
346387
# The manifest lists all files to install
347388
done < "${CFG_SRC_DIR}/lib/rustlib/manifest.in"
348389

390+
# Sanity check: can we run the installed binaries?
391+
if [ -z "${CFG_DISABLE_VERIFY}" ]
392+
then
393+
msg "verifying installed binaries are executable"
394+
"${CFG_PREFIX}/bin/rustc" --version > /dev/null
395+
if [ $? -ne 0 ]
396+
then
397+
ERR="can't execute installed rustc binary. "
398+
ERR="${ERR}installation may be broken. "
399+
ERR="${ERR}if this is expected then rerun install.sh with \`--disable-verify\` "
400+
ERR="${ERR}or \`make install\` with \`--disable-verify-install\`"
401+
err "${ERR}"
402+
fi
403+
fi
404+
405+
349406
echo
350407
echo " Rust is ready to roll."
351408
echo

branches/try/src/etc/vim/syntax/rust.vim

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ syn keyword rustType f64 i8 i16 i32 i64 str Self
5252
" to make it easy to update.
5353

5454
" Core operators {{{3
55-
syn keyword rustTrait Freeze Copy Send Sized
55+
syn keyword rustTrait Share Copy Send Sized
5656
syn keyword rustTrait Add Sub Mul Div Rem Neg Not
5757
syn keyword rustTrait BitAnd BitOr BitXor
5858
syn keyword rustTrait Drop

branches/try/src/libarena/lib.rs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,15 @@
1515
//! of individual objects while the arena itself is still alive. The benefit
1616
//! of an arena is very fast allocation; just a pointer bump.
1717
18-
#[crate_id = "arena#0.10-pre"];
19-
#[crate_type = "rlib"];
20-
#[crate_type = "dylib"];
21-
#[license = "MIT/ASL2"];
22-
#[doc(html_logo_url = "http://www.rust-lang.org/logos/rust-logo-128x128-blk-v2.png",
23-
html_favicon_url = "http://www.rust-lang.org/favicon.ico",
24-
html_root_url = "http://static.rust-lang.org/doc/master")];
25-
#[allow(missing_doc)];
26-
#[feature(managed_boxes)];
18+
#![crate_id = "arena#0.10-pre"]
19+
#![crate_type = "rlib"]
20+
#![crate_type = "dylib"]
21+
#![license = "MIT/ASL2"]
22+
#![doc(html_logo_url = "http://www.rust-lang.org/logos/rust-logo-128x128-blk-v2.png",
23+
html_favicon_url = "http://www.rust-lang.org/favicon.ico",
24+
html_root_url = "http://static.rust-lang.org/doc/master")]
25+
#![allow(missing_doc)]
26+
#![feature(managed_boxes)]
2727

2828
extern crate collections;
2929

branches/try/src/libcollections/bitv.rs

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

11-
#[allow(missing_doc)];
11+
#![allow(missing_doc)]
1212

1313

1414
use std::cmp;

0 commit comments

Comments
 (0)