diff --git a/quest/m1/ffi-export/README.md b/quest/m1/ffi-export/README.md index 487b70d3a..a2cc6480a 100644 --- a/quest/m1/ffi-export/README.md +++ b/quest/m1/ffi-export/README.md @@ -51,3 +51,4 @@ Every generator on the C ABI: - [Sessions on sans-IO QUIC](/quest/m1/ffi-export/session-quic.md) - bindings move UDP datagrams and drive the session's poll themselves, over moq's runtime-free QUIC driver once it lands - [C++ bindings on MSVC](/quest/m1/ffi-export/cpp.md) - the nightly's MSVC job passes the C++ checks - [Kotlin bindings on Android in the nightly](/quest/m1/ffi-export/kotlin-android.md) - the nightly's emulator job passes the Kotlin test, shrunk by R8, at API 24 and 35 +- [Waiting: moq-tokio within the recursion limit](/quest/m1/ffi-export/recursion-limit.md) - the exporter's moq pin moves past moq-dev/moq#7032 once moq-tokio's `Send` check fits the limit diff --git a/quest/m1/ffi-export/recursion-limit.md b/quest/m1/ffi-export/recursion-limit.md new file mode 100644 index 000000000..48ef0b2be --- /dev/null +++ b/quest/m1/ffi-export/recursion-limit.md @@ -0,0 +1,18 @@ +# [S] Waiting: moq-tokio within the recursion limit + +## Goal + +`just ffi moq` exports moq's `main` again. [moq-dev/moq#7032](https://github.com/moq-dev/moq/pull/7032) +made moq-tokio's `tokio::spawn` of `moq_net::time::run` overflow the trait solver's +recursion limit proving `Send`, a future-compat lint on the exporter's nightly that the +recipe denies so a later nightly cannot break the export. Until moq fixes it, the +exporter's moq pin cannot move past it and misses moq's later API. + +Check: on the exporter's nightly, in a moq checkout, +`RUSTFLAGS="-D recursion_depth_exceeding_limit" cargo check -p moq-tokio`. Advance it with a +quest in moq. + +## Plan + +Once it passes on moq's `main`, bump the exporter's `moq_rev` and update the config to what +`just ffi census` then refuses. diff --git a/quest/m2/README.md b/quest/m2/README.md index 62b9b5b94..5b4ae8621 100644 --- a/quest/m2/README.md +++ b/quest/m2/README.md @@ -26,6 +26,7 @@ The fork's feature quests folded into the [exporter](/quest/m1/ffi-export/README ## Required +- [Translate moq-net without moq-wasm](/quest/m2/ts-moq-pin.md) - the translator's moq pin moves past moq's WASM removal, back onto the exporter's - [Translate moq-net's model to TypeScript](/quest/m2/ts-model/README.md) - the model translates with kio, moq-clock, and moq-pattern, for moq to compare against WASM - [Waiting: Swift 6.4 in nixpkgs-unstable](/quest/m2/uniffi-swift-arm.md) - the nightly UniFFI fixtures move back to arm - [Waiting: ubrn reads UniFFI 0.32](/quest/m2/ubrn-release.md) - the binding benchmark's browser runner pins a ubrn release, not an open PR diff --git a/quest/m2/ts-moq-pin.md b/quest/m2/ts-moq-pin.md new file mode 100644 index 000000000..bf582d08b --- /dev/null +++ b/quest/m2/ts-moq-pin.md @@ -0,0 +1,21 @@ +# [M] Translate moq-net without moq-wasm + +## Goal + +`just ts moq` and `just ts census` translate moq-net from moq's `main`, and the translator +and the exporter share one moq pin again ([#390](https://github.com/moq-dev/rust2/pull/390) +holds until then). moq dropped WASM in +[moq-dev/moq#7475](https://github.com/moq-dev/moq/pull/7475), and with it moq-wasm, which +picked the browser's randomness for moq-net's `rand` and `uuid` on wasm32. Without it, +getrandom and uuid refuse to build there, so the translator's moq pin cannot move past it. + +## Plan + +The browser's randomness is a platform boundary, so the driver may pick it for a stock +crate, as a wasm32 binary would. Prefer what getrandom and uuid document for wasm32 over a +stand-in crate. + +`just ts bench`'s `moq-wasm package` row has no source past that pin either: decide with +the maintainer whether it goes, or stays on the last revision with moq-wasm. The +[model's](/quest/m2/ts-model/README.md) comparison against moq's WASM build may change +with it.