Skip to content

Commit a662c45

Browse files
committedAug 1, 2021
Initial commit.
0 parents  commit a662c45

File tree

8 files changed

+120
-0
lines changed

8 files changed

+120
-0
lines changed
 

‎.github/workflows/build-site.yml

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
name: Publish Site
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
8+
jobs:
9+
build-deploy:
10+
runs-on: ubuntu-latest
11+
12+
steps:
13+
- name: Checkout Repo
14+
uses: actions/checkout@master
15+
with:
16+
submodules: true
17+
- name: Publish Site
18+
uses: chabad360/hugo-gh-pages@master
19+
with:
20+
githubToken: ${{ secrets.PERSONAL_TOKEN }}

‎.gitmodules

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "themes/hyde"]
2+
path = themes/hyde
3+
url = https://github.com/spf13/hyde.git

‎README.rst

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Trio website.

‎archetypes/default.md

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
title: "{{ replace .Name "-" " " | title }}"
3+
date: {{ .Date }}
4+
draft: true
5+
---
6+

‎config.toml

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
baseURL = "https://python-trio.github.io/"
2+
languageCode = "en-gb"
3+
title = "Trio"
4+
theme = "hyde"
5+
6+
7+
[params]
8+
description = "A friendly Python library for async concurrency and I/O "
9+
copyright = "All content licenced under CC-BY 4.0 unless otherwise indicated."
10+
11+
[menus]
12+
main = [
13+
{Name = "Docs", URL = "https://trio.readthedocs.io/en/latest/"},
14+
{Name = "GitHub", URL = "https://github.com/python-trio/trio"}
15+
]

‎content/trio-monthly-2021-07.md

+74
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
---
2+
title: Trio Monthly - 2021/07
3+
date: 2021-08-01T00:00:00Z
4+
draft: false
5+
tags:
6+
- trio-weekly
7+
- trio
8+
---
9+
10+
Welcome to the July 2021 edition of Trio Monthly. This is a monthly blog post dedicated to
11+
highlighting what's going on in the Trio world, from developments in the core library to
12+
developments in new and existing libraries and application powered by Trio.
13+
14+
If you wish to get your library featured in a Trio Monthly post, please contact the author on Matrix
15+
(``@lura:veriny.tf``).
16+
17+
## Trio Library
18+
19+
### Cyclic Garbage Fixes
20+
21+
Trio had another source of cyclic garbage eliminated this month, in
22+
[PR #2063](https://github.com/python-trio/trio/pull/2063).
23+
24+
> Trio now avoids creating cyclic garbage when a `MultiError` is generated and filtered,
25+
> including invisibly within the cancellation system. This means errors raised
26+
> through nurseries and cancel scopes should result in less GC latency.
27+
28+
Trio has to do low-level things when it comes to frames, tracebacks, and exceptions, which sometimes
29+
results in cyclic references being left around. These aren't picked up by the regular Python
30+
reference count garbage collector, but by the cyclic detector instead, causing potential GC pressure
31+
and application slowdowns. Eliminating these cycles allows the objects to be freed much sooner,
32+
improving the speed and memory usage of all Trio applications.
33+
34+
## External Libraries
35+
36+
We have two libraries to feature this month.
37+
38+
### trio-parallel
39+
40+
The first of this is the ``trio-parallel`` library. As the author puts it:
41+
42+
> ``trio-parallel`` is a simple CPU-parallelism library for Trio. This month, an advanced subprocess
43+
> worker customization API, the ``cache_scope`` context manager, was merged, allowing choice of
44+
> initialization, timeout, and retirement policies, as well as defining a scoped lifetime for an
45+
> isolated, local worker cache. This feature has been pre-released in version 1.0.0a0 available on
46+
> PyPI for wider testing for a final 1.0 release later this year. Please see
47+
> https://trio-parallel.rtfd.io/en/1.0.0a0/ for details.
48+
49+
### Tractor
50+
51+
The second library featured is the Tractor library. As the author puts it:
52+
53+
> For those who haven't heard of us, ``tractor`` is a multi-processing-runtime library which applies
54+
> structured concurrency from the ground up on process managment and IPC. We had our first alpha
55+
> release this past Feb. and now our second this Aug. 1st 🥳.
56+
57+
> The quick and dirty summary for this release is:
58+
> - Updated our unidirectional streaming APIs to be more `async_generator.aclosing()`-like
59+
> - Vastly improved our actor reaping during cancellation and error propagation for the
60+
> `multiprocessing` spawner backend
61+
> - Added a next-gen, fully bi-directional streaming API with complete, transitive SC semantics
62+
> for IPC 🏄🏼‍♀️
63+
> - Hardened our multi-process debugger support (ala `pdb++`) to prevent root process clobbers of
64+
> children who have acquired the repl tty lock; this is thanks to our new ``tractor.Context``
65+
> cross-actor-task syncing protocol.
66+
> - Started some tinkering with `msgspec` for an optional alternative to `msgpack-python`.
67+
> - Improved our infected-`asyncio`-in-guest-mode cross-loop streaming semantics by simplifying to
68+
> memory channel only style data passing between frameworks.
69+
> - Added a ton of new examples to both the readme and repository script set.
70+
> - Removed both `tractor.run()` and support for invoking sync functions; instead we recommend users
71+
> try `trio-parallel`!
72+
>
73+
> For more details see our [new release](https://github.com/goodboy/tractor/blob/master/NEWS.rst).
74+

‎static/favicon.png

17.5 KB
Loading

‎themes/hyde

Submodule hyde added at 208a9e3

0 commit comments

Comments
 (0)
Please sign in to comment.