Skip to content

Commit 6a19b31

Browse files
committed
---
yaml --- r: 139389 b: refs/heads/try2 c: d310532 h: refs/heads/master i: 139387: 896cb4d v: v3
1 parent eb07677 commit 6a19b31

File tree

100 files changed

+1619
-948
lines changed

Some content is hidden

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

100 files changed

+1619
-948
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: e5dda811a9818a3289a3a1354f98731e46730bd9
8+
refs/heads/try2: d31053277aa8ced6778334d49de150b1393073eb
99
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503

branches/try2/RELEASES.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@ Version 0.6 (March 2013)
6262
* Pattern matching over vectors improved and expanded
6363
* Typechecking of closure types has been overhauled to
6464
improve inference and eliminate unsoundness
65+
* Macros leave scope at the end of modules, unless that module is
66+
tagged with #[macro_escape]
6567

6668
* Libraries
6769
* Added big integers to `std::bigint`

branches/try2/configure

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -308,8 +308,6 @@ case $CFG_OSTYPE in
308308
esac
309309

310310

311-
if [ -z "$CFG_CPUTYPE" ]
312-
then
313311
case $CFG_CPUTYPE in
314312

315313
i386 | i486 | i686 | i786 | x86)
@@ -327,7 +325,6 @@ case $CFG_CPUTYPE in
327325
*)
328326
err "unknown CPU type: $CFG_CPUTYPE"
329327
esac
330-
fi
331328

332329
# Detect 64 bit linux systems with 32 bit userland and force 32 bit compilation
333330
if [ $CFG_OSTYPE = unknown-linux-gnu -a $CFG_CPUTYPE = x86_64 ]
@@ -575,7 +572,7 @@ fi
575572
CFG_PREFIX=${CFG_PREFIX%/}
576573
CFG_HOST_TRIPLES="$(echo $CFG_HOST_TRIPLES | tr ',' ' ')"
577574
CFG_TARGET_TRIPLES="$(echo $CFG_TARGET_TRIPLES | tr ',' ' ')"
578-
CFG_SUPPORTED_TARGET_TRIPLES="$(grep ^CC_*=* $CFG_SRC_DIR/mk/platform.mk | sed 's,^[^_]*_,,' | sed 's/\([^=]*\).*/\1/' | xargs)"
575+
CFG_SUPPORTED_TARGET_TRIPLES="$(grep ^CC_*=* $CFG_SRC_DIR/mk/platform.mk | sed -e 's/^CC_//' -e 's/\([^=]*\).*/\1/' | xargs)"
579576

580577
# copy host-triples to target-triples so that hosts are a subset of targets
581578
V_TEMP=""

branches/try2/src/libcore/hashmap.rs

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

11-
//! Sendable hash maps.
11+
//! An unordered map and set type implemented as hash tables
12+
//!
13+
//! The tables use a keyed hash with new random keys generated for each container, so the ordering
14+
//! of a set of keys in a hash table is randomized.
1215
1316
/// Open addressing with linear probing.
1417
pub mod linear {

branches/try2/src/libcore/ops.rs

Lines changed: 2 additions & 2 deletions
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-
// Core operators
11+
//! Traits for the built-in operators
1212
1313
#[lang="drop"]
1414
pub trait Drop {
@@ -77,5 +77,5 @@ pub trait Shr<RHS,Result> {
7777

7878
#[lang="index"]
7979
pub trait Index<Index,Result> {
80-
fn index(&self, index: Index) -> Result;
80+
fn index(&self, index: &Index) -> Result;
8181
}

branches/try2/src/librustc/metadata/decoder.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -630,7 +630,6 @@ fn get_self_ty(item: ebml::Doc) -> ast::self_ty_ {
630630
let self_ty_kind = string[0];
631631
match self_ty_kind as char {
632632
's' => { return ast::sty_static; }
633-
'r' => { return ast::sty_by_ref; }
634633
'v' => { return ast::sty_value; }
635634
'@' => { return ast::sty_box(get_mutability(string[1])); }
636635
'~' => { return ast::sty_uniq(get_mutability(string[1])); }

branches/try2/src/librustc/metadata/encoder.rs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -410,9 +410,6 @@ fn encode_self_type(ebml_w: writer::Encoder, self_type: ast::self_ty_) {
410410
sty_static => {
411411
ebml_w.writer.write(&[ 's' as u8 ]);
412412
}
413-
sty_by_ref => {
414-
ebml_w.writer.write(&[ 'r' as u8 ]);
415-
}
416413
sty_value => {
417414
ebml_w.writer.write(&[ 'v' as u8 ]);
418415
}

branches/try2/src/librustc/metadata/tydecode.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ use core::vec;
2424
use syntax::ast;
2525
use syntax::ast::*;
2626
use syntax::codemap::{respan, dummy_sp};
27+
use syntax::opt_vec;
2728

2829
// Compact string representation for ty::t values. API ty_str &
2930
// parse_from_str. Extra parameters are for converting to/from def_ids in the
@@ -479,7 +480,9 @@ fn parse_sig(st: @mut PState, conv: conv_did) -> ty::FnSig {
479480
}
480481
st.pos += 1u; // eat the ']'
481482
let ret_ty = parse_ty(st, conv);
482-
ty::FnSig {inputs: inputs, output: ret_ty}
483+
ty::FnSig {bound_lifetime_names: opt_vec::Empty, // FIXME(#4846)
484+
inputs: inputs,
485+
output: ret_ty}
483486
}
484487
485488
// Rust metadata parsing

branches/try2/src/librustc/middle/astencode.rs

Lines changed: 44 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,7 @@ fn simplify_ast(ii: ast::inlined_item) -> ast::inlined_item {
342342
}
343343
344344
fn decode_ast(par_doc: ebml::Doc) -> ast::inlined_item {
345-
let chi_doc = par_doc[c::tag_tree as uint];
345+
let chi_doc = par_doc.get(c::tag_tree as uint);
346346
let d = &reader::Decoder(chi_doc);
347347
Decodable::decode(d)
348348
}
@@ -681,6 +681,7 @@ impl vtable_decoder_helpers for reader::Decoder {
681681
@self.read_to_vec(|| self.read_vtable_origin(xcx) )
682682
}
683683
684+
#[cfg(stage0)]
684685
fn read_vtable_origin(&self, xcx: @ExtendedDecodeContext)
685686
-> typeck::vtable_origin {
686687
do self.read_enum(~"vtable_origin") {
@@ -715,6 +716,44 @@ impl vtable_decoder_helpers for reader::Decoder {
715716
}
716717
}
717718
}
719+
720+
#[cfg(stage1)]
721+
#[cfg(stage2)]
722+
#[cfg(stage3)]
723+
fn read_vtable_origin(&self, xcx: @ExtendedDecodeContext)
724+
-> typeck::vtable_origin {
725+
do self.read_enum("vtable_origin") {
726+
do self.read_enum_variant(["vtable_static", "vtable_param"]) |i| {
727+
match i {
728+
0 => {
729+
typeck::vtable_static(
730+
do self.read_enum_variant_arg(0u) {
731+
self.read_def_id(xcx)
732+
},
733+
do self.read_enum_variant_arg(1u) {
734+
self.read_tys(xcx)
735+
},
736+
do self.read_enum_variant_arg(2u) {
737+
self.read_vtable_res(xcx)
738+
}
739+
)
740+
}
741+
1 => {
742+
typeck::vtable_param(
743+
do self.read_enum_variant_arg(0u) {
744+
self.read_uint()
745+
},
746+
do self.read_enum_variant_arg(1u) {
747+
self.read_uint()
748+
}
749+
)
750+
}
751+
// hard to avoid - user input
752+
_ => fail!(~"bad enum variant")
753+
}
754+
}
755+
}
756+
}
718757
}
719758
720759
// ______________________________________________________________________
@@ -1089,9 +1128,9 @@ impl ebml_decoder_decoder_helpers for reader::Decoder {
10891128
fn decode_side_tables(xcx: @ExtendedDecodeContext,
10901129
ast_doc: ebml::Doc) {
10911130
let dcx = xcx.dcx;
1092-
let tbl_doc = ast_doc[c::tag_table as uint];
1131+
let tbl_doc = ast_doc.get(c::tag_table as uint);
10931132
for reader::docs(tbl_doc) |tag, entry_doc| {
1094-
let id0 = entry_doc[c::tag_table_id as uint].as_int();
1133+
let id0 = entry_doc.get(c::tag_table_id as uint).as_int();
10951134
let id = xcx.tr_id(id0);
10961135
10971136
debug!(">> Side table document with tag 0x%x \
@@ -1103,7 +1142,7 @@ fn decode_side_tables(xcx: @ExtendedDecodeContext,
11031142
} else if tag == (c::tag_table_moves_map as uint) {
11041143
dcx.maps.moves_map.insert(id);
11051144
} else {
1106-
let val_doc = entry_doc[c::tag_table_val as uint];
1145+
let val_doc = entry_doc.get(c::tag_table_val as uint);
11071146
let val_dsr = &reader::Decoder(val_doc);
11081147
if tag == (c::tag_table_def as uint) {
11091148
let def = decode_def(xcx, val_doc);
@@ -1172,7 +1211,7 @@ fn encode_item_ast(ebml_w: writer::Encoder, item: @ast::item) {
11721211
11731212
#[cfg(test)]
11741213
fn decode_item_ast(par_doc: ebml::Doc) -> @ast::item {
1175-
let chi_doc = par_doc[c::tag_tree as uint];
1214+
let chi_doc = par_doc.get(c::tag_tree as uint);
11761215
let d = &reader::Decoder(chi_doc);
11771216
@Decodable::decode(d)
11781217
}

branches/try2/src/librustc/middle/borrowck/gather_loans.rs

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -180,21 +180,6 @@ fn req_loans_in_expr(ex: @ast::expr,
180180
}
181181
}
182182

183-
match self.bccx.method_map.find(&ex.id) {
184-
Some(ref method_map_entry) => {
185-
match (*method_map_entry).explicit_self {
186-
ast::sty_by_ref => {
187-
let rcvr_cmt = self.bccx.cat_expr(rcvr);
188-
self.guarantee_valid(rcvr_cmt, m_imm, scope_r);
189-
}
190-
_ => {} // Nothing to do.
191-
}
192-
}
193-
None => {
194-
self.tcx().sess.span_bug(ex.span, ~"no method map entry");
195-
}
196-
}
197-
198183
visit::visit_expr(ex, self, vt);
199184
}
200185

branches/try2/src/librustc/middle/check_const.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,6 @@ pub fn check_expr(sess: Session,
156156
expr_paren(e) => { check_expr(sess, def_map, method_map,
157157
tcx, e, is_const, v); }
158158
expr_vstore(_, expr_vstore_slice) |
159-
expr_vstore(_, expr_vstore_fixed(_)) |
160159
expr_vec(_, m_imm) |
161160
expr_addr_of(m_imm, _) |
162161
expr_field(*) |

branches/try2/src/librustc/middle/const_eval.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,6 @@ pub fn classify(e: @expr,
110110

111111
ast::expr_vstore(e, vstore) => {
112112
match vstore {
113-
ast::expr_vstore_fixed(_) |
114113
ast::expr_vstore_slice => classify(e, tcx),
115114
ast::expr_vstore_uniq |
116115
ast::expr_vstore_box |

branches/try2/src/librustc/middle/liveness.rs

Lines changed: 4 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,6 @@ use middle::typeck;
111111
use middle::moves;
112112
use util::ppaux::ty_to_str;
113113

114-
use core::cmp;
115114
use core::hashmap::linear::LinearMap;
116115
use core::io::WriterUtil;
117116
use core::io;
@@ -137,58 +136,19 @@ use syntax::{visit, ast_util};
137136
// if it detects an outstanding loan (that is, the addr is taken).
138137
pub type last_use_map = @mut LinearMap<node_id, @mut ~[node_id]>;
139138

139+
#[deriving(Eq)]
140140
struct Variable(uint);
141+
#[deriving(Eq)]
141142
struct LiveNode(uint);
142143

143-
impl cmp::Eq for Variable {
144-
fn eq(&self, other: &Variable) -> bool { *(*self) == *(*other) }
145-
fn ne(&self, other: &Variable) -> bool { *(*self) != *(*other) }
146-
}
147-
148-
impl cmp::Eq for LiveNode {
149-
fn eq(&self, other: &LiveNode) -> bool { *(*self) == *(*other) }
150-
fn ne(&self, other: &LiveNode) -> bool { *(*self) != *(*other) }
151-
}
152-
144+
#[deriving(Eq)]
153145
enum LiveNodeKind {
154146
FreeVarNode(span),
155147
ExprNode(span),
156148
VarDefNode(span),
157149
ExitNode
158150
}
159151

160-
impl cmp::Eq for LiveNodeKind {
161-
fn eq(&self, other: &LiveNodeKind) -> bool {
162-
match (*self) {
163-
FreeVarNode(e0a) => {
164-
match (*other) {
165-
FreeVarNode(e0b) => e0a == e0b,
166-
_ => false
167-
}
168-
}
169-
ExprNode(e0a) => {
170-
match (*other) {
171-
ExprNode(e0b) => e0a == e0b,
172-
_ => false
173-
}
174-
}
175-
VarDefNode(e0a) => {
176-
match (*other) {
177-
VarDefNode(e0b) => e0a == e0b,
178-
_ => false
179-
}
180-
}
181-
ExitNode => {
182-
match (*other) {
183-
ExitNode => true,
184-
_ => false
185-
}
186-
}
187-
}
188-
}
189-
fn ne(&self, other: &LiveNodeKind) -> bool { !(*self).eq(other) }
190-
}
191-
192152
fn live_node_kind_to_str(lnk: LiveNodeKind, cx: ty::ctxt) -> ~str {
193153
let cm = cx.sess.codemap;
194154
match lnk {
@@ -467,11 +427,6 @@ fn visit_fn(fk: &visit::fn_kind,
467427
match *fk {
468428
fk_method(_, _, method) => {
469429
match method.self_ty.node {
470-
sty_by_ref => {
471-
fn_maps.add_variable(Arg(method.self_id,
472-
special_idents::self_,
473-
by_ref));
474-
}
475430
sty_value | sty_region(*) | sty_box(_) | sty_uniq(_) => {
476431
fn_maps.add_variable(Arg(method.self_id,
477432
special_idents::self_,
@@ -1335,7 +1290,7 @@ pub impl Liveness {
13351290
self.propagate_through_expr(l, ln)
13361291
}
13371292

1338-
expr_log(_, l, r) |
1293+
expr_log(l, r) |
13391294
expr_index(l, r) |
13401295
expr_binary(_, l, r) => {
13411296
self.propagate_through_exprs(~[l, r], succ)

0 commit comments

Comments
 (0)