What happened
The counter UI text didnt react to state changes on Linux/GTK4
What you expected
The app should work as same as the example
Minimal reproduction
import { App, VStack, Text, Button, State } from "perry/ui";
const count = State(0);
App({
title: "Counter",
width: 400,
height: 300,
body: VStack(16, [
Text(`Count: ${count.value}`),
Button("Increment", () => {
count.set(count.value + 1);
console.log("clicked", count.value);
}),
]),
});
Command you ran:
Environment
- Perry version: perry 0.5.891
- Host OS: ArchLinux x86_64
- Target: native
- Installed via: bun
Diagnostic output
Perry Doctor
Environment Checks
──────────────────
[OK] perry version: 0.5.891
[OK] update status: up to date
[OK] clang (LLVM codegen): clang version 22.1.5
[OK] system linker (cc): cc (GCC) 16.1.1 20260430
[OK] runtime library: /home//.bun/install/global/node_modules/@perryts/perry-linux-x64/lib/libperry_runtime.a
[OK] project config (perry.toml): found
All checks passed!
console output
Collecting modules...
Found 1 module(s): 1 native, 0 JavaScript
Generating code...
Wrote object file: main_ts.o
Linking (runtime-only)...
[strip-dedup] Processing: /home/<username>/.bun/install/global/node_modules/@perryts/perry-linux-x64/lib/libperry_ui_gtk4.a
[strip-dedup] llvm-ar found: /home/<username>/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/llvm-ar
[strip-dedup] libperry_ui_gtk4.a: 466 total members
[strip-dedup] libperry_stdlib.a found: /home/<username>/.bun/install/global/node_modules/@perryts/perry-linux-x64/lib/libperry_stdlib.a — 1076 members loaded
[strip-dedup] libperry_runtime.a found: /home/<username>/.bun/install/global/node_modules/@perryts/perry-linux-x64/lib/libperry_runtime.a — 17 members loaded
[strip-dedup] Total exclude set: 1093 members from stdlib+runtime .lib files
[strip-dedup] rlib NOT found: /home/<username>/.bun/install/global/node_modules/@perryts/perry-linux-x64/lib/libperry_ui_gtk4.rlib
[strip-dedup] libperry_stdlib.a symbols loaded: 119672
[strip-dedup] libperry_runtime.a symbols loaded: 4534
[strip-dedup] libperry_ui_gtk4.a: keeping 114 of 466 members (excluded: 87 by symbol-subset, 265 by name pattern)
[strip-dedup] Building trimmed libperry_ui_gtk4.a: 114 objects total
[strip-dedup] OK: /home/<username>/.bun/install/global/node_modules/@perryts/perry-linux-x64/lib/libperry_ui_gtk4.a -> /tmp/perry_strip_81161/_libperry_ui_gtk4.a_trimmed.lib
Linking perry/ui (native UI) from /tmp/perry_strip_81161/_libperry_ui_gtk4.a_trimmed.lib
Wrote executable: my-app
Binary size: 3.1MB
Running my-app...
(my-app:81368): Gdk-WARNING **: 19:08:46.728: vkAcquireNextImageKHR(): A surface has changed in such a way that it is no longer compatible with the swapchain. (VK_ERROR_OUT_OF_DATE_KHR) (-1000001004)
clicked 1
clicked 2
clicked 3
clicked 4
clicked 5
clicked 6
clicked 7
clicked 8
But the text label kept showing "Count: 0"
Anything else
also occur in other UI examples (Slider,Option,etc...)
What happened
The counter UI text didnt react to state changes on Linux/GTK4
What you expected
The app should work as same as the example
Minimal reproduction
Command you ran:
Environment
Diagnostic output
Perry Doctor
Environment Checks
──────────────────
[OK] perry version: 0.5.891
[OK] update status: up to date
[OK] clang (LLVM codegen): clang version 22.1.5
[OK] system linker (cc): cc (GCC) 16.1.1 20260430
[OK] runtime library: /home//.bun/install/global/node_modules/@perryts/perry-linux-x64/lib/libperry_runtime.a
[OK] project config (perry.toml): found
All checks passed!
console output
But the text label kept showing "Count: 0"
Anything else
also occur in other UI examples (Slider,Option,etc...)