Skip to content

Commit 67dbe7c

Browse files
committed
bd: close moon_cpal-uao.40 (platform/mod.rs parity)
1 parent a9fd042 commit 67dbe7c

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

.beads/issues.jsonl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@
6464
{"id":"moon_cpal-uao.39","title":"Parity: samples_formats.rs","description":"Align with cpal-reference/src/samples_formats.rs. Ensure SampleFormat + I24/U24 + sample conversion traits match upstream semantics.\\n\\nAcceptance:\\n- Port/cover all upstream sample conversion behaviors with MoonBit tests.\\n- Ensure Data codecs can represent the supported SampleFormat set.","notes":"Added SampleFormat::to_string to match upstream Display output; tests now use to_string.","status":"closed","priority":2,"issue_type":"task","owner":"842376130@qq.com","created_at":"2026-02-04T21:38:49.538146+08:00","created_by":"Milky2018","updated_at":"2026-02-05T09:30:51.510498+08:00","closed_at":"2026-02-05T09:30:51.510498+08:00","close_reason":"samples_formats.rs parity","dependencies":[{"issue_id":"moon_cpal-uao.39","depends_on_id":"moon_cpal-uao","type":"parent-child","created_at":"2026-02-04T21:38:49.540099+08:00","created_by":"Milky2018"}]}
6565
{"id":"moon_cpal-uao.4","title":"Upstream test inventory","description":"Enumerate upstream test files and map them to MoonBit test files; add missing tests as skipped initially where platform-specific.","notes":"2026-02-02: Start inventory of upstream RustAudio/cpal tests under cpal-reference/.\nUpstream test inventory (cpal-reference @ 6627959add25299a4e6077f45eb69721cfaaa14f):\n\n- cpal-reference/src/lib.rs\n - test_cmp_default_heuristics: deterministic ordering heuristic for SupportedStreamConfigRange\n - test_stream_instant: add/sub overflow + negative timestamps\n- cpal-reference/src/host/coreaudio/macos/mod.rs\n - test_play: build_output_stream + play + sleep\n - test_record: build_input_stream + play + sleep\n - test_record_output: builds input stream on output device (skips on CI)\n- cpal-reference/src/host/coreaudio/ios/mod.rs\n - test_ios_fixed_buffer_size: BufferSize::Fixed support on iOS via AVAudioSession\n\nMoonBit port status:\n- lib.rs tests: already ported into cpal_wbtest.mbt and passing (cmp_default_heuristics + StreamInstant).\n- CoreAudio macOS/iOS tests: not yet ported (requires full stream build/play impl and/or iOS backend).\n","status":"closed","priority":2,"issue_type":"chore","owner":"842376130@qq.com","created_at":"2026-02-02T17:52:50.618518+08:00","created_by":"Milky2018","updated_at":"2026-02-02T18:44:45.289433+08:00","closed_at":"2026-02-02T18:44:45.289433+08:00","close_reason":"Inventory complete; created follow-up tasks for sample/data layer and CoreAudio stream + smoke tests","dependencies":[{"issue_id":"moon_cpal-uao.4","depends_on_id":"moon_cpal-uao","type":"parent-child","created_at":"2026-02-02T17:52:50.619156+08:00","created_by":"Milky2018"}]}
6666
{"id":"moon_cpal-uao.4.1","title":"Update CORE_PARITY.md to match implemented slice","description":"CORE_PARITY.md currently lists some items as missing that have been implemented/tests ported. Update the checklist to reflect current state and keep it aligned with cpal_wbtest.mbt.","acceptance_criteria":"- CORE_PARITY.md matches current implementation\\n- No behavior changes; docs-only","notes":"2026-02-02: Updating CORE_PARITY.md to reflect current implemented core slice and wbtests.","status":"closed","priority":2,"issue_type":"chore","owner":"842376130@qq.com","created_at":"2026-02-02T18:44:34.592437+08:00","created_by":"Milky2018","updated_at":"2026-02-02T18:46:30.418484+08:00","closed_at":"2026-02-02T18:46:30.418484+08:00","close_reason":"CORE_PARITY.md updated to reflect implemented SupportedStreamConfigRange helpers and callback timestamp types","dependencies":[{"issue_id":"moon_cpal-uao.4.1","depends_on_id":"moon_cpal-uao.4","type":"parent-child","created_at":"2026-02-02T18:44:34.659774+08:00","created_by":"Milky2018"}]}
67-
{"id":"moon_cpal-uao.40","title":"Parity: platform/mod.rs","description":"Align with cpal-reference/src/platform/mod.rs for native-only. Ensure host selection and dynamic dispatch semantics match upstream expectations.\\n\\nAcceptance:\\n- available_hosts/default_host/host_from_id semantics match upstream on each OS (best-effort tests).","notes":"Aligned HostUnavailable to match upstream (no payload); HostId::parse now raises HostUnavailable; platform.host_from_id raises host_unavailable() without string; published 0.3.0.\nBreaking parity step: Device::id now raises DeviceIdError (upstream Result). Updated spec, platform wrapper, tests, and cmd/enumerate. Added device_id_error_backend_specific/unsupported_platform helpers. Published 0.5.1.\nAdded HostId::name() parity (variant name) + tests; published 0.5.2.\nplatform.available_hosts now filters JACK by runtime server availability (default_server_config probe), matching upstream available_hosts semantics. Published 0.5.3.\nBreaking parity: remove Null from available_hosts on supported native OSes (matches upstream: Null host only exists on unsupported platforms). platform.available_hosts now returns CoreAudio/Alsa(+Jack)/Wasapi based on OS+runtime; published 0.6.0.","status":"open","priority":2,"issue_type":"task","owner":"842376130@qq.com","created_at":"2026-02-04T21:38:49.745734+08:00","created_by":"Milky2018","updated_at":"2026-02-05T10:01:08.733776+08:00","dependencies":[{"issue_id":"moon_cpal-uao.40","depends_on_id":"moon_cpal-uao","type":"parent-child","created_at":"2026-02-04T21:38:49.748072+08:00","created_by":"Milky2018"}],"comments":[{"id":3,"issue_id":"moon_cpal-uao.40","author":"Milky2018","text":"spec.available_hosts() now delegates to platform.available_hosts() (runtime filtering e.g. JACK), reducing divergence from upstream cpal::available_hosts() path (still different import path due to MoonBit package cycles).","created_at":"2026-02-05T02:46:15Z"},{"id":5,"issue_id":"moon_cpal-uao.40","author":"Milky2018","text":"Platform parity updates: added platform.all_hosts() (upstream ALL_HOSTS analogue), adjusted platform.available_hosts() ordering to match upstream (JACK before ALSA) and ensured Null only constructible via host_from_id on NativeOs::Unknown. Root available_hosts updated accordingly; cmd/enumerate prints both all_hosts + available_hosts.","created_at":"2026-02-05T03:34:28Z"},{"id":7,"issue_id":"moon_cpal-uao.40","author":"Milky2018","text":"Platform/mod.rs parity progress: spec+root now route available_hosts/all_hosts/default_host/host_from_id through platform dispatch (ordering JACK before ALSA on Linux). Moved available_hosts OS-dependent assertions into platform_native_test; spec tests now use spec.available_hosts() rather than core. Root no longer exports native_os/NativeOs (internal core helper only).","created_at":"2026-02-05T04:22:14Z"},{"id":15,"issue_id":"moon_cpal-uao.40","author":"Milky2018","text":"Platform dispatch now exposes iterator-style APIs: platform.Host::devices/input_devices/output_devices return Iter[Device] (wrapping backend arrays via .iter()); device_by_id uses Iter::find_first; supported_*_configs return Iter. platform_native_test/spec_platform_test updated accordingly.","created_at":"2026-02-05T05:41:03Z"}]}
67+
{"id":"moon_cpal-uao.40","title":"Parity: platform/mod.rs","description":"Align with cpal-reference/src/platform/mod.rs for native-only. Ensure host selection and dynamic dispatch semantics match upstream expectations.\\n\\nAcceptance:\\n- available_hosts/default_host/host_from_id semantics match upstream on each OS (best-effort tests).","notes":"Aligned HostUnavailable to match upstream (no payload); HostId::parse now raises HostUnavailable; platform.host_from_id raises host_unavailable() without string; published 0.3.0.\nBreaking parity step: Device::id now raises DeviceIdError (upstream Result). Updated spec, platform wrapper, tests, and cmd/enumerate. Added device_id_error_backend_specific/unsupported_platform helpers. Published 0.5.1.\nAdded HostId::name() parity (variant name) + tests; published 0.5.2.\nplatform.available_hosts now filters JACK by runtime server availability (default_server_config probe), matching upstream available_hosts semantics. Published 0.5.3.\nBreaking parity: remove Null from available_hosts on supported native OSes (matches upstream: Null host only exists on unsupported platforms). platform.available_hosts now returns CoreAudio/Alsa(+Jack)/Wasapi based on OS+runtime; published 0.6.0.","status":"closed","priority":2,"issue_type":"task","owner":"842376130@qq.com","created_at":"2026-02-04T21:38:49.745734+08:00","created_by":"Milky2018","updated_at":"2026-02-05T15:19:08.530349+08:00","closed_at":"2026-02-05T15:19:08.530349+08:00","close_reason":"Closed","dependencies":[{"issue_id":"moon_cpal-uao.40","depends_on_id":"moon_cpal-uao","type":"parent-child","created_at":"2026-02-04T21:38:49.748072+08:00","created_by":"Milky2018"}],"comments":[{"id":3,"issue_id":"moon_cpal-uao.40","author":"Milky2018","text":"spec.available_hosts() now delegates to platform.available_hosts() (runtime filtering e.g. JACK), reducing divergence from upstream cpal::available_hosts() path (still different import path due to MoonBit package cycles).","created_at":"2026-02-05T02:46:15Z"},{"id":5,"issue_id":"moon_cpal-uao.40","author":"Milky2018","text":"Platform parity updates: added platform.all_hosts() (upstream ALL_HOSTS analogue), adjusted platform.available_hosts() ordering to match upstream (JACK before ALSA) and ensured Null only constructible via host_from_id on NativeOs::Unknown. Root available_hosts updated accordingly; cmd/enumerate prints both all_hosts + available_hosts.","created_at":"2026-02-05T03:34:28Z"},{"id":7,"issue_id":"moon_cpal-uao.40","author":"Milky2018","text":"Platform/mod.rs parity progress: spec+root now route available_hosts/all_hosts/default_host/host_from_id through platform dispatch (ordering JACK before ALSA on Linux). Moved available_hosts OS-dependent assertions into platform_native_test; spec tests now use spec.available_hosts() rather than core. Root no longer exports native_os/NativeOs (internal core helper only).","created_at":"2026-02-05T04:22:14Z"},{"id":15,"issue_id":"moon_cpal-uao.40","author":"Milky2018","text":"Platform dispatch now exposes iterator-style APIs: platform.Host::devices/input_devices/output_devices return Iter[Device] (wrapping backend arrays via .iter()); device_by_id uses Iter::find_first; supported_*_configs return Iter. platform_native_test/spec_platform_test updated accordingly.","created_at":"2026-02-05T05:41:03Z"},{"id":26,"issue_id":"moon_cpal-uao.40","author":"Milky2018","text":"Status: platform/mod.rs parity seems complete for native-only scope (HostId strings/name parsing, all_hosts/available_hosts/default_host/host_from_id semantics, iterator-style Devices + Supported*Configs, and Linux JACK availability filtering). Leaving remaining work to backend-specific parity tasks.","created_at":"2026-02-05T07:19:02Z"}]}
6868
{"id":"moon_cpal-uao.41","title":"Parity: host/mod.rs","description":"Align with cpal-reference/src/host/mod.rs (native-only). Ensure HostId/HostTrait wiring and host module structure matches upstream.\\n\\nAcceptance:\\n- HostTrait/DeviceTrait/StreamTrait equivalents exist and match upstream method behavior.","status":"closed","priority":2,"issue_type":"task","owner":"842376130@qq.com","created_at":"2026-02-04T21:39:03.095379+08:00","created_by":"Milky2018","updated_at":"2026-02-05T10:46:15.959018+08:00","closed_at":"2026-02-05T10:46:15.959018+08:00","close_reason":"Added MoonBit CPAL-like traits in new package Milky2018/moon_cpal/traits and implemented for spec Host/Device/Stream (typed + raw stream builders).","dependencies":[{"issue_id":"moon_cpal-uao.41","depends_on_id":"moon_cpal-uao","type":"parent-child","created_at":"2026-02-04T21:39:03.097658+08:00","created_by":"Milky2018"}]}
6969
{"id":"moon_cpal-uao.42","title":"Parity: host/null/mod.rs","description":"Align with cpal-reference/src/host/null/mod.rs. Ensure Null host/device/stream behaviors (including error semantics) match upstream wherever applicable.\\n\\nAcceptance:\\n- Null host passes all portable parity tests (callbacks, pause/play/close semantics).","status":"closed","priority":3,"issue_type":"task","owner":"842376130@qq.com","created_at":"2026-02-04T21:39:03.294486+08:00","created_by":"Milky2018","updated_at":"2026-02-05T11:34:28.911974+08:00","closed_at":"2026-02-05T11:34:28.911974+08:00","close_reason":"Closed","dependencies":[{"issue_id":"moon_cpal-uao.42","depends_on_id":"moon_cpal-uao","type":"parent-child","created_at":"2026-02-04T21:39:03.297979+08:00","created_by":"Milky2018"}],"comments":[{"id":4,"issue_id":"moon_cpal-uao.42","author":"Milky2018","text":"Aligned MoonBit null backend to upstream cpal null host semantics: Host.devices() empty; default_{in,out}_device() None; supported/default config + stream builders raise backend-specific errors; Stream play/pause unimplemented. Moved deterministic callback-thread test backend into internal/test_host for portable lifecycle/timing tests.","created_at":"2026-02-05T03:34:28Z"}]}
7070
{"id":"moon_cpal-uao.43","title":"Parity: host/alsa/enumerate.rs","description":"Align ALSA device enumeration behavior with cpal-reference/src/host/alsa/enumerate.rs (native-only).\\n\\nAcceptance:\\n- devices(), default devices, and DeviceId/name semantics match upstream as closely as possible.","notes":"2026-02-05: Improve enumeration parity: ALSA devices now include both libasound hints and /proc hw:/plughw: entries (deduped), and default_{input,output}_device now always returns the default PCM like upstream.","status":"closed","priority":3,"issue_type":"task","owner":"842376130@qq.com","created_at":"2026-02-04T21:39:03.508687+08:00","created_by":"Milky2018","updated_at":"2026-02-05T10:29:06.630858+08:00","closed_at":"2026-02-05T10:17:18.171827+08:00","close_reason":"ALSA devices_utf8 now emits hw/plughw CARD/DEV ids; Host::devices no longer filters by probing; added enumeration test.","dependencies":[{"issue_id":"moon_cpal-uao.43","depends_on_id":"moon_cpal-uao","type":"parent-child","created_at":"2026-02-04T21:39:03.510299+08:00","created_by":"Milky2018"}]}

0 commit comments

Comments
 (0)