|
| 1 | +# Spec alignment tracker |
| 2 | + |
| 3 | +This document tracks alignment between the upstream Component Model spec/reference (in `ref/component-model`) and this library’s C++ entrypoints. |
| 4 | + |
| 5 | +- Upstream references: |
| 6 | + - `ref/component-model/design/mvp/CanonicalABI.md` |
| 7 | + - `ref/component-model/design/mvp/Concurrency.md` |
| 8 | + - `ref/component-model/design/mvp/canonical-abi/definitions.py` |
| 9 | +- C++ namespace: `cmcpp` |
| 10 | + |
| 11 | +## Canonical built-ins inventory |
| 12 | + |
| 13 | +| Spec built-in | C++ entrypoint | Status | Notes | |
| 14 | +|---|---|---|---| |
| 15 | +| `context.get` | `cmcpp::canon_context_get` | implemented | | |
| 16 | +| `context.set` | `cmcpp::canon_context_set` | implemented | | |
| 17 | +| `backpressure.inc` | `cmcpp::canon_backpressure_inc` | implemented | | |
| 18 | +| `backpressure.dec` | `cmcpp::canon_backpressure_dec` | implemented | | |
| 19 | +| `backpressure.set` | `cmcpp::canon_backpressure_set` | implemented | Spec notes this as deprecated in favor of `backpressure.{inc,dec}`. | |
| 20 | +| `thread.yield` | `cmcpp::canon_thread_yield` | implemented | | |
| 21 | +| `thread.yield-to` | `cmcpp::canon_thread_yield_to` | implemented | | |
| 22 | +| `thread.resume-later` | `cmcpp::canon_thread_resume_later` | implemented | | |
| 23 | +| `thread.index` | `cmcpp::canon_thread_index` | implemented | | |
| 24 | +| `thread.suspend` | `cmcpp::canon_thread_suspend` | implemented | | |
| 25 | +| `task.return` | `cmcpp::canon_task_return` | implemented | | |
| 26 | +| `task.cancel` | `cmcpp::canon_task_cancel` | implemented | | |
| 27 | +| `task.wait` | `cmcpp::canon_task_wait` | implemented | | |
| 28 | +| `waitable-set.new` | `cmcpp::canon_waitable_set_new` | implemented | | |
| 29 | +| `waitable-set.drop` | `cmcpp::canon_waitable_set_drop` | implemented | | |
| 30 | +| `waitable-set.wait` | `cmcpp::canon_waitable_set_wait` | implemented | | |
| 31 | +| `waitable-set.poll` | `cmcpp::canon_waitable_set_poll` | implemented | | |
| 32 | +| `waitable.join` | `cmcpp::canon_waitable_join` | implemented | | |
| 33 | +| `stream.new` | `cmcpp::canon_stream_new` | implemented | | |
| 34 | +| `stream.read` | `cmcpp::canon_stream_read` | implemented | | |
| 35 | +| `stream.write` | `cmcpp::canon_stream_write` | implemented | | |
| 36 | +| `stream.cancel-read` | `cmcpp::canon_stream_cancel_read` | implemented | | |
| 37 | +| `stream.cancel-write` | `cmcpp::canon_stream_cancel_write` | implemented | | |
| 38 | +| `stream.drop-readable` | `cmcpp::canon_stream_drop_readable` | implemented | | |
| 39 | +| `stream.drop-writable` | `cmcpp::canon_stream_drop_writable` | implemented | | |
| 40 | +| `future.new` | `cmcpp::canon_future_new` | implemented | | |
| 41 | +| `future.read` | `cmcpp::canon_future_read` | implemented | | |
| 42 | +| `future.write` | `cmcpp::canon_future_write` | implemented | | |
| 43 | +| `future.cancel-read` | `cmcpp::canon_future_cancel_read` | implemented | | |
| 44 | +| `future.cancel-write` | `cmcpp::canon_future_cancel_write` | implemented | | |
| 45 | +| `future.drop-readable` | `cmcpp::canon_future_drop_readable` | implemented | | |
| 46 | +| `future.drop-writable` | `cmcpp::canon_future_drop_writable` | implemented | | |
| 47 | +| `resource.new` | `cmcpp::canon_resource_new` | implemented | | |
| 48 | +| `resource.rep` | `cmcpp::canon_resource_rep` | implemented | | |
| 49 | +| `resource.drop` | `cmcpp::canon_resource_drop` | implemented | | |
| 50 | +| `error-context.new` | `cmcpp::canon_error_context_new` | implemented | | |
| 51 | +| `error-context.debug-message` | `cmcpp::canon_error_context_debug_message` | implemented | | |
| 52 | +| `error-context.drop` | `cmcpp::canon_error_context_drop` | implemented | | |
| 53 | + |
| 54 | +## Thread built-ins (upstream) |
| 55 | + |
| 56 | +These are referenced by the upstream spec/reference but do not currently have direct C++ canonical built-in entrypoints in this repo: |
| 57 | + |
| 58 | +- `thread.new_ref` / `thread.new-ref` (implemented: `cmcpp::canon_thread_new_ref`) |
| 59 | +- `thread.new-indirect` (implemented: `cmcpp::canon_thread_new_indirect`) |
| 60 | +- `thread.spawn-ref` (implemented: `cmcpp::canon_thread_spawn_ref`) |
| 61 | +- `thread.spawn-indirect` (implemented: `cmcpp::canon_thread_spawn_indirect`) |
| 62 | +- `thread.switch-to` (implemented: `cmcpp::canon_thread_switch_to`) |
| 63 | +- `thread.available-parallelism` (implemented: `cmcpp::canon_thread_available_parallelism`) |
0 commit comments