blabaere / scaproust

Implementation of the nanomsg "Scalability Protocols" in rust.
Apache License 2.0
192 stars 9 forks source link

Deprecation warnings #8

Closed kpcyrd closed 6 years ago

kpcyrd commented 6 years ago

Compiling scaproust currently causes a long list of deprecation warnings:

I've tried to fix them on my own but wasn't very successful.

   Compiling scaproust v0.3.2-pre
warning: use of deprecated item 'mio::timer::Timer': use mio-extras instead
  --> src/reactor/dispatcher.rs:13:18
   |
13 | use mio::timer::{Timer, Builder};
   |                  ^^^^^
   |
   = note: #[warn(deprecated)] on by default

warning: use of deprecated item 'mio::timer::Builder': use mio-extras instead
  --> src/reactor/dispatcher.rs:13:25
   |
13 | use mio::timer::{Timer, Builder};
   |                         ^^^^^^^

warning: use of deprecated item 'mio::channel::Receiver': use mio-extras instead
  --> src/reactor/dispatcher.rs:14:20
   |
14 | use mio::channel::{Receiver};
   |                    ^^^^^^^^

warning: use of deprecated item 'mio::channel::Receiver': use mio-extras instead
  --> src/reactor/dispatcher.rs:35:14
   |
35 |     channel: Receiver<Request>,
   |              ^^^^^^^^^^^^^^^^^

warning: use of deprecated item 'mio::timer::Timer': use mio-extras instead
  --> src/reactor/dispatcher.rs:37:12
   |
37 |     timer: Timer<Task>,
   |            ^^^^^^^^^^^

warning: use of deprecated item 'mio::timer::Timer': use mio-extras instead
  --> src/reactor/adapter.rs:14:18
   |
14 | use mio::timer::{Timer, Timeout};
   |                  ^^^^^

warning: use of deprecated item 'mio::timer::Timeout': use mio-extras instead
  --> src/reactor/adapter.rs:14:25
   |
14 | use mio::timer::{Timer, Timeout};
   |                         ^^^^^^^

warning: use of deprecated item 'mio::timer::Timer': use mio-extras instead
  --> src/reactor/adapter.rs:42:20
   |
42 |     timer: &'a mut Timer<Task>
   |                    ^^^^^^^^^^^

warning: use of deprecated item 'mio::timer::Timer': use mio-extras instead
  --> src/reactor/adapter.rs:61:20
   |
61 |     timer: &'a mut Timer<Task>
   |                    ^^^^^^^^^^^

warning: use of deprecated item 'mio::timer::Timeout': use mio-extras instead
  --> src/reactor/adapter.rs:85:31
   |
85 |     items: HashMap<Scheduled, Timeout, BuildIdHasher>
   |                               ^^^^^^^

warning: use of deprecated item 'mio::channel::Sender': use mio-extras instead
  --> src/facade/mod.rs:34:35
   |
34 | pub type EventLoopRequestSender = mio::channel::Sender<reactor::Request>;
   |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: use of deprecated item 'mio::channel::SendError': use mio-extras instead
  --> src/io_error.rs:32:39
   |
32 | pub fn from_send_error<T>(send_error: mio::channel::SendError<T>) -> io::Error {
   |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: use of deprecated item 'mio::channel::SendError::Io': use mio-extras instead
  --> src/io_error.rs:34:9
   |
34 |         mio::channel::SendError::Io(e) => e,
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: use of deprecated item 'mio::channel::SendError::Disconnected': use mio-extras instead
  --> src/io_error.rs:35:9
   |
35 |         mio::channel::SendError::Disconnected(_) => other_io_error("channel closed")
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: use of deprecated item 'mio::timer::TimerError': use mio-extras instead
  --> src/io_error.rs:39:38
   |
39 | pub fn from_timer_error(timer_error: mio::timer::TimerError) -> io::Error {
   |                                      ^^^^^^^^^^^^^^^^^^^^^^

warning: use of deprecated item 'mio::channel::Receiver': use mio-extras instead
  --> src/reactor/dispatcher.rs:48:13
   |
48 |         rx: Receiver<Request>,
   |             ^^^^^^^^^^^^^^^^^

warning: use of deprecated item 'mio::channel::Receiver': use mio-extras instead
  --> src/reactor/dispatcher.rs:57:13
   |
57 |         rx: Receiver<Request>, 
   |             ^^^^^^^^^^^^^^^^^

warning: use of deprecated item 'mio::timer::Builder': use mio-extras instead
  --> src/reactor/dispatcher.rs:62:21
   |
62 |         let clock = Builder::default().
   |                     ^^^^^^^^^^^^^^^^

warning: use of deprecated item 'mio::timer::Timeout': use mio-extras instead
   --> src/reactor/adapter.rs:232:34
    |
232 |     fn insert(&mut self, handle: Timeout) -> Scheduled {
    |                                  ^^^^^^^

warning: use of deprecated item 'mio::timer::Timeout': use mio-extras instead
   --> src/reactor/adapter.rs:237:58
    |
237 |     fn remove(&mut self, scheduled: Scheduled) -> Option<Timeout> {
    |                                                          ^^^^^^^

warning: use of deprecated item 'mio::timer::Timer': use mio-extras instead
   --> src/reactor/adapter.rs:254:24
    |
254 |         timer: &'a mut Timer<Task>) -> SocketEventLoopContext<'a> {
    |                        ^^^^^^^^^^^

warning: use of deprecated item 'mio::timer::Timer': use mio-extras instead
   --> src/reactor/adapter.rs:500:24
    |
500 |         timer: &'a mut Timer<Task>) -> ProbeEventLoopContext<'a> {
    |                        ^^^^^^^^^^^

warning: use of deprecated item 'mio::channel::channel': use mio-extras instead
  --> src/facade/session.rs:72:40
   |
72 |         let (request_tx, request_rx) = mio::channel::channel();
   |                                        ^^^^^^^^^^^^^^^^^^^^^

warning: use of deprecated item 'mio::timer::Builder::tick_duration': use mio-extras instead
  --> src/reactor/dispatcher.rs:63:13
   |
63 |             tick_duration(Duration::from_millis(25)).
   |             ^^^^^^^^^^^^^

warning: use of deprecated item 'mio::timer::Builder::num_slots': use mio-extras instead
  --> src/reactor/dispatcher.rs:64:13
   |
64 |             num_slots(1_024).
   |             ^^^^^^^^^

warning: use of deprecated item 'mio::timer::Builder::capacity': use mio-extras instead
  --> src/reactor/dispatcher.rs:65:13
   |
65 |             capacity(8_192).
   |             ^^^^^^^^

warning: use of deprecated item 'mio::timer::Builder::build': use mio-extras instead
  --> src/reactor/dispatcher.rs:66:13
   |
66 |             build();
   |             ^^^^^

warning: use of deprecated item '<mio::channel::Receiver<T>>::try_recv': use mio-extras instead
   --> src/reactor/dispatcher.rs:104:42
    |
104 |         while let Ok(req) = self.channel.try_recv() {
    |                                          ^^^^^^^^

warning: use of deprecated item '<mio::timer::Timer<T>>::poll': use mio-extras instead
   --> src/reactor/dispatcher.rs:114:46
    |
114 |         while let Some(timeout) = self.timer.poll() {
    |                                              ^^^^

warning: use of deprecated item 'mio::Events::get': Index access removed in favor of iterator only API.
  --> src/reactor/event_loop.rs:73:37
   |
73 |             let event = self.events.get(i).unwrap();
   |                                     ^^^

warning: use of deprecated item '<mio::timer::Timer<T>>::set_timeout': use mio-extras instead
   --> src/reactor/adapter.rs:381:38
    |
381 |         let handle = try!(self.timer.set_timeout(delay, task).map_err(from_timer_error));
    |                                      ^^^^^^^^^^^

warning: use of deprecated item '<mio::timer::Timer<T>>::cancel_timeout': use mio-extras instead
   --> src/reactor/adapter.rs:388:24
    |
388 |             self.timer.cancel_timeout(&handle);
    |                        ^^^^^^^^^^^^^^

warning: use of deprecated item '<mio::timer::Timer<T>>::set_timeout': use mio-extras instead
   --> src/reactor/adapter.rs:527:38
    |
527 |         let handle = try!(self.timer.set_timeout(delay, task).map_err(from_timer_error));
    |                                      ^^^^^^^^^^^

warning: use of deprecated item '<mio::timer::Timer<T>>::cancel_timeout': use mio-extras instead
   --> src/reactor/adapter.rs:534:24
    |
534 |             self.timer.cancel_timeout(&handle);
    |                        ^^^^^^^^^^^^^^

warning: use of deprecated item '<mio::channel::Sender<T>>::send': use mio-extras instead
  --> src/facade/session.rs:45:21
   |
45 |         self.req_tx.send(reactor::Request::Session(req)).map_err(from_send_error)
   |                     ^^^^

warning: use of deprecated item '<mio::channel::Sender<T>>::send': use mio-extras instead
  --> src/facade/socket.rs:39:21
   |
39 |         self.req_tx.send(reactor::Request::Socket(self.socket_id, req)).map_err(from_send_error)
   |                     ^^^^

warning: use of deprecated item '<mio::channel::Sender<T>>::send': use mio-extras instead
  --> src/facade/endpoint.rs:31:21
   |
31 |         self.req_tx.send(reactor::Request::Endpoint(self.socket_id, self.id, req)).map_err(from_send_error)
   |                     ^^^^

warning: use of deprecated item '<mio::channel::Sender<T>>::send': use mio-extras instead
  --> src/facade/device.rs:75:21
   |
75 |         self.req_tx.send(reactor::Request::Device(self.device_id, req)).map_err(from_send_error)
   |                     ^^^^

warning: use of deprecated item '<mio::channel::Sender<T>>::send': use mio-extras instead
  --> src/facade/probe.rs:40:21
   |
40 |         self.req_tx.send(reactor::Request::Probe(self.probe_id, req)).map_err(from_send_error)
   |                     ^^^^

warning: use of deprecated item 'mio::channel::SendError::Io::0': use mio-extras instead
  --> src/io_error.rs:34:37
   |
34 |         mio::channel::SendError::Io(e) => e,
   |                                     ^

warning: use of deprecated item 'mio::channel::SendError::Disconnected::0': use mio-extras instead
  --> src/io_error.rs:35:47
   |
35 |         mio::channel::SendError::Disconnected(_) => other_io_error("channel closed")
   |                                               ^

    Finished dev [unoptimized + debuginfo] target(s) in 8.7 secs
blabaere commented 6 years ago

Hi,

There are warnings because scaproust uses deprecated features from mio. The design and goals of mio have changed and several features have been moved in dependent crates or just deprecated. One option to get rid of the warnings is using tokio instead of directly relying on mio but that would be a major rewrite. Another option is to reimplement the moved/deprecated feature but that is also a lot of work and the benefits are less clear.

If I find some spare time I may upgrade mio and start using the extra crates.

Regards, Benoît