diff options
| author | Adam Malczewski <[email protected]> | 2026-06-12 19:11:59 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-06-12 19:11:59 +0900 |
| commit | a21f705692595ea711a736e2ae9c256c1dde7b1e (patch) | |
| tree | 2cb3e6380e65f9b584a1dea1cd43e1a127a4f56d /packages/kernel/kernel.md | |
| parent | 6f45dc177540d6c6ae7596427209091d4c7adc20 (diff) | |
| download | unbox-a21f705692595ea711a736e2ae9c256c1dde7b1e.tar.gz unbox-a21f705692595ea711a736e2ae9c256c1dde7b1e.zip | |
Slice 1: Meson skeleton — kernel links wlroots 0.20 from C++, RMLUi 6.2 vendored
Root meson.build (C++23, WLR_USE_UNSTABLE, ccache-detected) with RMLUi 6.2
as a wrap-file tarball built through the cmake module (no git submodules —
settled decision) and doctest 2.5.2 from wrapdb. kernel unit: extern-"C"
wlr.hpp wrapper (with the C99 [static N] array-param workaround documented
in kernel.md), slice-1 probe contract, doctest suite (1/1 green). host-bin:
composition root printing versions, exit 0. tasks.md slice 1 done.
Diffstat (limited to 'packages/kernel/kernel.md')
| -rw-r--r-- | packages/kernel/kernel.md | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/packages/kernel/kernel.md b/packages/kernel/kernel.md new file mode 100644 index 0000000..e2ee684 --- /dev/null +++ b/packages/kernel/kernel.md @@ -0,0 +1,19 @@ +# kernel — package notes + +Slice-1 state: a probe surface (`kernel.hpp`) proving C++ ↔ wlroots ↔ RMLUi +compile/link. Real contracts (extension host, bus, scene/seat glue, ui +substrate) land from slice 2. + +Gotchas the headers can't express: + +- **`wlr.hpp` blanks `static` around the wlr includes.** wlroots headers + use C99 array-parameter syntax (`float color[static 4]`), invalid in + C++. With `static` blanked, `static inline` helpers become `inline` + (ODR-merged, safe). Cost: a function-local `static` inside a header + inline would silently lose persistence — none exist in our include set; + re-audit when ADDING includes to the wrapper. +- **RMLUi is kernel-private.** `rmlui_dep` is deliberately absent from + `kernel_dep` propagation (see meson.build): extensions contribute RML + documents + data bindings via the ui substrate, never RMLUi API calls. + Do not "fix" a missing-RMLUi-header error downstream by propagating it. +- Everything runs on the single `wl_event_loop` thread. |
