Release notes: 2026-05-25 — ph-hw-wp2-li-render-else-fix¶
Status: Ready for review
Repo: li-langverse/lic
PR: (feat/ph-hw-wp2-device-fix-render → feat/ph-hw-multi-vendor)
PH / REQ: PH-HW WP2, PH-UX viewport_fps
Author: agent
Summary (one sentence)¶
li-render and dependent smokes pass lic check by replacing unsupported else: branches with sequential if blocks and float-only FPS accumulation (no float() cast).
Agent continuation (required)¶
- Read:
packages/li-render/src/lib.li,packages/li-scene/src/lib.li,packages/li-render/li-tests/smoke/viewport_fps_counter.li - Run:
./build/compiler/lic/lic check packages/li-render/li-tests/smoke/viewport_fps_counter.liandlic check li-tests/composable/import_render_wgpu_fps.lifromlicrepo root - Then: continue PH-HW WP3
lig.presentintegration onfeat/ph-hw-wp3-presentif host-present path is next - Blocked on: none for parse/check; parser
elsesupport still not implemented incompiler/parser/parser.cpp
Changed (specific)¶
| Area | What | Evidence |
|---|---|---|
packages/li-render/src/lib.li | Removed else:; default-then-if FPS tick; incremental float FPS; raises Alloc + ensures on HUD str procs | lic check packages/li-render/src/lib.li pass |
packages/li-scene/src/lib.li | Same else: → if pattern for tier lookup and draw tick | transitive lic check for render→scene |
packages/li-math/src/lib.li | extern math stubs: bounded ensures (not ensures true on -> float) | E0302 cleared in import graph |
packages/li-ui/src/lib.li | ui_frame_end: ensures frame.frame_id == old(frame.frame_id) | E0302 cleared |
packages/li-render/li-tests/smoke/viewport_fps_counter.li | Field reads instead of by-value helpers (E0311 move) | smoke pass |
Not changed (scope fence)¶
compiler/parser/parser.cpp— still noKwElse/else_bodyparsinglig.present/ WP3 host-present path — not onfeat/ph-hw-multi-vendorbase- LLVM / wgpu native pixel recording — not in this PR
- Benchmarks dashboard rows — not refreshed
Breaking changes¶
None
Security¶
N/A — grammar/typecheck-only; no trusted surface or CVE tests touched.
Performance¶
N/A — FPS math equivalent for uniform dt_ms ticks; no bench CSV update.
Downstream¶
| Repo | Action |
|---|---|
| lip / lit / packages | N/A — in-tree packages/li-render only |