mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-09 18:45:54 +02:00
c3863ea14df3d088b7a6394231f1f8e93dff029a
- Update from version 0.22.0 to 0.23.1
- Update of rootfile
- Changelog
0.23.0
Headline features
Add type hints. (#543)
Features
When exiting a nursery block, the parent task always waits for child tasks
to exit. This wait cannot be cancelled. However, previously, if you tried
to cancel it, it would inject a Cancelled exception, even though it wasn’t
cancelled. Most users probably never noticed either way, but injecting a
Cancelled here is not really useful, and in some rare cases caused
confusion or problems, so Trio no longer does that. (#1457)
If called from a thread spawned by trio.to_thread.run_sync,
trio.from_thread.run and trio.from_thread.run_sync now reuse the task and
cancellation status of the host task; this means that context variables and
cancel scopes naturally propagate ‘through’ threads spawned by Trio. You
can also use trio.from_thread.check_cancelled to efficiently check for
cancellation without reentering the Trio thread. (#2392)
trio.lowlevel.start_guest_run() now does a bit more setup of the guest run
before it returns to its caller, so that the caller can immediately make
calls to trio.current_time(), trio.lowlevel.spawn_system_task(),
trio.lowlevel.current_trio_token(), etc. (#2696)
Bugfixes
When a starting function raises before calling trio.TaskStatus.started(),
trio.Nursery.start() will no longer wrap the exception in an undocumented
ExceptionGroup. Previously, trio.Nursery.start() would incorrectly raise an
ExceptionGroup containing it when using trio.run(...,
strict_exception_groups=True). (#2611)
Deprecations and removals
To better reflect the underlying thread handling semantics, the keyword
argument for trio.to_thread.run_sync that was previously called cancellable
is now named abandon_on_cancel. It still does the same thing – allow the
thread to be abandoned if the call to trio.to_thread.run_sync is
cancelled – but since we now have other ways to propagate a cancellation
without abandoning the thread, “cancellable” has become somewhat of a
misnomer. The old cancellable name is now deprecated. (#2841)
Deprecated support for math.inf for the backlog argument in
open_tcp_listeners, making its docstring correct in the fact that only
TypeError is raised if invalid arguments are passed. (#2842)
Removals without deprecations
Drop support for Python3.7 and PyPy3.7/3.8. (#2668)
Removed special MultiError traceback handling for IPython. As of version
8.15 ExceptionGroup is handled natively. (#2702)
Miscellaneous internal changes
Trio now indicates its presence to sniffio using the sniffio.thread_local
interface that is preferred since sniffio v1.3.0. This should be less
likely than the previous approach to cause sniffio.current_async_library()
to return incorrect results due to unintended inheritance of contextvars.
(#2700)
On windows, if SIO_BASE_HANDLE failed and SIO_BSP_HANDLE_POLL didn’t return
a different socket, runtime error will now raise from the OSError that
indicated the issue so that in the event it does happen it might help with
debugging. (#2807)
0.22.2
Bugfixes
Fix PermissionError when importing trio due to trying to access pthread.
(#2688)
0.22.1
Breaking changes
Timeout functions now raise ValueError if passed math.nan. This includes
trio.sleep, trio.sleep_until, trio.move_on_at, trio.move_on_after,
trio.fail_at and trio.fail_after. (#2493)
Features
Added support for naming threads created with trio.to_thread.run_sync,
requires pthreads so is only available on POSIX platforms with glibc
installed. (#1148)
trio.socket.socket now prints the address it tried to connect to upon
failure. (#1810)
Bugfixes
Fixed a crash that can occur when running Trio within an embedded Python
interpreter, by handling the TypeError that is raised when trying to
(re-)install a C signal handler. (#2333)
Fix sniffio.current_async_library() when Trio tasks are spawned from a
non-Trio context (such as when using trio-asyncio). Previously, a regular
Trio task would inherit the non-Trio library name, and spawning a system
task would cause the non-Trio caller to start thinking it was Trio. (#2462)
Issued a new release as in the git tag for 0.22.0, trio.__version__ is
incorrectly set to 0.21.0+dev. (#2485)
Improved documentation
Documented that Nursery.start_soon does not guarantee task ordering. (#970)
Tested-by: Adolf Belka <adolf.belka@ipfire.org>
Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
IPFire 2.x - The Open Source Firewall
What is IPFire?
IPFire is a hardened, versatile, state-of-the-art Open Source firewall based on Linux. Its ease of use, high performance in any scenario and extensibility make it usable for everyone. For a full list of features have a look here.
This repository contains the source code of IPFire 2.x which is used to build the whole distribution from scratch, since IPFire is not based on any other distribution.
Where can I get IPFire?
Just head over to https://www.ipfire.org/download
How do I use this software?
We have a long and detailed wiki located here which should answers most of your questions.
But I have some questions left. Where can I get support?
You can ask your question at our community located here. A complete list of our support channels can be found here.
How can I contribute?
We have another document for this. Please look here.
Description
Languages
Perl
70.4%
Shell
23%
C
4%
Python
0.6%
Makefile
0.5%
Other
1.4%