diff --git a/src/libcore/extfmt.rs b/src/libcore/extfmt.rs index ed0625624d80a..259895da2a514 100644 --- a/src/libcore/extfmt.rs +++ b/src/libcore/extfmt.rs @@ -499,12 +499,6 @@ pub mod rt { pub enum Ty { TyDefault, TyBits, TyHexUpper, TyHexLower, TyOctal, } - #[cfg(stage0)] - pub type Conv = {flags: u32, width: Count, precision: Count, ty: Ty}; - - #[cfg(stage1)] - #[cfg(stage2)] - #[cfg(stage3)] pub struct Conv { flags: u32, width: Count, diff --git a/src/libcore/pipes.rs b/src/libcore/pipes.rs index 254e6010b1b2e..5f9eed7086871 100644 --- a/src/libcore/pipes.rs +++ b/src/libcore/pipes.rs @@ -142,15 +142,6 @@ pub fn BufferHeader() -> BufferHeader { // This is for protocols to associate extra data to thread around. #[doc(hidden)] -#[cfg(stage0)] -type Buffer = { - header: BufferHeader, - data: T, -}; -#[doc(hidden)] -#[cfg(stage1)] -#[cfg(stage2)] -#[cfg(stage3)] pub struct Buffer { header: BufferHeader, data: T, @@ -212,14 +203,6 @@ impl PacketHeader { } #[doc(hidden)] -#[cfg(stage0)] -pub struct Packet { - header: PacketHeader, - mut payload: Option, -} -#[doc(hidden)] -#[cfg(stage1)] -#[cfg(stage2)] pub struct Packet { header: PacketHeader, mut payload: Option, @@ -228,16 +211,12 @@ pub struct Packet { #[doc(hidden)] pub trait HasBuffer { fn set_buffer(b: *libc::c_void); - // FIXME #4421 remove after snapshot - fn set_buffer_(b: *libc::c_void); } impl Packet: HasBuffer { fn set_buffer(b: *libc::c_void) { self.header.buffer = b; } - // FIXME #4421 remove after snapshot - fn set_buffer_(b: *libc::c_void) { self.set_buffer(b) } } #[doc(hidden)] @@ -247,27 +226,7 @@ pub fn mk_packet() -> Packet { payload: None, } } - #[doc(hidden)] -#[cfg(stage0)] -fn unibuffer() -> ~Buffer> { - let b = ~{ - header: BufferHeader(), - data: Packet { - header: PacketHeader(), - payload: None, - } - }; - - unsafe { - b.data.header.buffer = reinterpret_cast(&b); - } - move b -} -#[doc(hidden)] -#[cfg(stage1)] -#[cfg(stage2)] -#[cfg(stage3)] fn unibuffer() -> ~Buffer> { let b = ~Buffer { header: BufferHeader(), @@ -284,17 +243,6 @@ fn unibuffer() -> ~Buffer> { } #[doc(hidden)] -#[cfg(stage0)] -pub fn packet() -> *Packet { - let b = unibuffer(); - let p = ptr::addr_of(&(b.data)); - // We'll take over memory management from here. - unsafe { forget(move b) } - p -} -#[doc(hidden)] -#[cfg(stage1)] -#[cfg(stage2)] pub fn packet() -> *Packet { let b = unibuffer(); let p = ptr::addr_of(&(b.data)); @@ -405,42 +353,11 @@ fn swap_state_rel(dst: &mut State, src: State) -> State { } #[doc(hidden)] -#[cfg(stage0)] -pub unsafe fn get_buffer(p: *PacketHeader) -> ~Buffer { - transmute((*p).buf_header()) -} -#[doc(hidden)] -#[cfg(stage1)] -#[cfg(stage2)] pub unsafe fn get_buffer(p: *PacketHeader) -> ~Buffer { transmute((*p).buf_header()) } // This could probably be done with SharedMutableState to avoid move_it!(). -#[cfg(stage0)] -struct BufferResource { - buffer: ~Buffer, - - drop { - unsafe { - let b = move_it!(self.buffer); - //let p = ptr::addr_of(*b); - //error!("drop %?", p); - let old_count = atomic_sub_rel(&mut b.header.ref_count, 1); - //let old_count = atomic_xchng_rel(b.header.ref_count, 0); - if old_count == 1 { - // The new count is 0. - - // go go gadget drop glue - } - else { - forget(move b) - } - } - } -} -#[cfg(stage1)] -#[cfg(stage2)] struct BufferResource { buffer: ~Buffer, @@ -463,19 +380,6 @@ struct BufferResource { } } -#[cfg(stage0)] -fn BufferResource(b: ~Buffer) -> BufferResource { - //let p = ptr::addr_of(*b); - //error!("take %?", p); - atomic_add_acq(&mut b.header.ref_count, 1); - - BufferResource { - // tjc: ???? - buffer: move b - } -} -#[cfg(stage1)] -#[cfg(stage2)] fn BufferResource(b: ~Buffer) -> BufferResource { //let p = ptr::addr_of(*b); //error!("take %?", p); @@ -488,51 +392,6 @@ fn BufferResource(b: ~Buffer) -> BufferResource { } #[doc(hidden)] -#[cfg(stage0)] -pub fn send(p: SendPacketBuffered, - payload: T) -> bool { - let header = p.header(); - let p_ = p.unwrap(); - let p = unsafe { &*p_ }; - assert ptr::addr_of(&(p.header)) == header; - assert p.payload.is_none(); - p.payload = move Some(move payload); - let old_state = swap_state_rel(&mut p.header.state, Full); - match old_state { - Empty => { - // Yay, fastpath. - - // The receiver will eventually clean this up. - //unsafe { forget(p); } - return true; - } - Full => die!(~"duplicate send"), - Blocked => { - debug!("waking up task for %?", p_); - let old_task = swap_task(&mut p.header.blocked_task, ptr::null()); - if !old_task.is_null() { - unsafe { - rustrt::task_signal_event( - old_task, - ptr::addr_of(&(p.header)) as *libc::c_void); - rustrt::rust_task_deref(old_task); - } - } - - // The receiver will eventually clean this up. - //unsafe { forget(p); } - return true; - } - Terminated => { - // The receiver will never receive this. Rely on drop_glue - // to clean everything up. - return false; - } - } -} -#[doc(hidden)] -#[cfg(stage1)] -#[cfg(stage2)] pub fn send(p: SendPacketBuffered, payload: T) -> bool { let header = p.header(); let p_ = p.unwrap(); @@ -918,44 +777,13 @@ pub fn select(endpoints: ~[RecvPacketBuffered]) message. */ -#[cfg(stage0)] -pub type SendPacket = SendPacketBuffered>; -#[cfg(stage1)] -#[cfg(stage2)] pub type SendPacket = SendPacketBuffered>; #[doc(hidden)] -#[cfg(stage0)] -pub fn SendPacket(p: *Packet) -> SendPacket { - SendPacketBuffered(p) -} -#[cfg(stage1)] -#[cfg(stage2)] pub fn SendPacket(p: *Packet) -> SendPacket { SendPacketBuffered(p) } -#[cfg(stage0)] -pub struct SendPacketBuffered { - mut p: Option<*Packet>, - mut buffer: Option>, - drop { - //if self.p != none { - // debug!("drop send %?", option::get(self.p)); - //} - if self.p != None { - let mut p = None; - p <-> self.p; - sender_terminate(option::unwrap(move p)) - } - //unsafe { error!("send_drop: %?", - // if self.buffer == none { - // "none" - // } else { "some" }); } - } -} -#[cfg(stage1)] -#[cfg(stage2)] pub struct SendPacketBuffered { mut p: Option<*Packet>, mut buffer: Option>, @@ -978,20 +806,6 @@ impl SendPacketBuffered : ::ops::Drop { } } -#[cfg(stage0)] -pub fn SendPacketBuffered(p: *Packet) - -> SendPacketBuffered { - //debug!("take send %?", p); - SendPacketBuffered { - p: Some(p), - buffer: unsafe { - Some(BufferResource( - get_buffer(ptr::addr_of(&((*p).header))))) - } - } -} -#[cfg(stage1)] -#[cfg(stage2)] pub fn SendPacketBuffered(p: *Packet) -> SendPacketBuffered { //debug!("take send %?", p); @@ -1004,35 +818,6 @@ pub fn SendPacketBuffered(p: *Packet) } } -#[cfg(stage0)] -impl SendPacketBuffered { - fn unwrap() -> *Packet { - let mut p = None; - p <-> self.p; - option::unwrap(move p) - } - - pure fn header() -> *PacketHeader { - match self.p { - Some(packet) => unsafe { - let packet = &*packet; - let header = ptr::addr_of(&(packet.header)); - //forget(packet); - header - }, - None => die!(~"packet already consumed") - } - } - - fn reuse_buffer() -> BufferResource { - //error!("send reuse_buffer"); - let mut tmp = None; - tmp <-> self.buffer; - option::unwrap(move tmp) - } -} -#[cfg(stage1)] -#[cfg(stage2)] impl SendPacketBuffered { fn unwrap() -> *Packet { let mut p = None; @@ -1062,45 +847,12 @@ impl SendPacketBuffered { /// Represents the receive end of a pipe. It can receive exactly one /// message. -#[cfg(stage0)] -pub type RecvPacket = RecvPacketBuffered>; -#[cfg(stage1)] -#[cfg(stage2)] pub type RecvPacket = RecvPacketBuffered>; #[doc(hidden)] -#[cfg(stage0)] -pub fn RecvPacket(p: *Packet) -> RecvPacket { - RecvPacketBuffered(p) -} -#[doc(hidden)] -#[cfg(stage1)] -#[cfg(stage2)] pub fn RecvPacket(p: *Packet) -> RecvPacket { RecvPacketBuffered(p) } - -#[cfg(stage0)] -pub struct RecvPacketBuffered { - mut p: Option<*Packet>, - mut buffer: Option>, - drop { - //if self.p != none { - // debug!("drop recv %?", option::get(self.p)); - //} - if self.p != None { - let mut p = None; - p <-> self.p; - receiver_terminate(option::unwrap(move p)) - } - //unsafe { error!("recv_drop: %?", - // if self.buffer == none { - // "none" - // } else { "some" }); } - } -} -#[cfg(stage1)] -#[cfg(stage2)] pub struct RecvPacketBuffered { mut p: Option<*Packet>, mut buffer: Option>, @@ -1152,20 +904,6 @@ impl RecvPacketBuffered : Selectable { } } -#[cfg(stage0)] -pub fn RecvPacketBuffered(p: *Packet) - -> RecvPacketBuffered { - //debug!("take recv %?", p); - RecvPacketBuffered { - p: Some(p), - buffer: unsafe { - Some(BufferResource( - get_buffer(ptr::addr_of(&((*p).header))))) - } - } -} -#[cfg(stage1)] -#[cfg(stage2)] pub fn RecvPacketBuffered(p: *Packet) -> RecvPacketBuffered { //debug!("take recv %?", p); @@ -1179,14 +917,6 @@ pub fn RecvPacketBuffered(p: *Packet) } #[doc(hidden)] -#[cfg(stage0)] -pub fn entangle() -> (SendPacket, RecvPacket) { - let p = packet(); - (SendPacket(p), RecvPacket(p)) -} -#[doc(hidden)] -#[cfg(stage1)] -#[cfg(stage2)] pub fn entangle() -> (SendPacket, RecvPacket) { let p = packet(); (SendPacket(p), RecvPacket(p)) @@ -1282,47 +1012,21 @@ pub trait Peekable { } #[doc(hidden)] -#[cfg(stage0)] -struct Chan_ { - mut endp: Option> -} -#[doc(hidden)] -#[cfg(stage1)] -#[cfg(stage2)] struct Chan_ { mut endp: Option> } /// An endpoint that can send many messages. -#[cfg(stage0)] -pub enum Chan { - Chan_(Chan_) -} -#[cfg(stage1)] -#[cfg(stage2)] pub enum Chan { Chan_(Chan_) } #[doc(hidden)] -#[cfg(stage0)] -struct Port_ { - mut endp: Option>, -} -#[doc(hidden)] -#[cfg(stage1)] -#[cfg(stage2)] struct Port_ { mut endp: Option>, } /// An endpoint that can receive many messages. -#[cfg(stage0)] -pub enum Port { - Port_(Port_) -} -#[cfg(stage1)] -#[cfg(stage2)] pub enum Port { Port_(Port_) } @@ -1411,12 +1115,6 @@ impl Port: Selectable { } /// Treat many ports as one. -#[cfg(stage0)] -pub struct PortSet { - mut ports: ~[pipes::Port], -} -#[cfg(stage1)] -#[cfg(stage2)] pub struct PortSet { mut ports: ~[pipes::Port], } @@ -1482,10 +1180,6 @@ impl PortSet : Peekable { } /// A channel that can be shared between many senders. -#[cfg(stage0)] -pub type SharedChan = private::Exclusive>; -#[cfg(stage1)] -#[cfg(stage2)] pub type SharedChan = private::Exclusive>; impl SharedChan: GenericChan { @@ -1554,16 +1248,8 @@ proto! oneshot ( ) /// The send end of a oneshot pipe. -#[cfg(stage0)] -pub type ChanOne = oneshot::client::Oneshot; -#[cfg(stage1)] -#[cfg(stage2)] pub type ChanOne = oneshot::client::Oneshot; /// The receive end of a oneshot pipe. -#[cfg(stage0)] -pub type PortOne = oneshot::server::Oneshot; -#[cfg(stage1)] -#[cfg(stage2)] pub type PortOne = oneshot::server::Oneshot; /// Initialiase a (send-endpoint, recv-endpoint) oneshot pipe pair. diff --git a/src/libcore/reflect.rs b/src/libcore/reflect.rs index 94fc9e37a7519..dcbb706767044 100644 --- a/src/libcore/reflect.rs +++ b/src/libcore/reflect.rs @@ -75,434 +75,6 @@ impl MovePtrAdaptor { } /// Abstract type-directed pointer-movement using the MovePtr trait -#[cfg(stage0)] -impl MovePtrAdaptor: TyVisitor { - fn visit_bot() -> bool { - self.align_to::<()>(); - if ! self.inner.visit_bot() { return false; } - self.bump_past::<()>(); - true - } - - fn visit_nil() -> bool { - self.align_to::<()>(); - if ! self.inner.visit_nil() { return false; } - self.bump_past::<()>(); - true - } - - fn visit_bool() -> bool { - self.align_to::(); - if ! self.inner.visit_bool() { return false; } - self.bump_past::(); - true - } - - fn visit_int() -> bool { - self.align_to::(); - if ! self.inner.visit_int() { return false; } - self.bump_past::(); - true - } - - fn visit_i8() -> bool { - self.align_to::(); - if ! self.inner.visit_i8() { return false; } - self.bump_past::(); - true - } - - fn visit_i16() -> bool { - self.align_to::(); - if ! self.inner.visit_i16() { return false; } - self.bump_past::(); - true - } - - fn visit_i32() -> bool { - self.align_to::(); - if ! self.inner.visit_i32() { return false; } - self.bump_past::(); - true - } - - fn visit_i64() -> bool { - self.align_to::(); - if ! self.inner.visit_i64() { return false; } - self.bump_past::(); - true - } - - fn visit_uint() -> bool { - self.align_to::(); - if ! self.inner.visit_uint() { return false; } - self.bump_past::(); - true - } - - fn visit_u8() -> bool { - self.align_to::(); - if ! self.inner.visit_u8() { return false; } - self.bump_past::(); - true - } - - fn visit_u16() -> bool { - self.align_to::(); - if ! self.inner.visit_u16() { return false; } - self.bump_past::(); - true - } - - fn visit_u32() -> bool { - self.align_to::(); - if ! self.inner.visit_u32() { return false; } - self.bump_past::(); - true - } - - fn visit_u64() -> bool { - self.align_to::(); - if ! self.inner.visit_u64() { return false; } - self.bump_past::(); - true - } - - fn visit_float() -> bool { - self.align_to::(); - if ! self.inner.visit_float() { return false; } - self.bump_past::(); - true - } - - fn visit_f32() -> bool { - self.align_to::(); - if ! self.inner.visit_f32() { return false; } - self.bump_past::(); - true - } - - fn visit_f64() -> bool { - self.align_to::(); - if ! self.inner.visit_f64() { return false; } - self.bump_past::(); - true - } - - fn visit_char() -> bool { - self.align_to::(); - if ! self.inner.visit_char() { return false; } - self.bump_past::(); - true - } - - fn visit_str() -> bool { - self.align_to::<~str>(); - if ! self.inner.visit_str() { return false; } - self.bump_past::<~str>(); - true - } - - fn visit_estr_box() -> bool { - self.align_to::<@str>(); - if ! self.inner.visit_estr_box() { return false; } - self.bump_past::<@str>(); - true - } - - fn visit_estr_uniq() -> bool { - self.align_to::<~str>(); - if ! self.inner.visit_estr_uniq() { return false; } - self.bump_past::<~str>(); - true - } - - fn visit_estr_slice() -> bool { - self.align_to::<&static/str>(); - if ! self.inner.visit_estr_slice() { return false; } - self.bump_past::<&static/str>(); - true - } - - fn visit_estr_fixed(n: uint, - sz: uint, - align: uint) -> bool { - self.align(align); - if ! self.inner.visit_estr_fixed(n, sz, align) { return false; } - self.bump(sz); - true - } - - fn visit_box(mtbl: uint, inner: *TyDesc) -> bool { - self.align_to::<@u8>(); - if ! self.inner.visit_box(mtbl, inner) { return false; } - self.bump_past::<@u8>(); - true - } - - fn visit_uniq(mtbl: uint, inner: *TyDesc) -> bool { - self.align_to::<~u8>(); - if ! self.inner.visit_uniq(mtbl, inner) { return false; } - self.bump_past::<~u8>(); - true - } - - fn visit_ptr(mtbl: uint, inner: *TyDesc) -> bool { - self.align_to::<*u8>(); - if ! self.inner.visit_ptr(mtbl, inner) { return false; } - self.bump_past::<*u8>(); - true - } - - fn visit_rptr(mtbl: uint, inner: *TyDesc) -> bool { - self.align_to::<&static/u8>(); - if ! self.inner.visit_rptr(mtbl, inner) { return false; } - self.bump_past::<&static/u8>(); - true - } - - fn visit_unboxed_vec(mtbl: uint, inner: *TyDesc) -> bool { - self.align_to::(); - if ! self.inner.visit_vec(mtbl, inner) { return false; } - true - } - - fn visit_vec(mtbl: uint, inner: *TyDesc) -> bool { - self.align_to::<~[u8]>(); - if ! self.inner.visit_vec(mtbl, inner) { return false; } - self.bump_past::<~[u8]>(); - true - } - - fn visit_evec_box(mtbl: uint, inner: *TyDesc) -> bool { - self.align_to::<@[u8]>(); - if ! self.inner.visit_evec_box(mtbl, inner) { return false; } - self.bump_past::<@[u8]>(); - true - } - - fn visit_evec_uniq(mtbl: uint, inner: *TyDesc) -> bool { - self.align_to::<~[u8]>(); - if ! self.inner.visit_evec_uniq(mtbl, inner) { return false; } - self.bump_past::<~[u8]>(); - true - } - - fn visit_evec_slice(mtbl: uint, inner: *TyDesc) -> bool { - self.align_to::<&static/[u8]>(); - if ! self.inner.visit_evec_slice(mtbl, inner) { return false; } - self.bump_past::<&static/[u8]>(); - true - } - - fn visit_evec_fixed(n: uint, sz: uint, align: uint, - mtbl: uint, inner: *TyDesc) -> bool { - self.align(align); - if ! self.inner.visit_evec_fixed(n, sz, align, mtbl, inner) { - return false; - } - self.bump(sz); - true - } - - fn visit_enter_rec(n_fields: uint, sz: uint, align: uint) -> bool { - self.align(align); - if ! self.inner.visit_enter_rec(n_fields, sz, align) { return false; } - true - } - - fn visit_rec_field(i: uint, name: &str, - mtbl: uint, inner: *TyDesc) -> bool { - unsafe { self.align((*inner).align); } - if ! self.inner.visit_rec_field(i, name, mtbl, inner) { - return false; - } - unsafe { self.bump((*inner).size); } - true - } - - fn visit_leave_rec(n_fields: uint, sz: uint, align: uint) -> bool { - if ! self.inner.visit_leave_rec(n_fields, sz, align) { return false; } - true - } - - fn visit_enter_class(n_fields: uint, sz: uint, align: uint) - -> bool { - self.align(align); - if ! self.inner.visit_enter_class(n_fields, sz, align) { - return false; - } - true - } - - fn visit_class_field(i: uint, name: &str, - mtbl: uint, inner: *TyDesc) -> bool { - unsafe { self.align((*inner).align); } - if ! self.inner.visit_class_field(i, name, mtbl, inner) { - return false; - } - unsafe { self.bump((*inner).size); } - true - } - - fn visit_leave_class(n_fields: uint, sz: uint, align: uint) - -> bool { - if ! self.inner.visit_leave_class(n_fields, sz, align) { - return false; - } - true - } - - fn visit_enter_tup(n_fields: uint, sz: uint, align: uint) -> bool { - self.align(align); - if ! self.inner.visit_enter_tup(n_fields, sz, align) { return false; } - true - } - - fn visit_tup_field(i: uint, inner: *TyDesc) -> bool { - unsafe { self.align((*inner).align); } - if ! self.inner.visit_tup_field(i, inner) { return false; } - unsafe { self.bump((*inner).size); } - true - } - - fn visit_leave_tup(n_fields: uint, sz: uint, align: uint) -> bool { - if ! self.inner.visit_leave_tup(n_fields, sz, align) { return false; } - true - } - - fn visit_enter_fn(purity: uint, proto: uint, - n_inputs: uint, retstyle: uint) -> bool { - if ! self.inner.visit_enter_fn(purity, proto, n_inputs, retstyle) { - return false - } - true - } - - fn visit_fn_input(i: uint, mode: uint, inner: *TyDesc) -> bool { - if ! self.inner.visit_fn_input(i, mode, inner) { return false; } - true - } - - fn visit_fn_output(retstyle: uint, inner: *TyDesc) -> bool { - if ! self.inner.visit_fn_output(retstyle, inner) { return false; } - true - } - - fn visit_leave_fn(purity: uint, proto: uint, - n_inputs: uint, retstyle: uint) -> bool { - if ! self.inner.visit_leave_fn(purity, proto, n_inputs, retstyle) { - return false; - } - true - } - - fn visit_enter_enum(n_variants: uint, sz: uint, align: uint) - -> bool { - self.align(align); - if ! self.inner.visit_enter_enum(n_variants, sz, align) { - return false; - } - true - } - - fn visit_enter_enum_variant(variant: uint, - disr_val: int, - n_fields: uint, - name: &str) -> bool { - self.inner.push_ptr(); - if ! self.inner.visit_enter_enum_variant(variant, disr_val, - n_fields, name) { - return false; - } - true - } - - fn visit_enum_variant_field(i: uint, inner: *TyDesc) -> bool { - unsafe { self.align((*inner).align); } - if ! self.inner.visit_enum_variant_field(i, inner) { return false; } - unsafe { self.bump((*inner).size); } - true - } - - fn visit_leave_enum_variant(variant: uint, - disr_val: int, - n_fields: uint, - name: &str) -> bool { - if ! self.inner.visit_leave_enum_variant(variant, disr_val, - n_fields, name) { - return false; - } - self.inner.pop_ptr(); - true - } - - fn visit_leave_enum(n_variants: uint, sz: uint, align: uint) - -> bool { - if ! self.inner.visit_leave_enum(n_variants, sz, align) { - return false; - } - self.bump(sz); - true - } - - fn visit_trait() -> bool { - self.align_to::(); - if ! self.inner.visit_trait() { return false; } - self.bump_past::(); - true - } - - fn visit_var() -> bool { - if ! self.inner.visit_var() { return false; } - true - } - - fn visit_var_integral() -> bool { - if ! self.inner.visit_var_integral() { return false; } - true - } - - fn visit_param(i: uint) -> bool { - if ! self.inner.visit_param(i) { return false; } - true - } - - fn visit_self() -> bool { - self.align_to::<&static/u8>(); - if ! self.inner.visit_self() { return false; } - self.align_to::<&static/u8>(); - true - } - - fn visit_type() -> bool { - if ! self.inner.visit_type() { return false; } - true - } - - fn visit_opaque_box() -> bool { - self.align_to::<@u8>(); - if ! self.inner.visit_opaque_box() { return false; } - self.bump_past::<@u8>(); - true - } - - fn visit_constr(inner: *TyDesc) -> bool { - if ! self.inner.visit_constr(inner) { return false; } - true - } - - fn visit_closure_ptr(ck: uint) -> bool { - self.align_to::(); - if ! self.inner.visit_closure_ptr(ck) { return false; } - self.bump_past::(); - true - } -} - -/// Abstract type-directed pointer-movement using the MovePtr trait -#[cfg(stage1)] -#[cfg(stage2)] impl MovePtrAdaptor: TyVisitor { fn visit_bot(&self) -> bool { self.align_to::<()>(); diff --git a/src/libcore/repr.rs b/src/libcore/repr.rs index 2f77e71bef005..1f04f9e77a9d3 100644 --- a/src/libcore/repr.rs +++ b/src/libcore/repr.rs @@ -265,303 +265,6 @@ impl ReprVisitor { } -#[cfg(stage0)] -impl ReprVisitor : TyVisitor { - fn visit_bot() -> bool { - self.writer.write_str("!"); - true - } - fn visit_nil() -> bool { self.write::<()>() } - fn visit_bool() -> bool { self.write::() } - fn visit_int() -> bool { self.write::() } - fn visit_i8() -> bool { self.write::() } - fn visit_i16() -> bool { self.write::() } - fn visit_i32() -> bool { self.write::() } - fn visit_i64() -> bool { self.write::() } - - fn visit_uint() -> bool { self.write::() } - fn visit_u8() -> bool { self.write::() } - fn visit_u16() -> bool { self.write::() } - fn visit_u32() -> bool { self.write::() } - fn visit_u64() -> bool { self.write::() } - - fn visit_float() -> bool { self.write::() } - fn visit_f32() -> bool { self.write::() } - fn visit_f64() -> bool { self.write::() } - - fn visit_char() -> bool { - do self.get:: |&ch| { - self.writer.write_char('\''); - self.writer.write_escaped_char(ch); - self.writer.write_char('\''); - } - } - - // Type no longer exists, vestigial function. - fn visit_str() -> bool { die!(); } - - fn visit_estr_box() -> bool { - do self.get::<@str> |s| { - self.writer.write_char('@'); - self.write_escaped_slice(*s); - } - } - fn visit_estr_uniq() -> bool { - do self.get::<~str> |s| { - self.writer.write_char('~'); - self.write_escaped_slice(*s); - } - } - fn visit_estr_slice() -> bool { - do self.get::<&str> |s| { - self.write_escaped_slice(*s); - } - } - - // Type no longer exists, vestigial function. - fn visit_estr_fixed(_n: uint, _sz: uint, - _align: uint) -> bool { die!(); } - - fn visit_box(mtbl: uint, inner: *TyDesc) -> bool { - self.writer.write_char('@'); - self.write_mut_qualifier(mtbl); - do self.get::<&managed::raw::BoxRepr> |b| { - let p = ptr::to_unsafe_ptr(&b.data) as *c_void; - self.visit_ptr_inner(p, inner); - } - } - - fn visit_uniq(mtbl: uint, inner: *TyDesc) -> bool { - self.writer.write_char('~'); - self.write_mut_qualifier(mtbl); - do self.get::<&managed::raw::BoxRepr> |b| { - let p = ptr::to_unsafe_ptr(&b.data) as *c_void; - self.visit_ptr_inner(p, inner); - } - } - - fn visit_ptr(_mtbl: uint, _inner: *TyDesc) -> bool { - do self.get::<*c_void> |p| { - self.writer.write_str(fmt!("(0x%x as *())", - *p as uint)); - } - } - - fn visit_rptr(mtbl: uint, inner: *TyDesc) -> bool { - self.writer.write_char('&'); - self.write_mut_qualifier(mtbl); - do self.get::<*c_void> |p| { - self.visit_ptr_inner(*p, inner); - } - } - - // Type no longer exists, vestigial function. - fn visit_vec(_mtbl: uint, _inner: *TyDesc) -> bool { die!(); } - - - fn visit_unboxed_vec(mtbl: uint, inner: *TyDesc) -> bool { - do self.get:: |b| { - self.write_unboxed_vec_repr(mtbl, b, inner); - } - } - - fn visit_evec_box(mtbl: uint, inner: *TyDesc) -> bool { - do self.get::<&VecRepr> |b| { - self.writer.write_char('@'); - self.write_unboxed_vec_repr(mtbl, &b.unboxed, inner); - } - } - - fn visit_evec_uniq(mtbl: uint, inner: *TyDesc) -> bool { - do self.get::<&VecRepr> |b| { - self.writer.write_char('~'); - self.write_unboxed_vec_repr(mtbl, &b.unboxed, inner); - } - } - - fn visit_evec_slice(mtbl: uint, inner: *TyDesc) -> bool { - do self.get:: |s| { - self.writer.write_char('&'); - self.write_vec_range(mtbl, s.data, s.len, inner); - } - } - - fn visit_evec_fixed(_n: uint, sz: uint, _align: uint, - mtbl: uint, inner: *TyDesc) -> bool { - do self.get:: |b| { - self.write_vec_range(mtbl, ptr::to_unsafe_ptr(b), sz, inner); - } - } - - fn visit_enter_rec(_n_fields: uint, - _sz: uint, _align: uint) -> bool { - self.writer.write_char('{'); - true - } - - fn visit_rec_field(i: uint, name: &str, - mtbl: uint, inner: *TyDesc) -> bool { - if i != 0 { - self.writer.write_str(", "); - } - self.write_mut_qualifier(mtbl); - self.writer.write_str(name); - self.writer.write_str(": "); - self.visit_inner(inner); - true - } - - fn visit_leave_rec(_n_fields: uint, - _sz: uint, _align: uint) -> bool { - self.writer.write_char('}'); - true - } - - fn visit_enter_class(_n_fields: uint, - _sz: uint, _align: uint) -> bool { - self.writer.write_char('{'); - true - } - fn visit_class_field(i: uint, name: &str, - mtbl: uint, inner: *TyDesc) -> bool { - if i != 0 { - self.writer.write_str(", "); - } - self.write_mut_qualifier(mtbl); - self.writer.write_str(name); - self.writer.write_str(": "); - self.visit_inner(inner); - true - } - fn visit_leave_class(_n_fields: uint, - _sz: uint, _align: uint) -> bool { - self.writer.write_char('}'); - true - } - - fn visit_enter_tup(_n_fields: uint, - _sz: uint, _align: uint) -> bool { - self.writer.write_char('('); - true - } - fn visit_tup_field(i: uint, inner: *TyDesc) -> bool { - if i != 0 { - self.writer.write_str(", "); - } - self.visit_inner(inner); - true - } - fn visit_leave_tup(_n_fields: uint, - _sz: uint, _align: uint) -> bool { - self.writer.write_char(')'); - true - } - - fn visit_enter_enum(n_variants: uint, - _sz: uint, _align: uint) -> bool { - if n_variants == 1 { - self.var_stk.push(Degenerate) - } else { - self.var_stk.push(TagMatch) - } - true - } - fn visit_enter_enum_variant(_variant: uint, - disr_val: int, - n_fields: uint, - name: &str) -> bool { - let mut write = false; - match self.var_stk.pop() { - Degenerate => { - write = true; - self.var_stk.push(Degenerate); - } - TagMatch | TagMismatch => { - do self.get::() |t| { - if disr_val == *t { - write = true; - self.var_stk.push(TagMatch); - } else { - self.var_stk.push(TagMismatch); - } - }; - self.bump_past::(); - } - } - - if write { - self.writer.write_str(name); - if n_fields > 0 { - self.writer.write_char('('); - } - } - true - } - fn visit_enum_variant_field(i: uint, inner: *TyDesc) -> bool { - match self.var_stk.last() { - Degenerate | TagMatch => { - if i != 0 { - self.writer.write_str(", "); - } - if ! self.visit_inner(inner) { - return false; - } - } - TagMismatch => () - } - true - } - fn visit_leave_enum_variant(_variant: uint, - _disr_val: int, - n_fields: uint, - _name: &str) -> bool { - match self.var_stk.last() { - Degenerate | TagMatch => { - if n_fields > 0 { - self.writer.write_char(')'); - } - } - TagMismatch => () - } - true - } - fn visit_leave_enum(_n_variants: uint, - _sz: uint, _align: uint) -> bool { - self.var_stk.pop(); - true - } - - fn visit_enter_fn(_purity: uint, _proto: uint, - _n_inputs: uint, _retstyle: uint) -> bool { true } - fn visit_fn_input(_i: uint, _mode: uint, _inner: *TyDesc) -> bool { true } - fn visit_fn_output(_retstyle: uint, _inner: *TyDesc) -> bool { true } - fn visit_leave_fn(_purity: uint, _proto: uint, - _n_inputs: uint, _retstyle: uint) -> bool { true } - - - fn visit_trait() -> bool { true } - fn visit_var() -> bool { true } - fn visit_var_integral() -> bool { true } - fn visit_param(_i: uint) -> bool { true } - fn visit_self() -> bool { true } - fn visit_type() -> bool { true } - - fn visit_opaque_box() -> bool { - self.writer.write_char('@'); - do self.get::<&managed::raw::BoxRepr> |b| { - let p = ptr::to_unsafe_ptr(&b.data) as *c_void; - self.visit_ptr_inner(p, b.header.type_desc); - } - } - - // Type no longer exists, vestigial function. - fn visit_constr(_inner: *TyDesc) -> bool { die!(); } - - fn visit_closure_ptr(_ck: uint) -> bool { true } -} - -#[cfg(stage1)] -#[cfg(stage2)] impl ReprVisitor : TyVisitor { fn visit_bot(&self) -> bool { self.writer.write_str("!"); diff --git a/src/libstd/comm.rs b/src/libstd/comm.rs index f4917934acb40..dc0fbbac64126 100644 --- a/src/libstd/comm.rs +++ b/src/libstd/comm.rs @@ -23,13 +23,6 @@ use core::pipes; use core::prelude::*; /// An extension of `pipes::stream` that allows both sending and receiving. -#[cfg(stage0)] -pub struct DuplexStream { - priv chan: Chan, - priv port: Port, -} -#[cfg(stage1)] -#[cfg(stage2)] pub struct DuplexStream { priv chan: Chan, priv port: Port, diff --git a/src/libstd/workcache.rs b/src/libstd/workcache.rs index 95deec08feb5e..4e9df14419b18 100644 --- a/src/libstd/workcache.rs +++ b/src/libstd/workcache.rs @@ -167,20 +167,6 @@ struct Database { } impl Database { - #[cfg(stage0)] - #[cfg(stage1)] - fn prepare(&mut self, fn_name: &str, - declared_inputs: &WorkMap) -> Option<(WorkMap, WorkMap, ~str)> - { - let k = json_encode(&(fn_name, declared_inputs)); - let db_cache = copy self.db_cache; - match db_cache.find(&k) { - None => None, - Some(&v) => Some(json_decode(copy v)) - } - } - - #[cfg(stage2)] fn prepare(&mut self, fn_name: &str, declared_inputs: &WorkMap) -> Option<(WorkMap, WorkMap, ~str)> { @@ -235,13 +221,6 @@ struct Exec { discovered_outputs: WorkMap } -#[cfg(stage0)] -struct Work { - prep: @Mut, - res: Option>> -} -#[cfg(stage1)] -#[cfg(stage2)] struct Work { prep: @Mut, res: Option>> diff --git a/src/libsyntax/ext/pipes/pipec.rs b/src/libsyntax/ext/pipes/pipec.rs index 8c73dcfc04f66..da0ac4e08ab06 100644 --- a/src/libsyntax/ext/pipes/pipec.rs +++ b/src/libsyntax/ext/pipes/pipec.rs @@ -367,7 +367,7 @@ pub impl protocol: gen_init { ext_cx.block( self.states.map_to_vec( |s| ext_cx.parse_stmt( - fmt!("data.%s.set_buffer_(buffer)", + fmt!("data.%s.set_buffer(buffer)", s.name))), ext_cx.parse_expr( fmt!("::ptr::addr_of(&(data.%s))", diff --git a/src/snapshots.txt b/src/snapshots.txt index 3237c0b02689a..a6ec0e499c7f0 100644 --- a/src/snapshots.txt +++ b/src/snapshots.txt @@ -1,3 +1,11 @@ +S 2013-02-04 2f46b76 + freebsd-x86_64 d33b5ebbf3335f6a8a5cc23572f630ad66539830 + linux-i386 7537519ae3de82592d6150b9ca81cd4bf45d9457 + linux-x86_64 17472c4ffa6a59a6dbf45158827992c4404f7d92 + macos-i386 a8473c209a199822f9bf0132449a8c38374d4d42 + macos-x86_64 3213a4166ee59dfb1167b9a31c64b747ce65884c + winnt-i386 74c718ee885193719afa2ae44f395399bf993dd3 + S 2013-01-23 e8f4da7 macos-i386 6860345b8d05986ae1b20c7532fd9667dff31b2a macos-x86_64 d0c6131e4afe93759af08d88e81cd7a8496595f0 diff --git a/src/test/run-pass/pipe-pingpong-bounded.rs b/src/test/run-pass/pipe-pingpong-bounded.rs index a24e8b3738678..a3b03daf02fbf 100644 --- a/src/test/run-pass/pipe-pingpong-bounded.rs +++ b/src/test/run-pass/pipe-pingpong-bounded.rs @@ -37,8 +37,8 @@ mod pingpong { } }; do pipes::entangle_buffer(move buffer) |buffer, data| { - data.ping.set_buffer_(buffer); - data.pong.set_buffer_(buffer); + data.ping.set_buffer(buffer); + data.pong.set_buffer(buffer); ptr::addr_of(&(data.ping)) } }