Skip to content

Commit 10ee438

Browse files
committed
---
yaml --- r: 101365 b: refs/heads/master c: c80d28c h: refs/heads/master i: 101363: 7fa0752 v: v3
1 parent 455adf9 commit 10ee438

Some content is hidden

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

82 files changed

+1718
-681
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: 723072ff6a66dab863e7c012c06aadf8a5c4ee91
2+
refs/heads/master: c80d28c8e322b6da49b7725d2b5e5b5cc86da822
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: 6e7f170fedd3c526a643c0b2d13863acd982be02
55
refs/heads/try: a97642026c18a624ff6ea01075dd9550f8ed07ff

trunk/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,9 @@ fetch snapshots, and an OS that can execute the available snapshot binaries.
7171

7272
Snapshot binaries are currently built and tested on several platforms:
7373

74-
* Windows (7, Server 2008 R2), x86 only
75-
* Linux (various distributions), x86 and x86-64
76-
* OSX 10.6 ("Snow Leopard") or greater, x86 and x86-64
74+
* Windows (7, 8, Server 2008 R2), x86 only
75+
* Linux (2.6.18 or later, various distributions), x86 and x86-64
76+
* OSX 10.7 (Lion) or greater, x86 and x86-64
7777

7878
You may find that other platforms work, but these are our officially
7979
supported build environments that are most likely to work.

trunk/doc/rustdoc.md

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -139,9 +139,14 @@ that one can still write things like `#[deriving(Eq)]`).
139139

140140
~~~
141141
```rust
142-
# // showing 'fib' in this documentation would just be tedious and detracts from
143-
# // what's actualy being documented.
144-
# fn fib(n: int) { n + 2 }
142+
# /!\ The three following lines are comments, which are usually stripped off by
143+
# the doc-generating tool. In order to display them anyway in this particular
144+
# case, the character following the leading '#' is not a usual space like in
145+
# these first five lines but a non breakable one.
146+
#
147+
# // showing 'fib' in this documentation would just be tedious and detracts from
148+
# // what's actualy being documented.
149+
# fn fib(n: int) { n + 2 }
145150
146151
do spawn { fib(200); }
147152
```

trunk/doc/tutorial.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,9 @@ from the Internet on our supported platforms.
7272

7373
Snapshot binaries are currently built and tested on several platforms:
7474

75-
* Windows (7, Server 2008 R2), x86 only
76-
* Linux (various distributions), x86 and x86-64
77-
* OSX 10.6 ("Snow Leopard") or greater, x86 and x86-64
75+
* Windows (7, 8, Server 2008 R2), x86 only
76+
* Linux (2.6.18 or later, various distributions), x86 and x86-64
77+
* OSX 10.7 (Lion) or greater, x86 and x86-64
7878

7979
You may find that other platforms work, but these are our "tier 1"
8080
supported build environments that are most likely to work.

trunk/src/libarena/lib.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ use std::cast;
3333
use std::cell::{Cell, RefCell};
3434
use std::num;
3535
use std::ptr;
36+
use std::kinds::marker;
3637
use std::mem;
3738
use std::rt::global_heap;
3839
use std::uint;
@@ -71,14 +72,14 @@ struct Chunk {
7172
// different chunks than objects without destructors. This reduces
7273
// overhead when initializing plain-old-data and means we don't need
7374
// to waste time running the destructors of POD.
74-
#[no_freeze]
7575
pub struct Arena {
7676
// The head is separated out from the list as a unbenchmarked
7777
// microoptimization, to avoid needing to case on the list to
7878
// access the head.
7979
priv head: Chunk,
8080
priv pod_head: Chunk,
8181
priv chunks: RefCell<@List<Chunk>>,
82+
priv no_freeze: marker::NoFreeze,
8283
}
8384

8485
impl Arena {
@@ -91,6 +92,7 @@ impl Arena {
9192
head: chunk(initial_size, false),
9293
pod_head: chunk(initial_size, true),
9394
chunks: RefCell::new(@Nil),
95+
no_freeze: marker::NoFreeze,
9496
}
9597
}
9698
}

trunk/src/libextra/arc.rs

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ use sync;
4545
use sync::{Mutex, RWLock};
4646

4747
use std::cast;
48+
use std::kinds::marker;
4849
use std::sync::arc::UnsafeArc;
4950
use std::task;
5051

@@ -150,17 +151,19 @@ impl<T:Freeze + Send> Clone for Arc<T> {
150151
struct MutexArcInner<T> { lock: Mutex, failed: bool, data: T }
151152

152153
/// An Arc with mutable data protected by a blocking mutex.
153-
#[no_freeze]
154-
pub struct MutexArc<T> { priv x: UnsafeArc<MutexArcInner<T>> }
155-
154+
pub struct MutexArc<T> {
155+
priv x: UnsafeArc<MutexArcInner<T>>,
156+
priv marker: marker::NoFreeze,
157+
}
156158

157159
impl<T:Send> Clone for MutexArc<T> {
158160
/// Duplicate a mutex-protected Arc. See arc::clone for more details.
159161
#[inline]
160162
fn clone(&self) -> MutexArc<T> {
161163
// NB: Cloning the underlying mutex is not necessary. Its reference
162164
// count would be exactly the same as the shared state's.
163-
MutexArc { x: self.x.clone() }
165+
MutexArc { x: self.x.clone(),
166+
marker: marker::NoFreeze, }
164167
}
165168
}
166169

@@ -179,7 +182,8 @@ impl<T:Send> MutexArc<T> {
179182
lock: Mutex::new_with_condvars(num_condvars),
180183
failed: false, data: user_data
181184
};
182-
MutexArc { x: UnsafeArc::new(data) }
185+
MutexArc { x: UnsafeArc::new(data),
186+
marker: marker::NoFreeze, }
183187
}
184188

185189
/**
@@ -318,16 +322,17 @@ struct RWArcInner<T> { lock: RWLock, failed: bool, data: T }
318322
*
319323
* Unlike mutex_arcs, rw_arcs are safe, because they cannot be nested.
320324
*/
321-
#[no_freeze]
322325
pub struct RWArc<T> {
323326
priv x: UnsafeArc<RWArcInner<T>>,
327+
priv marker: marker::NoFreeze,
324328
}
325329

326330
impl<T:Freeze + Send> Clone for RWArc<T> {
327331
/// Duplicate a rwlock-protected Arc. See arc::clone for more details.
328332
#[inline]
329333
fn clone(&self) -> RWArc<T> {
330-
RWArc { x: self.x.clone() }
334+
RWArc { x: self.x.clone(),
335+
marker: marker::NoFreeze, }
331336
}
332337

333338
}
@@ -347,7 +352,8 @@ impl<T:Freeze + Send> RWArc<T> {
347352
lock: RWLock::new_with_condvars(num_condvars),
348353
failed: false, data: user_data
349354
};
350-
RWArc { x: UnsafeArc::new(data), }
355+
RWArc { x: UnsafeArc::new(data),
356+
marker: marker::NoFreeze, }
351357
}
352358

353359
/**

trunk/src/libextra/hex.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright 2013 The Rust Project Developers. See the COPYRIGHT
1+
// Copyright 2013-2014 The Rust Project Developers. See the COPYRIGHT
22
// file at the top-level directory of this distribution and at
33
// http://rust-lang.org/COPYRIGHT.
44
//
@@ -60,7 +60,7 @@ pub trait FromHex {
6060
pub enum FromHexError {
6161
/// The input contained a character not part of the hex format
6262
InvalidHexCharacter(char, uint),
63-
/// The input had a invalid length
63+
/// The input had an invalid length
6464
InvalidHexLength,
6565
}
6666

trunk/src/libextra/num/bigint.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1292,7 +1292,7 @@ impl ToStrRadix for BigInt {
12921292
}
12931293
12941294
impl FromStrRadix for BigInt {
1295-
/// Creates and initializes an BigInt.
1295+
/// Creates and initializes a BigInt.
12961296
#[inline]
12971297
fn from_str_radix(s: &str, radix: uint) -> Option<BigInt> {
12981298
BigInt::parse_bytes(s.as_bytes(), radix)
@@ -1385,7 +1385,7 @@ impl<R: Rng> RandBigInt for R {
13851385
}
13861386
13871387
impl BigInt {
1388-
/// Creates and initializes an BigInt.
1388+
/// Creates and initializes a BigInt.
13891389
#[inline]
13901390
pub fn new(sign: Sign, v: ~[BigDigit]) -> BigInt {
13911391
BigInt::from_biguint(sign, BigUint::new(v))

trunk/src/librustc/back/link.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ pub mod write {
9696
use lib::llvm::llvm;
9797
use lib::llvm::{ModuleRef, TargetMachineRef, PassManagerRef};
9898
use lib;
99+
use syntax::abi;
99100
use util::common::time;
100101

101102
use std::c_str::ToCStr;
@@ -129,7 +130,10 @@ pub mod write {
129130
let use_softfp = sess.opts.debugging_opts & session::USE_SOFTFP != 0;
130131

131132
// FIXME: #11906: Omitting frame pointers breaks retrieving the value of a parameter.
132-
let no_fp_elim = sess.opts.debuginfo;
133+
// FIXME: #11954: mac64 unwinding may not work with fp elim
134+
let no_fp_elim = sess.opts.debuginfo ||
135+
(sess.targ_cfg.os == abi::OsMacos &&
136+
sess.targ_cfg.arch == abi::X86_64);
133137

134138
let tm = sess.targ_cfg.target_strs.target_triple.with_c_str(|T| {
135139
sess.opts.target_cpu.with_c_str(|CPU| {

trunk/src/librustc/middle/const_eval.rs

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@
1111

1212
use metadata::csearch;
1313
use middle::astencode;
14+
1415
use middle::ty;
16+
use middle::typeck::astconv;
1517
use middle;
1618

1719
use syntax::{ast, ast_map, ast_util};
@@ -445,8 +447,17 @@ pub fn eval_const_expr_partial<T: ty::ExprTyProvider>(tcx: &T, e: &Expr)
445447
_ => Err(~"Bad operands for binary")
446448
}
447449
}
448-
ExprCast(base, _) => {
449-
let ety = tcx.expr_ty(e);
450+
ExprCast(base, target_ty) => {
451+
// This tends to get called w/o the type actually having been
452+
// populated in the ctxt, which was causing things to blow up
453+
// (#5900). Fall back to doing a limited lookup to get past it.
454+
let ety = ty::expr_ty_opt(tcx.ty_ctxt(), e)
455+
.or_else(|| astconv::ast_ty_to_prim_ty(tcx.ty_ctxt(), target_ty))
456+
.unwrap_or_else(|| tcx.ty_ctxt().sess.span_fatal(
457+
target_ty.span,
458+
format!("Target type not found for const cast")
459+
));
460+
450461
let base = eval_const_expr_partial(tcx, base);
451462
match base {
452463
Err(_) => base,

trunk/src/librustc/middle/kind.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -485,7 +485,7 @@ pub fn check_durable(tcx: ty::ctxt, ty: ty::t, sp: Span) -> bool {
485485
}
486486
}
487487

488-
/// This is rather subtle. When we are casting a value to a instantiated
488+
/// This is rather subtle. When we are casting a value to an instantiated
489489
/// trait like `a as trait<'r>`, regionck already ensures that any references
490490
/// that appear in the type of `a` are bounded by `'r` (ed.: rem
491491
/// FIXME(#5723)). However, it is possible that there are *type parameters*
@@ -516,7 +516,7 @@ pub fn check_cast_for_escaping_regions(
516516
target_ty: ty::t,
517517
source_span: Span)
518518
{
519-
// Determine what type we are casting to; if it is not an trait, then no
519+
// Determine what type we are casting to; if it is not a trait, then no
520520
// worries.
521521
match ty::get(target_ty).sty {
522522
ty::ty_trait(..) => {}

0 commit comments

Comments
 (0)