Files
ghostty-rs/docs/rewrite/KNOWN_DIFFERENCES.md
T
ddidderr 4fa55855e8 fix(os,termio): FreeBSD support, dev-profile resource precedence, docs
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
2026-10-12 16:53:27 +02:00

2.3 KiB

Known differences (left by the stopping criterion)

These are known minor differences between the Rust port and Ghostty 1.3.1 found in the final audit (RV18, notes/review-rv18-codex.md). They were recorded, not fixed, because the stopping criterion in PLAN.md does not require chasing P3 items. All are severity P3. Each was verified from source and, where noted, by PTY reproduction.

# Area Rust Zig Observable effect Sev
5 Theme search: word navigation ghostty-cli/src/list_themes/preview.rs:113 has no word-navigation editing upstream list-themes search has word navigation Enter blue red, Alt+B, X: Zig gives blue Xred, Rust blue redX P3
6 Theme search: grapheme backspace preview.rs:100 deletes one Unicode scalar deletes one grapheme e + U+0301 then Backspace: Zig removes both, Rust leaves e P3
7 Theme search: non-ASCII case preview.rs:150 Unicode-lowercases theme names but ASCII-lowercases the query ASCII-only on both sides Query Ä does not match theme Ä in Rust, matches in Zig P3
8 Theme preview: initial colors preview.rs:385 consults COLORFGBG starts light until terminal color reports arrive Without terminal replies, changing COLORFGBG changes Rust's colors only P3
9 Theme preview: load errors preview.rs:440 ignores load_file errors and keeps filtering with the retained config the error propagates and the preview exits A config load error is silently swallowed in Rust P3
10 Subprocess cleanup cap ghostty-termio/src/exec.rs:1348 waits at most about 5 s for the child's new process group keeps waiting If the child is delayed before setsid for longer, Rust returns without sending SIGHUP P3

Not verifiable on this machine

  • Native Apple execution: Metal, IOSurface, CoreText, Apple input APIs, Mach handling and Apple packaging (compile-checked only, just check-macos).
  • Windows ConPTY and Win32 behavior (compile-checked only, just check-windows).
  • Native FreeBSD execution (cross cargo check only, if the target could be added).
  • Live portal / D-Bus integration.
  • Real-browser rendering (wasm is checked with Node only).
  • Native io_uring execution; Swift code was excluded.