2018-06-26 06:22:32 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message:
py-uvloop: updated to 0.10.2
v0.10.2:
Bug Fixes
* Use a proper type for the thread indent (fixes 32-bit build for 3.7.)
* Fix cancellation race in loop.sock_recv() and loop.sock_recv_into()
methods.
* Sync SSL error messages with CPython's SSL implementation.
* Fix SSLTransport.abort() to mark the transport as closed.
* Detect if libuv submodule has not been checked out in setup.py.
|
2018-06-04 17:06:47 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message:
py-uvloop: updated to 0.10.1
v0.10.1:
Bump Cython from 0.28.2 to 0.28.3.
Increase default SSL handshake timeout to 60 seconds.
Add ssl_handshake_timeout parameter to loop.create_connection(),
loop.create_server(), loop.create_unix_connection(),
loop.create_unix_server(), loop.connect_accepted_socket().
Consistently close transports if create_server/create_connection/etc
timeout or cancelled.
|
2018-05-31 11:28:41 by Adam Ciarcinski | Files touched by this commit (3) | |
Log message:
py-uvloop: updated to 0.10.0
v0.10.0
New Features
* Support Python 3.7.
* Implement PEP 567 support (contextvars module) for Python 3.7.
* Add uvloop's own version of asyncio/sslproto.py. SSL is now ~50% faster.
* Convert Future-returning loop methods to coroutines.
* Allow file objects to be passed to loop.subprocess* functions.
* Make signals processing more reliable.
* Prohibit adding a signal handler for SIGCHLD.
* Add uvloop.__version__.
Bug Fixes
* Upgrade to Cython 0.28.2.
* Update libuv from v1.17.0 to v1.20.3.
* Make sure UDP handles are cleaned-up properly.
* Fix subprocess.close() to let its processes die gracefully.
* Fix sock_connect() to resolve addresses for correct socket family.
* Fix a race condition in SSL handshake.
|
2017-11-29 08:56:47 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message:
py-uvloop: updated to 0.9.1
v0.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.
|
2017-11-27 11:44:55 by Adam Ciarcinski | Files touched by this commit (3) | |
Log message:
py-uvloop: updated to 0.9.0
v0.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.
loop.create_server() keeps a strong reference to the Server
object it returns until its closed.
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.
UDPTransport.sendto(data, addr) will raise an exception if
addr requires a name resolution.
Low-level sockets
-----------------
loop.add_reader() and loop.add_writer() accept file-like
objects.
loop.sock_connect() supports 4 element address tuples for
IPv6 sockets.
Protect sockets from closing while they are in use by
loop.sock_*() methods. Close all reader/writer sockets the
loop owns when it closes.
Other event loop APIs
---------------------
loop.run_until_complete() cleans up done callbacks in all
situations.
New uv_loop_fork() libuv API is used in loop.subprocess_shell()
and loop.subprocess_exec() making them more stable.
loop.call_later() accepts infinite time float('inf').
loop.subprocess_exec() accepts pathlib.Path objects for its
cwd parameter.
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.
Fix slow_callback_duration repr in warnings for callback handles
and Tasks.
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.
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.
Cyhton was upgraded from 0.25.2 to 0.27.3.
uvloop binary is linked with pthread
|
2017-09-13 08:21:02 by Adam Ciarcinski | Files touched by this commit (3) | |
Log message:
py-uvloop: update to 0.8.1
v0.8.1:
* Fix create_datagram_endpoint to work with AF_INET6 and no local_addr
|
2017-06-24 09:13:05 by Adam Ciarcinski | Files touched by this commit (1) |
Log message:
Added 'python' to CATEGORIES
|
2017-06-24 08:50:59 by Adam Ciarcinski | Files touched by this commit (1) |
Log message:
Inital commit had too much dirt -- this is a clean-up.
|
2017-06-24 08:47:59 by Adam Ciarcinski | Files touched by this commit (5) |
Log message:
uvloop is a fast, drop-in replacement of the built-in asyncio event loop.
uvloop and asyncio, combined with the power of async/await in Python 3.5,
makes it easier than ever to write high-performance networking code in Python.
uvloop makes asyncio fast. In fact, it is at least 2x faster than nodejs,
gevent, as well as any other Python asynchronous framework. The performance
of uvloop-based asyncio is close to that of Go programs.
|