Skip to content

Commit c3bf178

Browse files
committed
---
yaml --- r: 142980 b: refs/heads/try2 c: 32586fa h: refs/heads/master v: v3
1 parent 1337bec commit c3bf178

Some content is hidden

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

51 files changed

+481
-611
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: a1cd1429fb6f007735a3de792b5ba8ba24cd5328
8+
refs/heads/try2: 32586faa6adb890bc25caa8b5cb692e8c37e4a89
99
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503

branches/try2/configure

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -750,18 +750,18 @@ then
750750
cd ${CFG_SRC_DIR}
751751

752752
msg "git: submodule sync"
753-
"${CFG_GIT}" submodule --quiet sync
753+
"${CFG_GIT}" submodule sync
754754

755755
msg "git: submodule update"
756-
"${CFG_GIT}" submodule --quiet update --init
756+
"${CFG_GIT}" submodule update --init
757757
need_ok "git failed"
758758

759759
msg "git: submodule foreach sync"
760-
"${CFG_GIT}" submodule --quiet foreach --recursive 'if test -e .gitmodules; then git submodule sync; fi'
760+
"${CFG_GIT}" submodule foreach --recursive 'if test -e .gitmodules; then git submodule sync; fi'
761761
need_ok "git failed"
762762

763763
msg "git: submodule foreach update"
764-
"${CFG_GIT}" submodule --quiet update --init --recursive
764+
"${CFG_GIT}" submodule update --init --recursive
765765
need_ok "git failed"
766766

767767
# NB: this is just for the sake of getting the submodule SHA1 values
@@ -770,9 +770,9 @@ then
770770
"${CFG_GIT}" submodule status --recursive
771771

772772
msg "git: submodule clobber"
773-
"${CFG_GIT}" submodule --quiet foreach --recursive git clean -dxf
773+
"${CFG_GIT}" submodule foreach --recursive git clean -dxf
774774
need_ok "git failed"
775-
"${CFG_GIT}" submodule --quiet foreach --recursive git checkout .
775+
"${CFG_GIT}" submodule foreach --recursive git checkout .
776776
need_ok "git failed"
777777

778778
cd ${CFG_BUILD_DIR}

branches/try2/doc/rust.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1122,6 +1122,41 @@ static bits_n_strings: BitsNStrings<'static> = BitsNStrings {
11221122
};
11231123
~~~~
11241124

1125+
#### Mutable statics
1126+
1127+
If a static item is declared with the ```mut``` keyword, then it is allowed to
1128+
be modified by the program. One of Rust's goals is to make concurrency bugs hard
1129+
to run into, and this is obviously a very large source of race conditions or
1130+
other bugs. For this reason, an ```unsafe``` block is required when either
1131+
reading or writing a mutable static variable. Care should be taken to ensure
1132+
that modifications to a mutable static are safe with respect to other tasks
1133+
running in the same process.
1134+
1135+
Mutable statics are still very useful, however. They can be used with C
1136+
libraries and can also be bound from C libraries (in an ```extern``` block).
1137+
1138+
~~~
1139+
# fn atomic_add(_: &mut uint, _: uint) -> uint { 2 }
1140+
1141+
static mut LEVELS: uint = 0;
1142+
1143+
// This violates the idea of no shared state, and this doesn't internally
1144+
// protect against races, so this function is `unsafe`
1145+
unsafe fn bump_levels_unsafe1() -> uint {
1146+
let ret = LEVELS;
1147+
LEVELS += 1;
1148+
return ret;
1149+
}
1150+
1151+
// Assuming that we have an atomic_add function which returns the old value,
1152+
// this function is "safe" but the meaning of the return value may not be what
1153+
// callers expect, so it's still marked as `unsafe`
1154+
unsafe fn bump_levels_unsafe2() -> uint {
1155+
return atomic_add(&mut LEVELS, 1);
1156+
}
1157+
1158+
~~~
1159+
11251160
### Traits
11261161

11271162
A _trait_ describes a set of method types.

branches/try2/doc/tutorial.md

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ supported build environments that are most likely to work.
8484
> know.
8585
8686
[bug-3319]: https://github.com/mozilla/rust/issues/3319
87-
[wiki-start]: https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust
87+
[wiki-start]: https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust
8888

8989
To build from source you will also need the following prerequisite
9090
packages:
@@ -118,7 +118,6 @@ API-documentation tool; `rustpkg`, the Rust package manager;
118118
`rusti`, the Rust REPL; and `rust`, a tool which acts both as a unified
119119
interface for them, and for a few common command line scenarios.
120120

121-
[wiki-start]: https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust
122121
[tarball]: http://static.rust-lang.org/dist/rust-0.7.tar.gz
123122
[win-exe]: http://static.rust-lang.org/dist/rust-0.7-install.exe
124123

@@ -410,8 +409,6 @@ println(fmt!("what is this thing: %?", mystery_object));
410409

411410
You can define your own syntax extensions with the macro system. For details, see the [macro tutorial][macros].
412411

413-
[macros]: tutorial-macros.html
414-
415412
# Control structures
416413

417414
## Conditionals
@@ -1517,8 +1514,6 @@ closures, but they also own them: that is, no other code can access
15171514
them. Owned closures are used in concurrent code, particularly
15181515
for spawning [tasks][tasks].
15191516

1520-
[tasks]: tutorial-tasks.html
1521-
15221517
## Closure compatibility
15231518

15241519
Rust closures have a convenient subtyping property: you can pass any kind of
@@ -2543,9 +2538,4 @@ There is further documentation on the [wiki].
25432538
[ffi]: tutorial-ffi.html
25442539

25452540
[wiki]: https://github.com/mozilla/rust/wiki/Docs
2546-
[unit testing]: https://github.com/mozilla/rust/wiki/Doc-unit-testing
2547-
[rustdoc]: https://github.com/mozilla/rust/wiki/Doc-using-rustdoc
2548-
[cargo]: https://github.com/mozilla/rust/wiki/Doc-using-cargo-to-manage-packages
2549-
[attributes]: https://github.com/mozilla/rust/wiki/Doc-attributes
25502541

2551-
[pound-rust]: http://chat.mibbit.com/?server=irc.mozilla.org&channel=%23rust

branches/try2/src/compiletest/compiletest.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -230,9 +230,9 @@ pub fn test_opts(config: &config) -> test::TestOpts {
230230
logfile: config.logfile.clone(),
231231
run_tests: true,
232232
run_benchmarks: true,
233-
ratchet_metrics: copy config.ratchet_metrics,
234-
ratchet_noise_percent: copy config.ratchet_noise_percent,
235-
save_metrics: copy config.save_metrics,
233+
ratchet_metrics: config.ratchet_metrics.clone(),
234+
ratchet_noise_percent: config.ratchet_noise_percent.clone(),
235+
save_metrics: config.save_metrics.clone(),
236236
}
237237
}
238238

@@ -315,7 +315,7 @@ pub fn make_test_closure(config: &config, testfile: &Path) -> test::TestFn {
315315

316316
pub fn make_metrics_test_closure(config: &config, testfile: &Path) -> test::TestFn {
317317
use std::cell::Cell;
318-
let config = Cell::new(copy *config);
318+
let config = Cell::new((*config).clone());
319319
let testfile = Cell::new(testfile.to_str());
320320
test::DynMetricFn(|mm| { runtest::run_metrics(config.take(), testfile.take(), mm) })
321321
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
" Vim compiler file
2+
" Compiler: Rust Compiler
3+
" Maintainer: Chris Morgan <[email protected]>
4+
" Latest Revision: 2013 Jul 12
5+
6+
if exists("current_compiler")
7+
finish
8+
endif
9+
let current_compiler = "rustc"
10+
11+
let s:cpo_save = &cpo
12+
set cpo&vim
13+
14+
if exists(":CompilerSet") != 2
15+
command -nargs=* CompilerSet setlocal <args>
16+
endif
17+
18+
if exists("g:rustc_makeprg_no_percent") && g:rustc_makeprg_no_percent == 1
19+
CompilerSet makeprg=rustc
20+
else
21+
CompilerSet makeprg=rustc\ \%
22+
endif
23+
24+
CompilerSet errorformat=
25+
\%f:%l:%c:\ %t%*[^:]:\ %m,
26+
\%f:%l:%c:\ %*\\d:%*\\d\ %t%*[^:]:\ %m,
27+
\%-G%f:%l\ %s,
28+
\%-G%*[\ ]^,
29+
\%-G%*[\ ]^%*[~],
30+
\%-G%*[\ ]...
31+
32+
let &cpo = s:cpo_save
33+
unlet s:cpo_save

branches/try2/src/libextra/bitv.rs

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -893,9 +893,9 @@ mod tests {
893893
#[test]
894894
fn test_1_element() {
895895
let mut act = Bitv::new(1u, false);
896-
assert!(act.eq_vec(~[false]));
896+
assert!(act.eq_vec([false]));
897897
act = Bitv::new(1u, true);
898-
assert!(act.eq_vec(~[true]));
898+
assert!(act.eq_vec([true]));
899899
}
900900
901901
#[test]
@@ -913,11 +913,11 @@ mod tests {
913913
914914
act = Bitv::new(10u, false);
915915
assert!((act.eq_vec(
916-
~[false, false, false, false, false, false, false, false, false, false])));
916+
[false, false, false, false, false, false, false, false, false, false])));
917917
// all 1
918918
919919
act = Bitv::new(10u, true);
920-
assert!((act.eq_vec(~[true, true, true, true, true, true, true, true, true, true])));
920+
assert!((act.eq_vec([true, true, true, true, true, true, true, true, true, true])));
921921
// mixed
922922
923923
act = Bitv::new(10u, false);
@@ -926,7 +926,7 @@ mod tests {
926926
act.set(2u, true);
927927
act.set(3u, true);
928928
act.set(4u, true);
929-
assert!((act.eq_vec(~[true, true, true, true, true, false, false, false, false, false])));
929+
assert!((act.eq_vec([true, true, true, true, true, false, false, false, false, false])));
930930
// mixed
931931
932932
act = Bitv::new(10u, false);
@@ -935,15 +935,15 @@ mod tests {
935935
act.set(7u, true);
936936
act.set(8u, true);
937937
act.set(9u, true);
938-
assert!((act.eq_vec(~[false, false, false, false, false, true, true, true, true, true])));
938+
assert!((act.eq_vec([false, false, false, false, false, true, true, true, true, true])));
939939
// mixed
940940
941941
act = Bitv::new(10u, false);
942942
act.set(0u, true);
943943
act.set(3u, true);
944944
act.set(6u, true);
945945
act.set(9u, true);
946-
assert!((act.eq_vec(~[true, false, false, true, false, false, true, false, false, true])));
946+
assert!((act.eq_vec([true, false, false, true, false, false, true, false, false, true])));
947947
}
948948
949949
#[test]
@@ -953,14 +953,14 @@ mod tests {
953953
954954
act = Bitv::new(31u, false);
955955
assert!(act.eq_vec(
956-
~[false, false, false, false, false, false, false, false, false, false, false,
956+
[false, false, false, false, false, false, false, false, false, false, false,
957957
false, false, false, false, false, false, false, false, false, false, false, false,
958958
false, false, false, false, false, false, false, false]));
959959
// all 1
960960
961961
act = Bitv::new(31u, true);
962962
assert!(act.eq_vec(
963-
~[true, true, true, true, true, true, true, true, true, true, true, true, true,
963+
[true, true, true, true, true, true, true, true, true, true, true, true, true,
964964
true, true, true, true, true, true, true, true, true, true, true, true, true, true,
965965
true, true, true, true]));
966966
// mixed
@@ -975,7 +975,7 @@ mod tests {
975975
act.set(6u, true);
976976
act.set(7u, true);
977977
assert!(act.eq_vec(
978-
~[true, true, true, true, true, true, true, true, false, false, false, false, false,
978+
[true, true, true, true, true, true, true, true, false, false, false, false, false,
979979
false, false, false, false, false, false, false, false, false, false, false, false,
980980
false, false, false, false, false, false]));
981981
// mixed
@@ -990,7 +990,7 @@ mod tests {
990990
act.set(22u, true);
991991
act.set(23u, true);
992992
assert!(act.eq_vec(
993-
~[false, false, false, false, false, false, false, false, false, false, false,
993+
[false, false, false, false, false, false, false, false, false, false, false,
994994
false, false, false, false, false, true, true, true, true, true, true, true, true,
995995
false, false, false, false, false, false, false]));
996996
// mixed
@@ -1004,7 +1004,7 @@ mod tests {
10041004
act.set(29u, true);
10051005
act.set(30u, true);
10061006
assert!(act.eq_vec(
1007-
~[false, false, false, false, false, false, false, false, false, false, false,
1007+
[false, false, false, false, false, false, false, false, false, false, false,
10081008
false, false, false, false, false, false, false, false, false, false, false, false,
10091009
false, true, true, true, true, true, true, true]));
10101010
// mixed
@@ -1014,7 +1014,7 @@ mod tests {
10141014
act.set(17u, true);
10151015
act.set(30u, true);
10161016
assert!(act.eq_vec(
1017-
~[false, false, false, true, false, false, false, false, false, false, false, false,
1017+
[false, false, false, true, false, false, false, false, false, false, false, false,
10181018
false, false, false, false, false, true, false, false, false, false, false, false,
10191019
false, false, false, false, false, false, true]));
10201020
}
@@ -1026,14 +1026,14 @@ mod tests {
10261026
10271027
act = Bitv::new(32u, false);
10281028
assert!(act.eq_vec(
1029-
~[false, false, false, false, false, false, false, false, false, false, false,
1029+
[false, false, false, false, false, false, false, false, false, false, false,
10301030
false, false, false, false, false, false, false, false, false, false, false, false,
10311031
false, false, false, false, false, false, false, false, false]));
10321032
// all 1
10331033
10341034
act = Bitv::new(32u, true);
10351035
assert!(act.eq_vec(
1036-
~[true, true, true, true, true, true, true, true, true, true, true, true, true,
1036+
[true, true, true, true, true, true, true, true, true, true, true, true, true,
10371037
true, true, true, true, true, true, true, true, true, true, true, true, true, true,
10381038
true, true, true, true, true]));
10391039
// mixed
@@ -1048,7 +1048,7 @@ mod tests {
10481048
act.set(6u, true);
10491049
act.set(7u, true);
10501050
assert!(act.eq_vec(
1051-
~[true, true, true, true, true, true, true, true, false, false, false, false, false,
1051+
[true, true, true, true, true, true, true, true, false, false, false, false, false,
10521052
false, false, false, false, false, false, false, false, false, false, false, false,
10531053
false, false, false, false, false, false, false]));
10541054
// mixed
@@ -1063,7 +1063,7 @@ mod tests {
10631063
act.set(22u, true);
10641064
act.set(23u, true);
10651065
assert!(act.eq_vec(
1066-
~[false, false, false, false, false, false, false, false, false, false, false,
1066+
[false, false, false, false, false, false, false, false, false, false, false,
10671067
false, false, false, false, false, true, true, true, true, true, true, true, true,
10681068
false, false, false, false, false, false, false, false]));
10691069
// mixed
@@ -1078,7 +1078,7 @@ mod tests {
10781078
act.set(30u, true);
10791079
act.set(31u, true);
10801080
assert!(act.eq_vec(
1081-
~[false, false, false, false, false, false, false, false, false, false, false,
1081+
[false, false, false, false, false, false, false, false, false, false, false,
10821082
false, false, false, false, false, false, false, false, false, false, false, false,
10831083
false, true, true, true, true, true, true, true, true]));
10841084
// mixed
@@ -1089,7 +1089,7 @@ mod tests {
10891089
act.set(30u, true);
10901090
act.set(31u, true);
10911091
assert!(act.eq_vec(
1092-
~[false, false, false, true, false, false, false, false, false, false, false, false,
1092+
[false, false, false, true, false, false, false, false, false, false, false, false,
10931093
false, false, false, false, false, true, false, false, false, false, false, false,
10941094
false, false, false, false, false, false, true, true]));
10951095
}
@@ -1101,14 +1101,14 @@ mod tests {
11011101
11021102
act = Bitv::new(33u, false);
11031103
assert!(act.eq_vec(
1104-
~[false, false, false, false, false, false, false, false, false, false, false,
1104+
[false, false, false, false, false, false, false, false, false, false, false,
11051105
false, false, false, false, false, false, false, false, false, false, false, false,
11061106
false, false, false, false, false, false, false, false, false, false]));
11071107
// all 1
11081108
11091109
act = Bitv::new(33u, true);
11101110
assert!(act.eq_vec(
1111-
~[true, true, true, true, true, true, true, true, true, true, true, true, true,
1111+
[true, true, true, true, true, true, true, true, true, true, true, true, true,
11121112
true, true, true, true, true, true, true, true, true, true, true, true, true, true,
11131113
true, true, true, true, true, true]));
11141114
// mixed
@@ -1123,7 +1123,7 @@ mod tests {
11231123
act.set(6u, true);
11241124
act.set(7u, true);
11251125
assert!(act.eq_vec(
1126-
~[true, true, true, true, true, true, true, true, false, false, false, false, false,
1126+
[true, true, true, true, true, true, true, true, false, false, false, false, false,
11271127
false, false, false, false, false, false, false, false, false, false, false, false,
11281128
false, false, false, false, false, false, false, false]));
11291129
// mixed
@@ -1138,7 +1138,7 @@ mod tests {
11381138
act.set(22u, true);
11391139
act.set(23u, true);
11401140
assert!(act.eq_vec(
1141-
~[false, false, false, false, false, false, false, false, false, false, false,
1141+
[false, false, false, false, false, false, false, false, false, false, false,
11421142
false, false, false, false, false, true, true, true, true, true, true, true, true,
11431143
false, false, false, false, false, false, false, false, false]));
11441144
// mixed
@@ -1153,7 +1153,7 @@ mod tests {
11531153
act.set(30u, true);
11541154
act.set(31u, true);
11551155
assert!(act.eq_vec(
1156-
~[false, false, false, false, false, false, false, false, false, false, false,
1156+
[false, false, false, false, false, false, false, false, false, false, false,
11571157
false, false, false, false, false, false, false, false, false, false, false, false,
11581158
false, true, true, true, true, true, true, true, true, false]));
11591159
// mixed
@@ -1165,7 +1165,7 @@ mod tests {
11651165
act.set(31u, true);
11661166
act.set(32u, true);
11671167
assert!(act.eq_vec(
1168-
~[false, false, false, true, false, false, false, false, false, false, false, false,
1168+
[false, false, false, true, false, false, false, false, false, false, false, false,
11691169
false, false, false, false, false, true, false, false, false, false, false, false,
11701170
false, false, false, false, false, false, true, true, true]));
11711171
}

0 commit comments

Comments
 (0)