Final fix pass per the stopping criterion (docs/rewrite/PLAN.md), resolving the remaining RV18 build/behaviour items (final-Z21.md): - termio errno access uses the per-target libc accessor (__error on FreeBSD/DragonFly/Apple, __errno on OpenBSD/NetBSD/Android) instead of __errno_location everywhere, unblocking non-Linux BSD builds. - FreeBSD resource discovery follows Zig (site-terminfo, local/share). - Zig's Debug-only resource precedence (and the dev workspace-resources fallback) key off a ghostty_debug_build cfg set from PROFILE=="debug" instead of debug_assertions, so release builds with assertions honor GHOSTTY_RESOURCES_DIR first like Zig ReleaseSafe. - KNOWN_DIFFERENCES.md lists the remaining P3 differences deliberately left unfixed (theme-preview editing details, a cleanup timeout edge case) and what cannot be verified on this machine. - DEVIANT_FIXES.md registers the PTY-hangup output drain (35), the canvas BGRA conversion (36) and the dev resources fallback. Test Plan: - cargo test --workspace --no-fail-fast (exit 0) - cargo check --target x86_64-unknown-freebsd -p ghostty-os
1.2 KiB
1.2 KiB
Z21 final fix pass
- RV18 #1: removed the reachable
debug_assert!(!b)inTerminal::print_grapheme(Zig ReleaseFast ignores it). The panic hunt (difftest_fuzz panics, new Rust-only mode, debug build, ~60k cases) then found a second input-reachable defect: Devanagari conjunct at the right margin on the bottom row (margin wrap scrolls) returnedInvalidCoordinateand left a grapheme flag without data, so the formatter panicked later. Fixed by moving the grapheme from the cell that holds it. 0 panics afterwards; Zig differential 3000 cases, 0 divergences. - RV18 #2-#4: errno accessor per target, FreeBSD resources conventions,
ghostty_debug_buildcfg (newcrates/ghostty-os/build.rs). - FreeBSD check:
cargo check --target x86_64-unknown-freebsd -p ghostty-ospasses (with FREETYPE_NO_PKG_CONFIG=1);-p ghostty-termiois blocked by dear-imgui-sys (no FreeBSD bindings) via ghostty-inspector; theerrno_nowcfg block was compiled alone against libc for FreeBSD and Linux. - Docs: DEVIANT_FIXES.md entry 10 rewritten, entries 35 (PTY hangup drain,
6629fb0) and 36 (canvas BGRA,d89691b), dev resources fallback row (967e3a1); new KNOWN_DIFFERENCES.md. - Side effect: the in-workspace resources fallback is now dev-profile only.