summaryrefslogtreecommitdiffhomepage
path: root/packages/kernel/kernel.md
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-06-12 19:11:59 +0900
committerAdam Malczewski <[email protected]>2026-06-12 19:11:59 +0900
commita21f705692595ea711a736e2ae9c256c1dde7b1e (patch)
tree2cb3e6380e65f9b584a1dea1cd43e1a127a4f56d /packages/kernel/kernel.md
parent6f45dc177540d6c6ae7596427209091d4c7adc20 (diff)
downloadunbox-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.md19
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.