feat: honor async-backend with epoll/io_uring, fix last RV13 items
Resolves the 4 P3 items in docs/rewrite/notes/review-rv13-codex.md (final-Z16.md): - async-backend now takes effect like Ghostty: ghostty_os::xev ports libxev's backend detection (io_uring, then epoll); global init detects and logs it, the GTK startup applies the config with Zig's messages, and +version reports the real backend. The termio IO loop runs on a new reactor with epoll, io_uring (io-uring crate) and poll(2) (kept for macOS, where libxev uses kqueue). The 21 exec integration tests run under every backend; io_uring was exercised here. - auto-update-channel defaults to the build's release channel. - Windows error names: sharing violation -> AccessDenied, plus ERROR_FILE_EXISTS -> PathAlreadyExists and virus errors -> AntivirusInterference, mirroring std.os.windows.OpenFile's NTSTATUS mapping in Zig 0.15.2 (verified against its source by the orchestrator). - Exact ports of std.fs.path.basenameWindows/basenamePosix for theme name validation (drive, UNC and device roots). Test Plan: - cargo test --workspace --no-fail-fast (3555 passed, exit 0) - just check-macos (both), just check-windows, just check-wasm - +show-config --default --docs vs /usr/bin/ghostty (only the build-specific gtk-opengl-debug line differs)
This commit is contained in:
1 parent
27e241d07b
commit
f9094c8152
18 files changed
+2012
-742
No files matched your search
@@ -204,6 +204,19 @@ fn init_with(opts: InitOptions, default_logging: Logging) -> &'static GlobalStat
|
||||
// SIGPIPE is ignored by the Rust runtime already (it sets SIG_IGN
|
||||
// before main), which is what Zig's `initSignals` does.
|
||||
|
||||
// Setup our Xev backend if we're dynamic
|
||||
if ghostty_os::xev::is_dynamic()
|
||||
&& let Err(err) = ghostty_os::xev::detect()
|
||||
{
|
||||
log::warn!(
|
||||
"failed to detect xev backend, falling back to most compatible backend err={err}"
|
||||
);
|
||||
}
|
||||
log::info!(
|
||||
"libxev default backend={}",
|
||||
ghostty_os::xev::backend().name()
|
||||
);
|
||||
|
||||
// As early as possible, initialize our resource limits.
|
||||
let rlimits = ResourceLimits::init();
|
||||
|
||||
|
||||
Reference in new issue
Block a user