about summary refs log tree commit diff
path: root/src/libcore
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2012-09-26 16:26:19 -0700
committerPatrick Walton <pcwalton@mimiga.net>2012-09-26 16:46:54 -0700
commitc6605168a15d17cce57d1e23f6a3a290a8ab441d (patch)
tree7c3aa408cfeae91ec1f25d7a332d9215289002fd /src/libcore
parent2891f5abe3c7f455d16930a35bfc8d8d623de0ff (diff)
libcore: De-export logging and pipes
Diffstat (limited to 'src/libcore')
-rw-r--r--src/libcore/logging.rs6
-rw-r--r--src/libcore/pipes.rs122
2 files changed, 53 insertions, 75 deletions
diff --git a/src/libcore/logging.rs b/src/libcore/logging.rs
index a9f63b57fa5..cd7321bf0d3 100644
--- a/src/libcore/logging.rs
+++ b/src/libcore/logging.rs
@@ -6,8 +6,6 @@
 
 use cast::transmute;
 
-export console_on, console_off, log_type;
-
 #[nolink]
 extern mod rustrt {
     #[legacy_exports];
@@ -17,7 +15,7 @@ extern mod rustrt {
 }
 
 /// Turns on logging to stdout globally
-fn console_on() {
+pub fn console_on() {
     rustrt::rust_log_console_on();
 }
 
@@ -28,7 +26,7 @@ fn console_on() {
  * runtime environment's logging spec, e.g. by setting
  * the RUST_LOG environment variable
  */
-fn console_off() {
+pub fn console_off() {
     rustrt::rust_log_console_off();
 }
 
diff --git a/src/libcore/pipes.rs b/src/libcore/pipes.rs
index b67f572d4f7..bbabceafe8e 100644
--- a/src/libcore/pipes.rs
+++ b/src/libcore/pipes.rs
@@ -81,26 +81,6 @@ use cast::{forget, reinterpret_cast, transmute};
 use either::{Either, Left, Right};
 use option::unwrap;
 
-// Things used by code generated by the pipe compiler.
-export entangle, get_buffer, drop_buffer;
-export SendPacketBuffered, RecvPacketBuffered;
-export Packet, packet, mk_packet, entangle_buffer, HasBuffer, BufferHeader;
-
-// export these so we can find them in the buffer_resource
-// destructor. This is probably a symptom of #3005.
-export atomic_add_acq, atomic_sub_rel;
-
-// User-level things
-export SendPacket, RecvPacket, send, recv, try_recv, peek;
-export select, select2, selecti, select2i, selectable;
-export spawn_service, spawn_service_recv;
-export stream, Port, Chan, SharedChan, PortSet, Channel;
-export oneshot, ChanOne, PortOne;
-export recv_one, try_recv_one, send_one, try_send_one;
-
-// Functions used by the protocol compiler
-export rt;
-
 #[doc(hidden)]
 const SPIN_COUNT: uint = 0;
 
@@ -123,7 +103,7 @@ impl State : Eq {
     pure fn ne(other: &State) -> bool { !self.eq(other) }
 }
 
-struct BufferHeader {
+pub struct BufferHeader {
     // Tracks whether this buffer needs to be freed. We can probably
     // get away with restricting it to 0 or 1, if we're careful.
     mut ref_count: int,
@@ -195,13 +175,13 @@ impl PacketHeader {
 }
 
 #[doc(hidden)]
-type Packet<T: Send> = {
+pub type Packet<T: Send> = {
     header: PacketHeader,
     mut payload: Option<T>,
 };
 
 #[doc(hidden)]
-trait HasBuffer {
+pub trait HasBuffer {
     // XXX This should not have a trailing underscore
     fn set_buffer_(b: *libc::c_void);
 }
@@ -213,7 +193,7 @@ impl<T: Send> Packet<T>: HasBuffer {
 }
 
 #[doc(hidden)]
-fn mk_packet<T: Send>() -> Packet<T> {
+pub fn mk_packet<T: Send>() -> Packet<T> {
     {
         header: PacketHeader(),
         mut payload: None
@@ -237,7 +217,7 @@ fn unibuffer<T: Send>() -> ~Buffer<Packet<T>> {
 }
 
 #[doc(hidden)]
-fn packet<T: Send>() -> *Packet<T> {
+pub fn packet<T: Send>() -> *Packet<T> {
     let b = unibuffer();
     let p = ptr::addr_of(b.data);
     // We'll take over memory management from here.
@@ -246,7 +226,7 @@ fn packet<T: Send>() -> *Packet<T> {
 }
 
 #[doc(hidden)]
-fn entangle_buffer<T: Send, Tstart: Send>(
+pub fn entangle_buffer<T: Send, Tstart: Send>(
     +buffer: ~Buffer<T>,
     init: fn(*libc::c_void, x: &T) -> *Packet<Tstart>)
     -> (SendPacketBuffered<Tstart, T>, RecvPacketBuffered<Tstart, T>)
@@ -286,22 +266,22 @@ extern mod rusti {
 // If I call the rusti versions directly from a polymorphic function,
 // I get link errors. This is a bug that needs investigated more.
 #[doc(hidden)]
-fn atomic_xchng_rel(dst: &mut int, src: int) -> int {
+pub fn atomic_xchng_rel(dst: &mut int, src: int) -> int {
     rusti::atomic_xchg_rel(dst, src)
 }
 
 #[doc(hidden)]
-fn atomic_add_acq(dst: &mut int, src: int) -> int {
+pub fn atomic_add_acq(dst: &mut int, src: int) -> int {
     rusti::atomic_xadd_acq(dst, src)
 }
 
 #[doc(hidden)]
-fn atomic_sub_rel(dst: &mut int, src: int) -> int {
+pub fn atomic_sub_rel(dst: &mut int, src: int) -> int {
     rusti::atomic_xsub_rel(dst, src)
 }
 
 #[doc(hidden)]
-fn swap_task(+dst: &mut *rust_task, src: *rust_task) -> *rust_task {
+pub fn swap_task(+dst: &mut *rust_task, src: *rust_task) -> *rust_task {
     // It might be worth making both acquire and release versions of
     // this.
     unsafe {
@@ -355,7 +335,7 @@ fn swap_state_rel(+dst: &mut State, src: State) -> State {
 }
 
 #[doc(hidden)]
-unsafe fn get_buffer<T: Send>(p: *PacketHeader) -> ~Buffer<T> {
+pub unsafe fn get_buffer<T: Send>(p: *PacketHeader) -> ~Buffer<T> {
     transmute((*p).buf_header())
 }
 
@@ -391,8 +371,8 @@ fn BufferResource<T: Send>(+b: ~Buffer<T>) -> BufferResource<T> {
 }
 
 #[doc(hidden)]
-fn send<T: Send, Tbuffer: Send>(+p: SendPacketBuffered<T, Tbuffer>,
-                                +payload: T) -> bool {
+pub fn send<T: Send, Tbuffer: Send>(+p: SendPacketBuffered<T, Tbuffer>,
+                                    +payload: T) -> bool {
     let header = p.header();
     let p_ = p.unwrap();
     let p = unsafe { &*p_ };
@@ -435,7 +415,7 @@ fn send<T: Send, Tbuffer: Send>(+p: SendPacketBuffered<T, Tbuffer>,
 Fails if the sender closes the connection.
 
 */
-fn recv<T: Send, Tbuffer: Send>(+p: RecvPacketBuffered<T, Tbuffer>) -> T {
+pub fn recv<T: Send, Tbuffer: Send>(+p: RecvPacketBuffered<T, Tbuffer>) -> T {
     option::unwrap_expect(try_recv(move p), "connection closed")
 }
 
@@ -445,7 +425,7 @@ Returns `none` if the sender has closed the connection without sending
 a message, or `Some(T)` if a message was received.
 
 */
-fn try_recv<T: Send, Tbuffer: Send>(+p: RecvPacketBuffered<T, Tbuffer>)
+pub fn try_recv<T: Send, Tbuffer: Send>(+p: RecvPacketBuffered<T, Tbuffer>)
     -> Option<T>
 {
     let p_ = p.unwrap();
@@ -539,7 +519,7 @@ fn try_recv<T: Send, Tbuffer: Send>(+p: RecvPacketBuffered<T, Tbuffer>)
 }
 
 /// Returns true if messages are available.
-pure fn peek<T: Send, Tb: Send>(p: &RecvPacketBuffered<T, Tb>) -> bool {
+pub pure fn peek<T: Send, Tb: Send>(p: &RecvPacketBuffered<T, Tb>) -> bool {
     match unsafe {(*p.header()).state} {
       Empty => false,
       Blocked => fail ~"peeking on blocked packet",
@@ -691,7 +671,7 @@ Sometimes messages will be available on both endpoints at once. In
 this case, `select2` may return either `left` or `right`.
 
 */
-fn select2<A: Send, Ab: Send, B: Send, Bb: Send>(
+pub fn select2<A: Send, Ab: Send, B: Send, Bb: Send>(
     +a: RecvPacketBuffered<A, Ab>,
     +b: RecvPacketBuffered<B, Bb>)
     -> Either<(Option<A>, RecvPacketBuffered<B, Bb>),
@@ -716,12 +696,13 @@ impl *PacketHeader: Selectable {
 }
 
 /// Returns the index of an endpoint that is ready to receive.
-fn selecti<T: Selectable>(endpoints: &[T]) -> uint {
+pub fn selecti<T: Selectable>(endpoints: &[T]) -> uint {
     wait_many(endpoints)
 }
 
 /// Returns 0 or 1 depending on which endpoint is ready to receive
-fn select2i<A: Selectable, B: Selectable>(a: &A, b: &B) -> Either<(), ()> {
+pub fn select2i<A: Selectable, B: Selectable>(a: &A, b: &B) ->
+        Either<(), ()> {
     match wait_many([a.header(), b.header()]/_) {
       0 => Left(()),
       1 => Right(()),
@@ -733,7 +714,7 @@ fn select2i<A: Selectable, B: Selectable>(a: &A, b: &B) -> Either<(), ()> {
  list of the remaining endpoints.
 
 */
-fn select<T: Send, Tb: Send>(+endpoints: ~[RecvPacketBuffered<T, Tb>])
+pub fn select<T: Send, Tb: Send>(+endpoints: ~[RecvPacketBuffered<T, Tb>])
     -> (uint, Option<T>, ~[RecvPacketBuffered<T, Tb>])
 {
     let ready = wait_many(endpoints.map(|p| p.header()));
@@ -747,14 +728,14 @@ fn select<T: Send, Tb: Send>(+endpoints: ~[RecvPacketBuffered<T, Tb>])
 message.
 
 */
-type SendPacket<T: Send> = SendPacketBuffered<T, Packet<T>>;
+pub type SendPacket<T: Send> = SendPacketBuffered<T, Packet<T>>;
 
 #[doc(hidden)]
-fn SendPacket<T: Send>(p: *Packet<T>) -> SendPacket<T> {
+pub fn SendPacket<T: Send>(p: *Packet<T>) -> SendPacket<T> {
     SendPacketBuffered(p)
 }
 
-struct SendPacketBuffered<T: Send, Tbuffer: Send> {
+pub struct SendPacketBuffered<T: Send, Tbuffer: Send> {
     mut p: Option<*Packet<T>>,
     mut buffer: Option<BufferResource<Tbuffer>>,
     drop {
@@ -773,7 +754,7 @@ struct SendPacketBuffered<T: Send, Tbuffer: Send> {
     }
 }
 
-fn SendPacketBuffered<T: Send, Tbuffer: Send>(p: *Packet<T>)
+pub fn SendPacketBuffered<T: Send, Tbuffer: Send>(p: *Packet<T>)
     -> SendPacketBuffered<T, Tbuffer> {
         //debug!("take send %?", p);
     SendPacketBuffered {
@@ -814,14 +795,14 @@ impl<T: Send, Tbuffer: Send> SendPacketBuffered<T, Tbuffer> {
 
 /// Represents the receive end of a pipe. It can receive exactly one
 /// message.
-type RecvPacket<T: Send> = RecvPacketBuffered<T, Packet<T>>;
+pub type RecvPacket<T: Send> = RecvPacketBuffered<T, Packet<T>>;
 
 #[doc(hidden)]
-fn RecvPacket<T: Send>(p: *Packet<T>) -> RecvPacket<T> {
+pub fn RecvPacket<T: Send>(p: *Packet<T>) -> RecvPacket<T> {
     RecvPacketBuffered(p)
 }
 
-struct RecvPacketBuffered<T: Send, Tbuffer: Send> {
+pub struct RecvPacketBuffered<T: Send, Tbuffer: Send> {
     mut p: Option<*Packet<T>>,
     mut buffer: Option<BufferResource<Tbuffer>>,
     drop {
@@ -867,7 +848,7 @@ impl<T: Send, Tbuffer: Send> RecvPacketBuffered<T, Tbuffer> : Selectable {
     }
 }
 
-fn RecvPacketBuffered<T: Send, Tbuffer: Send>(p: *Packet<T>)
+pub fn RecvPacketBuffered<T: Send, Tbuffer: Send>(p: *Packet<T>)
     -> RecvPacketBuffered<T, Tbuffer> {
     //debug!("take recv %?", p);
     RecvPacketBuffered {
@@ -880,7 +861,7 @@ fn RecvPacketBuffered<T: Send, Tbuffer: Send>(p: *Packet<T>)
 }
 
 #[doc(hidden)]
-fn entangle<T: Send>() -> (SendPacket<T>, RecvPacket<T>) {
+pub fn entangle<T: Send>() -> (SendPacket<T>, RecvPacket<T>) {
     let p = packet();
     (SendPacket(p), RecvPacket(p))
 }
@@ -892,7 +873,7 @@ endpoint. The send endpoint is returned to the caller and the receive
 endpoint is passed to the new task.
 
 */
-fn spawn_service<T: Send, Tb: Send>(
+pub fn spawn_service<T: Send, Tb: Send>(
     init: extern fn() -> (SendPacketBuffered<T, Tb>,
                           RecvPacketBuffered<T, Tb>),
     +service: fn~(+v: RecvPacketBuffered<T, Tb>))
@@ -916,7 +897,7 @@ fn spawn_service<T: Send, Tb: Send>(
 receive state.
 
 */
-fn spawn_service_recv<T: Send, Tb: Send>(
+pub fn spawn_service_recv<T: Send, Tb: Send>(
     init: extern fn() -> (RecvPacketBuffered<T, Tb>,
                           SendPacketBuffered<T, Tb>),
     +service: fn~(+v: SendPacketBuffered<T, Tb>))
@@ -945,7 +926,7 @@ proto! streamp (
 )
 
 /// A trait for things that can send multiple messages.
-trait Channel<T: Send> {
+pub trait Channel<T: Send> {
     // It'd be nice to call this send, but it'd conflict with the
     // built in send kind.
 
@@ -957,7 +938,7 @@ trait Channel<T: Send> {
 }
 
 /// A trait for things that can receive multiple messages.
-trait Recv<T: Send> {
+pub trait Recv<T: Send> {
     /// Receives a message, or fails if the connection closes.
     fn recv() -> T;
 
@@ -978,7 +959,7 @@ trait Recv<T: Send> {
 type Chan_<T:Send> = { mut endp: Option<streamp::client::Open<T>> };
 
 /// An endpoint that can send many messages.
-enum Chan<T:Send> {
+pub enum Chan<T:Send> {
     Chan_(Chan_<T>)
 }
 
@@ -986,7 +967,7 @@ enum Chan<T:Send> {
 type Port_<T:Send> = { mut endp: Option<streamp::server::Open<T>> };
 
 /// An endpoint that can receive many messages.
-enum Port<T:Send> {
+pub enum Port<T:Send> {
     Port_(Port_<T>)
 }
 
@@ -995,7 +976,7 @@ enum Port<T:Send> {
 These allow sending or receiving an unlimited number of messages.
 
 */
-fn stream<T:Send>() -> (Chan<T>, Port<T>) {
+pub fn stream<T:Send>() -> (Chan<T>, Port<T>) {
     let (c, s) = streamp::init();
 
     (Chan_({ mut endp: Some(move c) }), Port_({ mut endp: Some(move s) }))
@@ -1065,11 +1046,11 @@ impl<T: Send> Port<T>: Selectable {
 }
 
 /// Treat many ports as one.
-struct PortSet<T: Send> {
+pub struct PortSet<T: Send> {
     mut ports: ~[pipes::Port<T>],
 }
 
-fn PortSet<T: Send>() -> PortSet<T>{
+pub fn PortSet<T: Send>() -> PortSet<T>{
     PortSet {
         ports: ~[]
     }
@@ -1124,7 +1105,7 @@ impl<T: Send> PortSet<T> : Recv<T> {
 }
 
 /// A channel that can be shared between many senders.
-type SharedChan<T: Send> = private::Exclusive<Chan<T>>;
+pub type SharedChan<T: Send> = private::Exclusive<Chan<T>>;
 
 impl<T: Send> SharedChan<T>: Channel<T> {
     fn send(+x: T) {
@@ -1152,7 +1133,7 @@ fn SharedChan<T:Send>(+c: Chan<T>) -> SharedChan<T> {
 }
 
 /// Receive a message from one of two endpoints.
-trait Select2<T: Send, U: Send> {
+pub trait Select2<T: Send, U: Send> {
     /// Receive a message or return `none` if a connection closes.
     fn try_select() -> Either<Option<T>, Option<U>>;
     /// Receive a message or fail if a connection closes.
@@ -1188,12 +1169,12 @@ proto! oneshot (
 )
 
 /// The send end of a oneshot pipe.
-type ChanOne<T: Send> = oneshot::client::Oneshot<T>;
+pub type ChanOne<T: Send> = oneshot::client::Oneshot<T>;
 /// The receive end of a oneshot pipe.
-type PortOne<T: Send> = oneshot::server::Oneshot<T>;
+pub type PortOne<T: Send> = oneshot::server::Oneshot<T>;
 
 /// Initialiase a (send-endpoint, recv-endpoint) oneshot pipe pair.
-fn oneshot<T: Send>() -> (ChanOne<T>, PortOne<T>) {
+pub fn oneshot<T: Send>() -> (ChanOne<T>, PortOne<T>) {
     oneshot::init()
 }
 
@@ -1201,13 +1182,13 @@ fn oneshot<T: Send>() -> (ChanOne<T>, PortOne<T>) {
  * Receive a message from a oneshot pipe, failing if the connection was
  * closed.
  */
-fn recv_one<T: Send>(+port: PortOne<T>) -> T {
+pub fn recv_one<T: Send>(+port: PortOne<T>) -> T {
     let oneshot::send(message) = recv(move port);
     move message
 }
 
 /// Receive a message from a oneshot pipe unless the connection was closed.
-fn try_recv_one<T: Send> (+port: PortOne<T>) -> Option<T> {
+pub fn try_recv_one<T: Send> (+port: PortOne<T>) -> Option<T> {
     let message = try_recv(move port);
 
     if message.is_none() { None }
@@ -1218,7 +1199,7 @@ fn try_recv_one<T: Send> (+port: PortOne<T>) -> Option<T> {
 }
 
 /// Send a message on a oneshot pipe, failing if the connection was closed.
-fn send_one<T: Send>(+chan: ChanOne<T>, +data: T) {
+pub fn send_one<T: Send>(+chan: ChanOne<T>, +data: T) {
     oneshot::client::send(move chan, move data);
 }
 
@@ -1226,7 +1207,7 @@ fn send_one<T: Send>(+chan: ChanOne<T>, +data: T) {
  * Send a message on a oneshot pipe, or return false if the connection was
  * closed.
  */
-fn try_send_one<T: Send>(+chan: ChanOne<T>, +data: T)
+pub fn try_send_one<T: Send>(+chan: ChanOne<T>, +data: T)
         -> bool {
     oneshot::client::try_send(move chan, move data).is_some()
 }
@@ -1240,10 +1221,9 @@ mod rt {
 }
 
 #[cfg(test)]
-mod test {
-    #[legacy_exports];
+pub mod test {
     #[test]
-    fn test_select2() {
+    pub fn test_select2() {
         let (c1, p1) = pipes::stream();
         let (c2, p2) = pipes::stream();
 
@@ -1258,7 +1238,7 @@ mod test {
     }
 
     #[test]
-    fn test_oneshot() {
+    pub fn test_oneshot() {
         let (c, p) = oneshot::init();
 
         oneshot::client::send(c, ());