Skip to content
Draft
Show file tree
Hide file tree
Changes from 66 commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
eeb9a7d
IPC ring bug impl with async read
Mar 12, 2025
5afe0a0
General improvements
Mar 13, 2025
7b8b9d6
move tractor._ipc.py into tractor.ipc._chan.py
Mar 13, 2025
6b4d08d
Move tractor._shm to tractor.ipc._shm
Mar 13, 2025
1a83626
Move linux specifics from tractor.ipc._shm into tractor.ipc._linux
Mar 14, 2025
8de9ab2
Move RingBuffSender|Receiver to its own tractor.ipc._ringbuf module
Mar 14, 2025
9980bb2
Add module headers and fix spacing on tractor._ipc._linux
Mar 14, 2025
f799e9a
Handle cancelation on EventFD.read
Mar 14, 2025
6ac6fd5
Address some of fomo\'s comments
Mar 14, 2025
59c8c7b
Make ring buf api use pickle-able RBToken
Mar 14, 2025
6b15584
Add buf_size to RBToken and add sender cancel test, move disable_mant…
Mar 14, 2025
9b21615
Break out transport protocol and tcp specifics into their own submodu…
Mar 16, 2025
f80a475
Starting to make `.ipc.Channel` work with multiple MsgTransports
Mar 22, 2025
d5e0b08
Add root and random addr getters on MsgTransport type
Mar 22, 2025
486f4a3
Finally switch to using address protocol in all runtime
Mar 23, 2025
1762b3e
Trying to make full suite pass with uds
Mar 23, 2025
4a8a555
Rework/simplify transport addressing
goodboy Mar 30, 2025
bf9d7ba
Implement peer-info tracking for UDS streams
goodboy Mar 31, 2025
cb6c10b
Adjust imports to use new `UnwrappedAddress`
goodboy Mar 31, 2025
ddeab13
Allocate bind-addrs in subactors
goodboy Mar 31, 2025
47d66e6
Add a big boi `Channel.pformat()/__repr__()`
goodboy Mar 31, 2025
544b5bd
Slight typing and multi-line styling tweaks in `.ipc` sugpkg
goodboy Mar 31, 2025
3cb8f92
Adjust lowlevel-tb hiding logic for `MsgStream`
goodboy Mar 31, 2025
009cadf
Add `bidict` pkg as dep since used in `._addr` for now
goodboy Mar 31, 2025
a403958
Adjust `._child` instantiation of `Actor` to use newly named `uuid` arg
goodboy Mar 31, 2025
8884ed0
Bit of multi-line styling for `LocalPortal`
goodboy Mar 31, 2025
b958590
Emphasize internal error block header-comment a bit
goodboy Mar 31, 2025
d041470
Handle broken-pipes from `MsgpackTransport.send()`
goodboy Apr 1, 2025
e025959
Even more `tractor._addr.Address` simplifying
goodboy Apr 2, 2025
a49bfdd
Add a `MsgpackTransport.pformat()`
goodboy Apr 2, 2025
674a33e
Add an `Actor.pformat()`
goodboy Apr 2, 2025
00b5bb7
Factor `breakpoint()` blocking into `@acm`
goodboy Apr 2, 2025
c8d164b
Add `psutil` to `--dev` / testing deps
goodboy Apr 2, 2025
eb11235
Start protoyping multi-transport testing
goodboy Apr 3, 2025
52901a8
Move `DebugRequestError` to `._exceptions`
goodboy Apr 3, 2025
4244db2
More `._addr` boxing refinements
goodboy Apr 3, 2025
7d20022
UDS: translate file dne to connection-error
goodboy Apr 3, 2025
c856060
Mv `Actor._do_handshake()` to `Channel`, add `.aid`
goodboy Apr 3, 2025
a045c78
Mv to `Channel._do_handshake()` in `open_portal()`
goodboy Apr 3, 2025
f6a4a08
Change some low-hanging `.uid`s to `.aid`
goodboy Apr 3, 2025
b05c5b6
Some more log message tweaks
goodboy Apr 3, 2025
789bb71
Repair weird spawn test, start `test_root_runtime`
goodboy Apr 3, 2025
9e812d7
Add `Arbiter.is_registry()` in prep for proper `.discovery._registry`
goodboy Apr 3, 2025
3d3a195
s/`._addr.preferred_transport`/`_state._def_tpt_proto`
goodboy Apr 4, 2025
1d4513e
Unwrap `UDSAddress` as `tuple[str, str]`, i.e. sin pid
goodboy Apr 4, 2025
0e25c16
Support multiple IPC transports in test harness!
goodboy Apr 4, 2025
c21b9cd
Woops, ensure we use `global` before setting `daemon()` fixture spawn…
goodboy Apr 5, 2025
692bd0e
Handle unconsidered fault-edge cases for UDS
goodboy Apr 5, 2025
74df503
Improve `TransportClosed.__repr__()`, add `src_exc`
goodboy Apr 6, 2025
0cb011e
Skip the ringbuf test mod for now since data-gen is a bit "heavy/lagg…
goodboy Apr 6, 2025
8fd7d1c
Add API-modernize-todo on `experimental._pubsub.fan_out_to_ctxs`
goodboy Apr 6, 2025
c9e9a39
Move concrete `Address`es to each tpt module
goodboy Apr 7, 2025
c208bcb
Factor actor-embedded IPC-tpt-server to `ipc` subsys
goodboy Apr 10, 2025
477343a
Add `TransportClosed.from_src_exc()`
goodboy Apr 11, 2025
5f74ce9
Absorb `TransportClosed` in `Portal.cancel_actor()`
goodboy Apr 11, 2025
1628fd1
Another `tn` eg-loosify inside `ActorNursery.cancel()`..
goodboy Apr 11, 2025
8bda59c
Add `_state.current_ipc_protos()`
goodboy Apr 11, 2025
6ff3b6c
Use `current_ipc_protos()` as the `enable_transports`-default-when-`N…
goodboy Apr 11, 2025
b700d90
Set `_state._def_tpt_proto` in `tpt_proto` fixture
goodboy Apr 11, 2025
9807318
Never hide non-[msgtype/tpt-closed] error tbs in `Channel.send()`
goodboy Apr 11, 2025
0f8b299
Improve bit of tooling for `test_resource_cache.py`
goodboy Apr 11, 2025
d534f14
Fix assert on `.devx.maybe_open_crash_handler()` delivered `bxerr`
goodboy Apr 11, 2025
1ccb144
Passthrough `_pause()` kwargs from `_maybe_enter_pm()`
goodboy Apr 11, 2025
42cf9e1
Mv `Actor._stream_handler()` to `.ipc._server` func
goodboy Apr 11, 2025
112ed27
Move peer-tracking attrs from `Actor` -> `IPCServer`
goodboy Apr 11, 2025
51746a7
Re-add boxed struct type system on _codec & create enc/dec hook auto …
Apr 22, 2025
99c383d
Change test structs name to not get conflicts with pytest
Apr 22, 2025
bb37c31
Update CI to use uv
Apr 22, 2025
470acd9
Fix typing on mk_boxed_ext_structs
Apr 22, 2025
6ee5e3e
Refinements, fix dec_hook builtins and same type bug
Apr 22, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{ pkgs ? import <nixpkgs> {} }:
let
nativeBuildInputs = with pkgs; [
stdenv.cc.cc.lib
uv
];

in
pkgs.mkShell {
inherit nativeBuildInputs;

LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath nativeBuildInputs;
TMPDIR = "/tmp";
}
5 changes: 4 additions & 1 deletion examples/advanced_faults/ipc_failure_during_stream.py
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,7 @@ async def main(
break_parent_ipc_after: int|bool = False,
break_child_ipc_after: int|bool = False,
pre_close: bool = False,
tpt_proto: str = 'tcp',

) -> None:

Expand All @@ -131,6 +132,7 @@ async def main(
# a hang since it never engages due to broken IPC
debug_mode=debug_mode,
loglevel=loglevel,
enable_transports=[tpt_proto],

) as an,
):
Expand All @@ -145,7 +147,8 @@ async def main(
_testing.expect_ctxc(
yay=(
break_parent_ipc_after
or break_child_ipc_after
or
break_child_ipc_after
),
# TODO: we CAN'T remove this right?
# since we need the ctxc to bubble up from either
Expand Down
2 changes: 1 addition & 1 deletion examples/service_discovery.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ async def main(service_name):
async with tractor.open_nursery() as an:
await an.start_actor(service_name)

async with tractor.get_registry('127.0.0.1', 1616) as portal:
async with tractor.get_registry() as portal:
print(f"Arbiter is listening on {portal.channel}")

async with tractor.wait_for_actor(service_name) as sockaddr:
Expand Down
3 changes: 3 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ dependencies = [
"pdbp>=1.6,<2", # windows only (from `pdbp`)
# typed IPC msging
"msgspec>=0.19.0",
"cffi>=1.17.1",
"bidict>=0.23.1",
]

# ------ project ------
Expand All @@ -62,6 +64,7 @@ dev = [
"pyperclip>=1.9.0",
"prompt-toolkit>=3.0.50",
"xonsh>=0.19.2",
"psutil>=7.0.0",
]
# TODO, add these with sane versions; were originally in
# `requirements-docs.txt`..
Expand Down
Loading
Loading