PyO3 / tokio

Asyncio event loop written in Rust language
Other
245 stars 12 forks source link

Update uvloop to 0.9.1 #81

Closed pyup-bot closed 6 years ago

pyup-bot commented 6 years ago

There's a new version of uvloop available. You are currently using 0.8.1. I have updated it to 0.9.1

These links might come in handy: PyPI | Changelog | Repo

Changelog

0.9.1

  • Stop using malloc for uv_request* handlers.

  • Fix loop.add_reader(), loop.add_writer(), loop.remove_reader(), and loop.remove_writer() to better track socket objects.

  • Fix loop.sock_recv(), loop.sock_sendall(), loop.sock_recv_into(), and loop.sock_connect() to correctly handle Task.cancel().

  • Better handle immediate cancellation of loop.create_connection().

  • Make unit tests stricter: ensure loop.call_exception_handler() does not get called, unless it's expected.

0.9.0

TCP & UDP

  • transport.get_extra_info('socket') now returns a socket-like object. It supports socket methods like setsockopts(), but prohibits send(), recv(), close() and any other calls that can interfere with the transport that ultimately owns this file descriptor.

  • TCP_NODELAY is used by default for all TCP connections.

  • Make Transport.resume_reading() and pause_reading() idempotent. This will match asyncio in Python 3.7. Issue 93.

  • loop.create_server() keeps a strong reference to the Server object it returns until its closed. Fixes 81.

  • Fix loop.connect_accepted_socket() to return correct SSL transport.

  • The UDP transport layer was rewritten from scratch. Now it uses uv_poll_* libuv APIs, instead of high-level uv_udp_* ones. This could mean a slight performance regression, and will be reverted when we port uvloop to Windows. For now this is the only viable option to make uvloop fully compatible with asyncio. When libuv gets an API to connect UDP sockets, uv_udp_connect(), we'll be able to switch to a better UDP implementation. Issue 109.

  • UDPTransport.sendto(data, addr) will raise an exception if addr requires a name resolution. Issue 91.

Low-level sockets

  • loop.add_reader() and loop.add_writer() accept file-like objects. Issue 97.

  • loop.sock_connect() supports 4 element address tuples for IPv6 sockets. Issue 99.

  • Protect sockets from closing while they are in use by loop.sock_*() methods. Close all reader/writer sockets the loop owns when it closes. Issue 100.

Other event loop APIs

  • loop.run_until_complete() cleans up done callbacks in all situations. By jimmylai. See also Python issue: https://bugs.python.org/issue30423.

  • New uv_loop_fork() libuv API is used in loop.subprocess_shell() and loop.subprocess_exec() making them more stable. Issue 39.

  • loop.call_later() accepts infinite time float('inf'). Issue 102.

  • loop.subprocess_exec() accepts pathlib.Path objects for its cwd parameter. Issue 90.

  • Support pathlib.Path objects in loop.create_unix_connection() and loop.create_unix_server().

  • Try removing existing stale Unix socket paths in loop.create_unix_server().

  • ascii encoding is tried before encoding with idna. Issue 95.

  • Fix slow_callback_duration repr in warnings for callback handles and Tasks. Issue 103.

Python 3.7

Some APIs that will be available in Python 3.7 in vanilla asyncio, but can be used with uvloop today.

  • Implement .cancelled() method for callback and timer handles.

  • Add Transport.is_reading().

  • Implement loop.sock_recv_into().

  • Python 3.7.0a1 is now supported. Issue 110.

Miscellaneous

  • Drop custom uvloop Future and Task implementations. This means that there will be a tiny performance regression for Python 3.5 deploys.

  • Limit stack traces in debug mode to make it faster.

  • signal.siginterrupt is now used by signals machinery to let system calls to be repeated by default, instead of raising an EINTR.

Build

  • libuv in uvloop has been upgraded from v1.11.0 to v1.17.0. Aside from bug fixes and performance improvements, libuv survives fork.

  • LIBUV_CONFIGURE_HOST environment variable can be used to cross-compile uvloop/libuv. By cmcqueen, for issue 104.

  • Cyhton was upgraded from 0.25.2 to 0.27.3.

  • uvloop binary is linked with pthread. By frederikaalund, for issue 87.

Got merge conflicts? Close this PR and delete the branch. I'll create a new PR for you.

Happy merging! 🤖