Skip to content

Remove static lifetime#70

Closed
olibye wants to merge 6 commits intowingfoil-io:mainfrom
olibye:remove-static-lifetime
Closed

Remove static lifetime#70
olibye wants to merge 6 commits intowingfoil-io:mainfrom
olibye:remove-static-lifetime

Conversation

@olibye
Copy link
Contributor

@olibye olibye commented Feb 4, 2026

This is kind of messy but proves it's possible.

Update HashByRef to compare data pointers only, enabling identity checks across different lifetime parameters. Update Bencher to support nodes with lifetimes.
Redefine Stream, Node, and MutableNode traits to include a lifetime parameter 'a. Propagate this lifetime through Graph, GraphState, and basic stream operators. Refactor simple library nodes to support non-static data.
Update demux, fold, graph_node (mapper/producer), and async_io to support lifetime 'a. Resolve type mismatches in nested TinyVec streams and ensure proper thread joining in teardown.
Update CSV and Iterator stream adapters to comply with the new lifetime-parameterized Node and Stream traits.
Update PyStream and PyNode to use 'static lifetime for the underlying rust nodes. Use unsafe transmute in upstreams to bridge lifetimes within the Python wrapper boundary.
Update doc-tests and examples to use the new lifetime-parameterized API. Switch most doc-tests to HistoricalMode for reliability.
@olibye olibye marked this pull request as draft February 4, 2026 18:32
@olibye
Copy link
Contributor Author

olibye commented Feb 5, 2026

Going to stick to node ownership of state.

@olibye olibye closed this Feb 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant