Skip to content

Commit 551da06

Browse files
committed
auto merge of #12311 : brson/rust/unstable, r=alexcrichton
With the stability attributes we can put public-but unstable modules next to others, so this moves `intrinsics` and `raw` out of the `unstable` module (and marks both as `#[experimental]`).
2 parents c250c16 + db11184 commit 551da06

Some content is hidden

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

57 files changed

+115
-127
lines changed

src/libarena/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ use std::num;
3737
use std::kinds::marker;
3838
use std::rc::Rc;
3939
use std::rt::global_heap;
40-
use std::unstable::intrinsics::{TyDesc, get_tydesc};
41-
use std::unstable::intrinsics;
40+
use std::intrinsics::{TyDesc, get_tydesc};
41+
use std::intrinsics;
4242
use std::vec;
4343

4444
// The way arena uses arrays is really deeply awful. The arrays are

src/libgreen/context.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ use std::uint;
1212
use std::cast::{transmute, transmute_mut_unsafe,
1313
transmute_region, transmute_mut_region};
1414
use stack::Stack;
15-
use std::unstable::stack;
16-
use std::unstable::raw;
15+
use std::rt::stack;
16+
use std::raw;
1717

1818
// FIXME #7761: Registers is boxed so that it is 16-byte aligned, for storing
1919
// SSE regs. It would be marginally better not to do this. In C++ we

src/libgreen/macros.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ memory and partly incapable of presentation to others.",
124124
abort();
125125

126126
fn abort() -> ! {
127-
use std::unstable::intrinsics;
127+
use std::intrinsics;
128128
unsafe { intrinsics::abort() }
129129
}
130130
}

src/libgreen/sched.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ use std::rt::task::BlockedTask;
1616
use std::rt::task::Task;
1717
use std::sync::deque;
1818
use std::unstable::mutex::NativeMutex;
19-
use std::unstable::raw;
19+
use std::raw;
2020

2121
use TaskState;
2222
use context::Context;

src/libgreen/task.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ use std::rt::rtio;
2626
use std::rt::task::{Task, BlockedTask, SendMessage};
2727
use std::task::TaskOpts;
2828
use std::unstable::mutex::NativeMutex;
29-
use std::unstable::raw;
29+
use std::raw;
3030

3131
use context::Context;
3232
use coroutine::Coroutine;

src/libnative/io/pipe_unix.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use std::libc;
1515
use std::mem;
1616
use std::rt::rtio;
1717
use std::sync::arc::UnsafeArc;
18-
use std::unstable::intrinsics;
18+
use std::intrinsics;
1919

2020
use super::{IoResult, retry};
2121
use super::file::{keep_going, fd_t};

src/libnative/io/pipe_win32.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ use std::os::win32::as_utf16_p;
9090
use std::ptr;
9191
use std::rt::rtio;
9292
use std::sync::arc::UnsafeArc;
93-
use std::unstable::intrinsics;
93+
use std::intrinsics;
9494

9595
use super::IoResult;
9696

src/libnative/task.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ use std::rt::thread::Thread;
2323
use std::rt;
2424
use std::task::TaskOpts;
2525
use std::unstable::mutex::NativeMutex;
26-
use std::unstable::stack;
26+
use std::rt::stack;
2727

2828
use io;
2929
use task;

src/librustc/back/archive.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ use std::libc;
2222
use std::os;
2323
use std::run::{ProcessOptions, Process, ProcessOutput};
2424
use std::str;
25-
use std::unstable::raw;
25+
use std::raw;
2626
use extra::tempfile::TempDir;
2727
use syntax::abi;
2828

src/librustdoc/html/markdown.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ use std::io;
3232
use std::libc;
3333
use std::mem;
3434
use std::str;
35-
use std::unstable::intrinsics;
35+
use std::intrinsics;
3636
use std::vec;
3737

3838
/// A unit struct which has the `fmt::Show` trait implemented. When

src/libstd/any.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ use fmt;
2525
use option::{Option, Some, None};
2626
use result::{Result, Ok, Err};
2727
use to_str::ToStr;
28-
use unstable::intrinsics::TypeId;
29-
use unstable::intrinsics;
28+
use intrinsics::TypeId;
29+
use intrinsics;
3030

3131
/// A type with no inhabitants
3232
pub enum Void { }

src/libstd/c_str.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ use str;
7979
use vec::{ImmutableVector, MutableVector};
8080
use vec;
8181
use rt::global_heap::malloc_raw;
82-
use unstable::raw::Slice;
82+
use raw::Slice;
8383

8484
/// The representation of a C String.
8585
///

src/libstd/cast.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
//! Unsafe casting functions
1212
1313
use mem;
14-
use unstable::intrinsics;
14+
use intrinsics;
1515
use ptr::copy_nonoverlapping_memory;
1616

1717
/// Casts the value at `src` to U. The two types must have the same length.
@@ -113,7 +113,7 @@ pub unsafe fn copy_lifetime_vec<'a,S,T>(_ptr: &'a [S], ptr: &T) -> &'a T {
113113
#[cfg(test)]
114114
mod tests {
115115
use cast::{bump_box_refcount, transmute};
116-
use unstable::raw;
116+
use raw;
117117

118118
#[test]
119119
fn test_transmute_copy() {

src/libstd/cleanup.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
#[doc(hidden)];
1212

1313
use ptr;
14-
use unstable::raw;
14+
use raw;
1515

1616
static RC_IMMORTAL : uint = 0x77777777;
1717

src/libstd/unstable/intrinsics.rs renamed to src/libstd/intrinsics.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,11 @@ A quick refresher on memory ordering:
4141
4242
*/
4343

44+
#[allow(missing_doc)];
45+
4446
// This is needed to prevent duplicate lang item definitions.
4547
#[cfg(test)]
46-
pub use realstd::unstable::intrinsics::{TyDesc, Opaque, TyVisitor, TypeId};
48+
pub use realstd::intrinsics::{TyDesc, Opaque, TyVisitor, TypeId};
4749

4850
pub type GlueFn = extern "Rust" fn(*i8);
4951

src/libstd/lib.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,10 @@ pub mod reflect;
194194
// Private APIs
195195
#[unstable]
196196
pub mod unstable;
197-
197+
#[experimental]
198+
pub mod intrinsics;
199+
#[experimental]
200+
pub mod raw;
198201

199202
/* For internal use, not exported */
200203

src/libstd/local_data.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ fn get_with<T:'static,
281281
}
282282

283283
fn abort() -> ! {
284-
use std::unstable::intrinsics;
284+
use intrinsics;
285285
unsafe { intrinsics::abort() }
286286
}
287287

src/libstd/managed.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
/// Returns the refcount of a shared box (as just before calling this)
1616
#[inline]
1717
pub fn refcount<T>(t: @T) -> uint {
18-
use unstable::raw::Repr;
18+
use raw::Repr;
1919
unsafe { (*t.repr()).ref_count - 1 }
2020
}
2121

src/libstd/mem.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717

1818
use cast;
1919
use ptr;
20-
use unstable::intrinsics;
21-
use unstable::intrinsics::{bswap16, bswap32, bswap64};
20+
use intrinsics;
21+
use intrinsics::{bswap16, bswap32, bswap64};
2222

2323
/// Returns the size of a type in bytes.
2424
#[inline]

src/libstd/num/f32.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ use num::{FPCategory, FPNaN, FPInfinite , FPZero, FPSubnormal, FPNormal};
2020
use num::{Zero, One, Bounded, strconv};
2121
use num;
2222
use to_str;
23-
use unstable::intrinsics;
23+
use intrinsics;
2424

2525
macro_rules! delegate(
2626
(

src/libstd/num/f64.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ use num::{FPCategory, FPNaN, FPInfinite , FPZero, FPSubnormal, FPNormal};
2121
use num::{Zero, One, Bounded, strconv};
2222
use num;
2323
use to_str;
24-
use unstable::intrinsics;
24+
use intrinsics;
2525

2626
pub use cmp::{min, max};
2727

src/libstd/num/i16.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ use num::{CheckedDiv, Zero, One, strconv};
2020
use num::{ToStrRadix, FromStrRadix};
2121
use option::{Option, Some, None};
2222
use str;
23-
use unstable::intrinsics;
23+
use intrinsics;
2424

2525
int_module!(i16, 16)
2626

src/libstd/num/i32.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ use num::{CheckedDiv, Zero, One, strconv};
2020
use num::{ToStrRadix, FromStrRadix};
2121
use option::{Option, Some, None};
2222
use str;
23-
use unstable::intrinsics;
23+
use intrinsics;
2424

2525
int_module!(i32, 32)
2626

src/libstd/num/i64.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ use num::{CheckedDiv, Zero, One, strconv};
2222
use num::{ToStrRadix, FromStrRadix};
2323
use option::{Option, Some, None};
2424
use str;
25-
use unstable::intrinsics;
25+
use intrinsics;
2626

2727
int_module!(i64, 64)
2828

src/libstd/num/i8.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ use num::{CheckedDiv, Zero, One, strconv};
2020
use num::{ToStrRadix, FromStrRadix};
2121
use option::{Option, Some, None};
2222
use str;
23-
use unstable::intrinsics;
23+
use intrinsics;
2424

2525
int_module!(i8, 8)
2626

src/libstd/num/int.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ use num::{CheckedDiv, Zero, One, strconv};
2020
use num::{ToStrRadix, FromStrRadix};
2121
use option::{Option, Some, None};
2222
use str;
23-
use unstable::intrinsics;
23+
use intrinsics;
2424

2525
#[cfg(target_word_size = "32")] int_module!(int, 32)
2626
#[cfg(target_word_size = "64")] int_module!(int, 64)

src/libstd/num/u16.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ use num::{CheckedDiv, Zero, One, strconv};
2121
use num::{ToStrRadix, FromStrRadix};
2222
use option::{Option, Some, None};
2323
use str;
24-
use unstable::intrinsics;
24+
use intrinsics;
2525

2626
uint_module!(u16, i16, 16)
2727

src/libstd/num/u32.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ use num::{CheckedDiv, Zero, One, strconv};
2121
use num::{ToStrRadix, FromStrRadix};
2222
use option::{Option, Some, None};
2323
use str;
24-
use unstable::intrinsics;
24+
use intrinsics;
2525

2626
uint_module!(u32, i32, 32)
2727

src/libstd/num/u64.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ use num::{CheckedDiv, Zero, One, strconv};
2323
use num::{ToStrRadix, FromStrRadix};
2424
use option::{Option, Some, None};
2525
use str;
26-
use unstable::intrinsics;
26+
use intrinsics;
2727

2828
uint_module!(u64, i64, 64)
2929

src/libstd/num/u8.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ use num::{CheckedDiv, Zero, One, strconv};
2121
use num::{ToStrRadix, FromStrRadix};
2222
use option::{Option, Some, None};
2323
use str;
24-
use unstable::intrinsics;
24+
use intrinsics;
2525

2626
uint_module!(u8, i8, 8)
2727

src/libstd/num/uint.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ use num::{CheckedDiv, Zero, One, strconv};
2121
use num::{ToStrRadix, FromStrRadix};
2222
use option::{Option, Some, None};
2323
use str;
24-
use unstable::intrinsics;
24+
use intrinsics;
2525

2626
uint_module!(uint, int, ::int::BITS)
2727

src/libstd/ptr.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ use cmp::Equiv;
1717
use iter::{range, Iterator};
1818
use mem;
1919
use option::{Option, Some, None};
20-
use unstable::intrinsics;
20+
use intrinsics;
2121

2222
#[cfg(not(test))] use cmp::{Eq, Ord};
2323

src/libstd/unstable/raw.rs renamed to src/libstd/raw.rs

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

11+
#[allow(missing_doc)];
12+
1113
use cast;
1214

1315
/// The representation of a Rust managed box

src/libstd/reflect.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ Runtime type reflection
1616

1717
#[allow(missing_doc)];
1818

19-
use unstable::intrinsics::{Disr, Opaque, TyDesc, TyVisitor};
19+
use intrinsics::{Disr, Opaque, TyDesc, TyVisitor};
2020
use mem;
21-
use unstable::raw;
21+
use raw;
2222

2323
/**
2424
* Trait for visitor that wishes to reflect on data. To use this, create a

src/libstd/repr.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ use result::{Ok, Err};
2929
use str::StrSlice;
3030
use to_str::ToStr;
3131
use vec::OwnedVector;
32-
use unstable::intrinsics::{Disr, Opaque, TyDesc, TyVisitor, get_tydesc, visit_tydesc};
33-
use unstable::raw;
32+
use intrinsics::{Disr, Opaque, TyDesc, TyVisitor, get_tydesc, visit_tydesc};
33+
use raw;
3434

3535
macro_rules! try( ($me:expr, $e:expr) => (
3636
match $e {

src/libstd/rt/global_heap.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010

1111
use libc::{c_void, size_t, free, malloc, realloc};
1212
use ptr::{RawPtr, mut_null};
13-
use unstable::intrinsics::abort;
14-
use unstable::raw;
13+
use intrinsics::abort;
14+
use raw;
1515
use mem::size_of;
1616

1717
#[inline]

src/libstd/rt/local_heap.rs

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ use ptr::RawPtr;
2020
use rt::global_heap;
2121
use rt::local::Local;
2222
use rt::task::Task;
23-
use unstable::raw;
23+
use raw;
2424
use vec::ImmutableVector;
2525
use vec_ng::Vec;
2626

@@ -276,6 +276,14 @@ impl Drop for MemoryRegion {
276276
}
277277
}
278278

279+
280+
#[cfg(not(test))]
281+
#[lang="malloc"]
282+
#[inline]
283+
pub unsafe fn local_malloc_(drop_glue: fn(*mut u8), size: uint, align: uint) -> *u8 {
284+
local_malloc(drop_glue, size, align)
285+
}
286+
279287
#[inline]
280288
pub unsafe fn local_malloc(drop_glue: fn(*mut u8), size: uint, align: uint) -> *u8 {
281289
// FIXME: Unsafe borrow for speed. Lame.
@@ -288,7 +296,16 @@ pub unsafe fn local_malloc(drop_glue: fn(*mut u8), size: uint, align: uint) -> *
288296
}
289297
}
290298

291-
// A little compatibility function
299+
#[cfg(not(test))]
300+
#[lang="free"]
301+
#[inline]
302+
pub unsafe fn local_free_(ptr: *u8) {
303+
local_free(ptr)
304+
}
305+
306+
// NB: Calls to free CANNOT be allowed to fail, as throwing an exception from
307+
// inside a landing pad may corrupt the state of the exception handler. If a
308+
// problem occurs, call exit instead.
292309
#[inline]
293310
pub unsafe fn local_free(ptr: *u8) {
294311
// FIXME: Unsafe borrow for speed. Lame.

0 commit comments

Comments
 (0)