Description
- Build fails with
Error [4018] ×5 — coming from the pinned dependency mizchi/image@0.4.2 (its assert_eq calls require Debug on ColorType under the current moon core; mizchi/image@0.4.3 fixes it).
- After working around the build issue, the app exits on startup — the window never appears. The wgpu swapchain fails to integrate with KWin's explicit sync (
wp_linux_drm_syncobj), causing a Wayland protocol error (EPROTO).
Steps to reproduce
Environment: Arch Linux · moon 0.1.20260731 · KDE Plasma / Wayland · NVIDIA GT 730 + AMD Cezanne (Vega) hybrid GPU (wgpu via Vulkan)
Minimal repro repo (standalone, does not depend on the MoUI repo):
https://github.com/conglinyizhi/moui-minimal-repro
git clone https://github.com/conglinyizhi/moui-minimal-repro
cd moui-minimal-repro
make verify1 # Issue 1: build fails with [4018] ×5
make verify2 # Issue 2: exits on startup (explicit sync)
The Makefile bakes in the required environment (MOON_CC=clang, C_INCLUDE_PATH for freetype/harfbuzz) and tag switching. Two tags: bug1-build-fail (clean state, depends only on moui@0.1.7) and bug2-start-crash (with workaround applied). The app itself is the official counter example (26 lines).
Expected behavior
- The stable release
moui@0.1.7 should build out of the box on Linux (pinned dependencies compatible with the current moon toolchain).
- After building, the minimal app should open a native window and render.
Actual behavior
Issue 1 (build):
Error: [4018]
.mooncakes/mizchi/image/src/types.mbt:199:3
assert_eq(color_type_from_png(0), Grayscale)
Type ColorType does not implement trait @moonbitlang/core/debug.Debug: no `impl` is defined
(same error ×5, lines 199–203)
Failed with 0 warnings, 5 errors.
Error: failed to run build for target Native
Issue 2 (runtime, after applying the workaround):
wp_linux_drm_syncobj_surface_v1#20: error 4: explicit sync is used, but no acquire point is set
Wayland dispatch pending failed: errno=71 error=71
The process exits within 1–2 seconds; the window never appears.
Platform
Linux
Renderer
Native WGPU (diagnostic)
MoonBit toolchain version
moon 0.1.20260731 (81b634d 2026-07-31)
moon info (if API-surface related)
Relevant example
examples/counter/app (26-line copy; reproduces only as a standalone project against moui@0.1.7 — NOT inside the MoUI workspace, which vendors the fixed third_party/mizchi_image and bumps wgpu_mbt to 0.14.8; repro: https://github.com/conglinyizhi/moui-minimal-repro, make verify1 / make verify2)
Additional context
Neither issue reproduces on main:
- Issue 1: main's workspace vendors third_party/mizchi_image (with derive(Eq, Debug) added in types.mbt), so its builds use the fixed local copy and never hit the error. However moui/moon.mod still declares mizchi/image@0.4.2, and the published 0.1.7 pins the unfixed upstream version — the release does not match main.
- Issue 2: main already bumped wgpu_mbt from 0.14.3 to 0.14.8 (verified: main's window opens, no explicit sync error) — fixed on main, only the 0.1.7 release is affected.
In essence: the dependency pins of the 0.1.7 release lag behind main, making the stable Linux release unusable.
Linking also requires manually adding -lfreetype -lfontconfig -lharfbuzz for the linux wgpu backend (not configured in the package; already baked into the repro Makefile).
Environment details (for reproducing the explicit sync issue):
- OS: Arch Linux, kernel 7.1.5-arch1-2
- Desktop: KDE Plasma 6.7.3 (kwin 6.7.3, plasma-desktop 6.7.3), Wayland 1.25.0
- GPU/driver actually used by wgpu: vulkaninfo reports deviceName AMD Radeon Graphics (RADV RENOIR), driverName radv, driverVersion 26.1.6, apiVersion 1.4.354 (machine also has an NVIDIA GT 730, but this path uses the AMD RADV device)
- Dependency-resolution evidence: moon info linux_wgpu in the repro prints "Using cached mizchi/image@0.4.2" and then fails with the same [4018] — confirming the release pins the unfixed version
Optional follow-ups (main branch, separate from the two issues above):
- The window submodule pin in the MoUI repo was invalidated by an upstream force-push (fresh --recursive clones fail to fetch it).
- output_listener / flush_wayland_display are missing in window's native_wayland.c (Wayland builds fail to compile).
- Dragging a window on main crashes with a scissor-rect out-of-bounds error: Scissor Rect { x:0, y:0, w:520, h:362 } is not contained in the render target (520, 360, 1).
Happy to file these separately if useful.
Description
Error [4018] ×5— coming from the pinned dependencymizchi/image@0.4.2(itsassert_eqcalls requireDebugonColorTypeunder the current moon core;mizchi/image@0.4.3fixes it).wp_linux_drm_syncobj), causing a Wayland protocol error (EPROTO).Steps to reproduce
Environment: Arch Linux · moon 0.1.20260731 · KDE Plasma / Wayland · NVIDIA GT 730 + AMD Cezanne (Vega) hybrid GPU (wgpu via Vulkan)
Minimal repro repo (standalone, does not depend on the MoUI repo):
The Makefile bakes in the required environment (
MOON_CC=clang,C_INCLUDE_PATHfor freetype/harfbuzz) and tag switching. Two tags:bug1-build-fail(clean state, depends only onmoui@0.1.7) andbug2-start-crash(with workaround applied). The app itself is the official counter example (26 lines).Expected behavior
moui@0.1.7should build out of the box on Linux (pinned dependencies compatible with the current moon toolchain).Actual behavior
Issue 1 (build):
Issue 2 (runtime, after applying the workaround):
The process exits within 1–2 seconds; the window never appears.
Platform
Linux
Renderer
Native WGPU (diagnostic)
MoonBit toolchain version
moon 0.1.20260731 (81b634d 2026-07-31)
moon info (if API-surface related)
Relevant example
examples/counter/app (26-line copy; reproduces only as a standalone project against moui@0.1.7 — NOT inside the MoUI workspace, which vendors the fixed third_party/mizchi_image and bumps wgpu_mbt to 0.14.8; repro: https://github.com/conglinyizhi/moui-minimal-repro,
make verify1/make verify2)Additional context
Neither issue reproduces on main:
In essence: the dependency pins of the 0.1.7 release lag behind main, making the stable Linux release unusable.
Linking also requires manually adding -lfreetype -lfontconfig -lharfbuzz for the linux wgpu backend (not configured in the package; already baked into the repro Makefile).
Environment details (for reproducing the explicit sync issue):
Optional follow-ups (main branch, separate from the two issues above):
Happy to file these separately if useful.