diff --git a/quest/m1/ffi-export/refusals/README.md b/quest/m1/ffi-export/refusals/README.md index bb1096e0e..b7df3a1a8 100644 --- a/quest/m1/ffi-export/refusals/README.md +++ b/quest/m1/ffi-export/refusals/README.md @@ -41,8 +41,8 @@ Decided with the maintainer on 2026-11-07, from binding calls; the sans-IO driver bindings use instead is [session-quic](/quest/m3/session-quic.md). Children leave the moq-tokio items outside that session side alone, since narrowing the stand-in drops them. -- Narrowing the stand-in was to land first; the 2026-11-09 audit dropped the order, as - [its quest](/quest/m1/ffi-export/refusals/narrow-standin.md) records. +- Narrowing the stand-in was to land first; the 2026-11-09 audit dropped that order, and + [moq-dev/rust2#683](https://github.com/moq-dev/rust2/pull/683) narrowed it. - ✅ What C can never hold, an object no export returns or lends to a closure, or a generic type no export instantiates, is left out of the bindings and kept listed in the census. Rejected: refusing them, which would make moq add constructors it has no use for. diff --git a/quest/m1/ffi-export/refusals/generics.md b/quest/m1/ffi-export/refusals/generics.md index b8e751ff9..ea8a60d5d 100644 --- a/quest/m1/ffi-export/refusals/generics.md +++ b/quest/m1/ffi-export/refusals/generics.md @@ -4,7 +4,7 @@ The census at the moq pin refuses no item of moq's own for a future or a kept closure taken as a parameter, or a reader it seeks: 11 items at moq `ffcb7cd9`, once -[narrowing](/quest/m1/ffi-export/refusals/narrow-standin.md) drops the moq-tokio items +[moq-dev/rust2#683](https://github.com/moq-dev/rust2/pull/683) drops the moq-tokio items outside its session side. - A future parameter: kio's `Waiter::poll_future`, `clock::timeout`, and diff --git a/quest/m1/ffi-export/refusals/moq-pin.md b/quest/m1/ffi-export/refusals/moq-pin.md index b3c544e80..6e96ee00c 100644 --- a/quest/m1/ffi-export/refusals/moq-pin.md +++ b/quest/m1/ffi-export/refusals/moq-pin.md @@ -6,7 +6,7 @@ The moq pin moves to moq's current `main`, whose crates re-export no whole crate included. `just ffi census` there lists no whole-crate re-export refusal. Its "type not reachable from the crate root" refusals are `kio::Pending` and `lite::version::Version`, which Waiting covers, and moq-quic's stats and varint types under moq-tokio's `quic::driver`, -which narrow-standin drops. At `ffcb7cd9` there were 20 such refusals (18 Guard and Side, and +which [moq-dev/rust2#683](https://github.com/moq-dev/rust2/pull/683) drops. At `ffcb7cd9` there were 20 such refusals (18 Guard and Side, and `Version`), and 9 at moq's head on 2026-11-09, measured in [#676](https://github.com/moq-dev/rust2/pull/676). diff --git a/quest/m1/ffi-export/refusals/narrow-standin.md b/quest/m1/ffi-export/refusals/narrow-standin.md deleted file mode 100644 index 387ef9eb6..000000000 --- a/quest/m1/ffi-export/refusals/narrow-standin.md +++ /dev/null @@ -1,58 +0,0 @@ -# [XS] The stand-in exports only moq-tokio's session side - -## Goal - -The stand-in facade (`just ffi standin`, in `ffi/justfile`) re-exports only the session -side moq-ffi ships from moq-tokio, in place of `pub use ::moq_tokio::*;`: `Client`, -`Server`, `Connection`, `Transport`, `Log`, `tls`, `panic`, the errors, and the types -those items and the fixtures name: `client::Config`, `connect::Config`, `listen::Config` -with `listen::Bind`, `quic::Config`, `server::Config` with `server::Request` and -`server::Listener`, `origin::spawn`, `Backoff`, `Restart`, `Status`, `connection::Monitor`, -and `cli::Duration`. `ffi/moq/ffi.toml` -loses the excludes that only hid items outside it, and the census at the pin reports the -refusals before and after, per crate. - -## Plan - -Decided with the maintainer on 2026-11-07, from -[moq-dev/rust2#655](https://github.com/moq-dev/rust2/pull/655): ✅ the stand-in re-exports -only that session side. Rejected: all of moq-tokio, whose tokio QUIC driver, CLI helpers, -worker groups, and listeners no binding calls; bindings drive the sans-IO driver of -[session-quic](/quest/m3/session-quic.md) instead. - -Decided with the maintainer on 2026-11-09, in the quest audit: ✅ no landing order. Each -sibling leaves the moq-tokio items outside the session side alone, and whichever PR lands -later measures the census again. Rejected: this landing first, as decided on 2026-11-07, -which no `Required` link held and which two siblings ready for review had already passed. - -The list above was not closed over what the fixtures and moq-ffi call. Its closure was -decided on 2026-11-09 in the iterate of -[#683](https://github.com/moq-dev/rust2/pull/683), which found `just ffi moq` fails -without it: `ffi/moq/moq.*` use about 40 moq-tokio names the list left out. - -Narrowing drops moq-tokio's `rustls`, `notify`, -`congestion`, `cli::usage_rs`, and `quic::web`'s `http` and `proto` re-exports, and -`quic::driver`'s `Side` refusals. Every item named exists at moq `ffcb7cd9` -(`rs/moq-tokio/src/lib.rs`). Update the counts in the -[epic](/quest/m1/ffi-export/refusals/README.md) and its children from the new census. - -Decided with the maintainer on 2026-11-09, in the iterate of -[moq-dev/rust2#683](https://github.com/moq-dev/rust2/pull/683): - -- ✅ The closure over the session side adds the types the session items and the fixtures - name, and keeps the CLI helpers and listener internals out, so `Client::new`, - `Server::new`, and the like export again (rejected: rewriting the seven fixtures to the - narrow list). -- ✅ No rename of the three `Config`s: Rust keeps `connect::Config`, `listen::Config`, and - `quic::Config`, and C keeps `moq_tokio_connect_Config_*`. Go, which clashes, keeps its - module segment for a name still shared, so they are `tokio.ConnectConfig`, - `tokio.ListenConfig`, and `tokio.QuicConfig`, the names its fixture already uses. Other - languages keep their names (rejected: renaming to `ConnectConfig`, `ListenConfig`, and - `QuicConfig` in the stand-in; re-exporting whole modules). - -The census at this change refuses 130 items, 41 of them in moq-tokio, and 6 types, down -from 1111 items, 84 in moq-tokio, and 321 types. The after-census is on the merged tree, which -includes main's own export changes, so it is not the stand-in change alone. - -Public API: the stand-in's exports, which the census and the bindings' fixtures read. - diff --git a/quest/m1/ffi-export/refusals/std-types.md b/quest/m1/ffi-export/refusals/std-types.md index c0c094e23..2cf2d31dc 100644 --- a/quest/m1/ffi-export/refusals/std-types.md +++ b/quest/m1/ffi-export/refusals/std-types.md @@ -13,7 +13,7 @@ and `LevelFilter`. The rest of the original count lies in moq-tokio outside its session side (`NonZero` in `quic::driver`, `IpAddr` in `quic::demux`, `UdpSocket` and `TcpListener` in `bind`, and `io::Error` parameters in `accept` and `notify`), which -[narrow-standin](/quest/m1/ffi-export/refusals/narrow-standin.md) drops. +[moq-dev/rust2#683](https://github.com/moq-dev/rust2/pull/683) drops. ## Plan