Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions Packages/Shared/CmuxGhosttyKit/Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,13 @@ import PackageDescription
// embedder mode committed under the lock and deadlocked against main's
// commit (cmux S4 films with the switch on, STATUS 9732).
//
// Since 7d43bb68b..6cc749a8a (release/cmux-9ce9b7d0-e2, fork PRs #72, #73 and #75):
// the host-frame present's lock-span rule in ghostty.h (#72), each surface's
// thread wakes counted by source in ghostty_surface_render_counters (#73), and,
// with the embedder presenting host sizes, a frame kept for its present that
// the layer cannot show in its bounds wakes no main-queue block (#75; cmux
// FRAME OWNER S4's held-key cost: one main wake per moving terminal and frame).
//
// A pin change is one reviewed commit that changes the URL and the checksum
// together (the zip's sha256, also in the release's SHA256SUMS). Never pin
// a7c40619a or 3e9dfca98 (apple-v6 without the lib prefix on the macOS
Expand All @@ -134,8 +141,8 @@ let package = Package(
),
.binaryTarget(
name: "GhosttyNextKit",
url: "https://github.com/manaflow-ai/ghostty-next/releases/download/xcframework-7d43bb68b05e1bad433267fe28cd7205041fc4f5-apple-v6/GhosttyNextKit.xcframework.zip",
checksum: "12f7ac05eec4a0e0a47daef29545cdaba102e4b02ecafcc825d898ff71f4be2f"
url: "https://github.com/manaflow-ai/ghostty-next/releases/download/xcframework-6cc749a8a53b1d62465e0faf848e430a82f690aa-apple-v6/GhosttyNextKit.xcframework.zip",
checksum: "018d2bdb8b7f26c9e97ff6732b4e80e52f24ca3086e456efe0fb6d8aa38f4a40"
),
]
)
4 changes: 2 additions & 2 deletions cmux-tui/dist/notices/package-notices.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
},
"libghostty_vt": {
"source": "ghostty-next",
"commit": "7d43bb68b05e1bad433267fe28cd7205041fc4f5",
"license_tree": "collect-ghostty-licenses.py tree of the cmux-next source archive dry run 37315600598 (3320bd06e; 2199dc93e changes only src/renderer/Thread.zig 3339f2ada only src/terminal (OSC 7501), CI files and NEXT.md, and 673a6369c only src/build (libSystem override), src/terminal and src/terminfo (Pst), c41410256 only src/, include/ghostty.h and CI files (link filter), 89dc50175 only src/config/c_get.zig (TerminalColor getter), 03ddb2869 only src/renderer and NEXT.md (glass minimum contrast), 4792f0307 only src/renderer and NEXT.md (minimum contrast at opacity 0), 48d353b8c only src/renderer, src/apprt/embedded.zig, include/ghostty.h and NEXT.md (host-sized target), c5926d664 only src/renderer, src/Surface.zig, src/apprt/embedded.zig, include/ghostty.h and NEXT.md (reflow preview), e4831af81 only src/renderer, src/termio/Termio.zig, src/Surface.zig, src/apprt/embedded.zig, include/ghostty.h and NEXT.md (GPU theme color blend), e6a27a1fb the same paths (no cell rebuild for a color-only change), a19c884fa only pkg/macos/iosurface/iosurface.zig (deinit keeps pixels other owners hold; no license file or dependency change), and 36ce68b13 and ced99dcde only src/renderer, src/termio/Termio.zig, src/apprt/embedded.zig, include/ghostty.h and NEXT.md (one rebuild per font change), and e923d79f1 only src/Surface.zig, src/termio and NEXT.md (CSI 996 runtime color scheme), and 839e702fe through a04c57e81 only src/terminal/formatter.zig, src/termio/Termio.zig, src/Surface.zig and NEXT.md (DECSC in VT output, viewport across snapshot restores), and 43ffe4171 only src/terminal and the CI workflow (narrowed multi-line prompt redraw), and 493a8871b and 5555f4220 only src/terminal/c, include/ghostty/vt, src/shell-integration, the CI workflow and NEXT.md (prompt redraw option and marks), and 72578da21 only src/shell-integration/bash (no bash forks) and a85741ad3 through 7d5fa1573 only src/renderer, src/termio/Termio.zig, src/apprt/embedded.zig, include/ghostty.h, the CI workflow and NEXT.md (host-sized resize frames, mirror pixel-only resize, idle wakes), and dadbd13db through 1f98b11be only src/renderer, src/termio/Termio.zig, src/Surface.zig, src/apprt/embedded.zig, include/ghostty.h, the CI workflow and NEXT.md (host-size present API, review fixes, reveal present), and 856edfe through 723c4ab only src/renderer, src/termio, src/terminal (kitty), src/Surface.zig, src/apprt, include/ghostty.h, include/ghostty/vt and NEXT.md (wheel scroll off the main-thread lock, fit grid, kitty ports), and 0cb7e1e04 through 9ce9b7d08 only src/renderer, src/apprt/embedded.zig, include/ghostty.h, src/shell-integration/bash and NEXT.md (host-size frame present, bash history without a fork, iOS display link), and 19ab1cbcb through 34e73ba8b only src/terminal (Screen.zig, Terminal.zig, formatter.zig), the CI workflow and next/release_plan.py (scroll region wrap edges, formatter blank carry, release/* publish), and 5410e5d44 and dfd07de4a only src/Surface.zig, src/renderer/link.zig, the new src/input/link_regex.zig and NEXT.md (one compiled link regex per pattern), and 30b8490a1 through 635c6c12a only src/renderer, src/renderer.zig, src/apprt, include/ghostty.h and NEXT.md (embedder host present), and b0c7e291a through 7d43bb68b only src/renderer/metal/IOSurfaceLayer.zig, include/ghostty.h and NEXT.md (off-main commit outside the Core Animation lock), so LICENSE, build.zig.zon and vendor/ are identical and pkg/ has no license change)",
"commit": "6cc749a8a53b1d62465e0faf848e430a82f690aa",
"license_tree": "collect-ghostty-licenses.py tree of the cmux-next source archive dry run 37315600598 (3320bd06e; 2199dc93e changes only src/renderer/Thread.zig 3339f2ada only src/terminal (OSC 7501), CI files and NEXT.md, and 673a6369c only src/build (libSystem override), src/terminal and src/terminfo (Pst), c41410256 only src/, include/ghostty.h and CI files (link filter), 89dc50175 only src/config/c_get.zig (TerminalColor getter), 03ddb2869 only src/renderer and NEXT.md (glass minimum contrast), 4792f0307 only src/renderer and NEXT.md (minimum contrast at opacity 0), 48d353b8c only src/renderer, src/apprt/embedded.zig, include/ghostty.h and NEXT.md (host-sized target), c5926d664 only src/renderer, src/Surface.zig, src/apprt/embedded.zig, include/ghostty.h and NEXT.md (reflow preview), e4831af81 only src/renderer, src/termio/Termio.zig, src/Surface.zig, src/apprt/embedded.zig, include/ghostty.h and NEXT.md (GPU theme color blend), e6a27a1fb the same paths (no cell rebuild for a color-only change), a19c884fa only pkg/macos/iosurface/iosurface.zig (deinit keeps pixels other owners hold; no license file or dependency change), and 36ce68b13 and ced99dcde only src/renderer, src/termio/Termio.zig, src/apprt/embedded.zig, include/ghostty.h and NEXT.md (one rebuild per font change), and e923d79f1 only src/Surface.zig, src/termio and NEXT.md (CSI 996 runtime color scheme), and 839e702fe through a04c57e81 only src/terminal/formatter.zig, src/termio/Termio.zig, src/Surface.zig and NEXT.md (DECSC in VT output, viewport across snapshot restores), and 43ffe4171 only src/terminal and the CI workflow (narrowed multi-line prompt redraw), and 493a8871b and 5555f4220 only src/terminal/c, include/ghostty/vt, src/shell-integration, the CI workflow and NEXT.md (prompt redraw option and marks), and 72578da21 only src/shell-integration/bash (no bash forks) and a85741ad3 through 7d5fa1573 only src/renderer, src/termio/Termio.zig, src/apprt/embedded.zig, include/ghostty.h, the CI workflow and NEXT.md (host-sized resize frames, mirror pixel-only resize, idle wakes), and dadbd13db through 1f98b11be only src/renderer, src/termio/Termio.zig, src/Surface.zig, src/apprt/embedded.zig, include/ghostty.h, the CI workflow and NEXT.md (host-size present API, review fixes, reveal present), and 856edfe through 723c4ab only src/renderer, src/termio, src/terminal (kitty), src/Surface.zig, src/apprt, include/ghostty.h, include/ghostty/vt and NEXT.md (wheel scroll off the main-thread lock, fit grid, kitty ports), and 0cb7e1e04 through 9ce9b7d08 only src/renderer, src/apprt/embedded.zig, include/ghostty.h, src/shell-integration/bash and NEXT.md (host-size frame present, bash history without a fork, iOS display link), and 19ab1cbcb through 34e73ba8b only src/terminal (Screen.zig, Terminal.zig, formatter.zig), the CI workflow and next/release_plan.py (scroll region wrap edges, formatter blank carry, release/* publish), and 5410e5d44 and dfd07de4a only src/Surface.zig, src/renderer/link.zig, the new src/input/link_regex.zig and NEXT.md (one compiled link regex per pattern), and 30b8490a1 through 635c6c12a only src/renderer, src/renderer.zig, src/apprt, include/ghostty.h and NEXT.md (embedder host present), and b0c7e291a through 7d43bb68b only src/renderer/metal/IOSurfaceLayer.zig, include/ghostty.h and NEXT.md (off-main commit outside the Core Animation lock), and db8627d95 through 6cc749a8a only src/renderer, src/termio/Thread.zig, src/apprt/embedded.zig, include/ghostty.h and NEXT.md (host-frame lock-span docs, thread wake counters, no main-queue present for a kept embedder frame), so LICENSE, build.zig.zon and vendor/ are identical and pkg/ has no license change)",
"owners": {
"ghostty-next": {
"name": "Ghostty",
Expand Down
12 changes: 8 additions & 4 deletions docs/ghostty-fork.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,21 @@ When we change the fork, update this document and the parent submodule SHA.

### The embedder presents a new host size with its bounds (ghostty-next)

- Fork release branch `release/cmux-9ce9b7d0-e2` at the merge commit `7d43bb68b` (fork PR #71, on `635c6c12a` = fork
PR #70 on `dfd07de4a`, the earlier pin `34e73ba8b` plus fork PR #69). GhosttyNextKit
`xcframework-7d43bb68b05e1bad433267fe28cd7205041fc4f5-apple-v6` (zip sha256 `12f7ac05...4be2f`, run 41705275916).
- Fork release branch `release/cmux-9ce9b7d0-e2` at the merge commit `6cc749a8a` (fork PR #75, on `bd7ff2687` = fork
PRs #72 and #73 on `7d43bb68b`, fork PR #71 on `635c6c12a` = fork PR #70 on `dfd07de4a`, the earlier pin
`34e73ba8b` plus fork PR #69). GhosttyNextKit `xcframework-6cc749a8a53b1d62465e0faf848e430a82f690aa-apple-v6` (zip sha256
`018d2bdb...f4a40`, run 41922548637).
- What: opt-in on macOS host-sized surfaces, `ghostty_surface_set_host_present(surface, GHOSTTY_HOST_PRESENT_EMBEDDER)`.
The renderer still draws each new host size at once with cells rebuilt for it, but never shows a frame of another
size than the shown one itself. A new size asks for no display pass, and a display pass never waits.
`ghostty_surface_host_frame(surface, present)` answers NONE, HIDDEN, SHOWN, READY, PRESENTED, PENDING or HELD. With
`present`, a READY frame becomes the layer's contents in the caller's Core Animation transaction, ordered by the
present sequence. From the mode's start, and after the main thread changes the shown size, frames go through the
main thread until `ghostty_surface_host_frame_committed`. An off-main present never commits while it holds the
CA lock (fork PR #71: #70 committed under the lock and deadlocked against main's commit).
CA lock (fork PR #71: #70 committed under the lock and deadlocked against main's commit). A frame kept for the
embedder's present that the layer cannot show in its bounds goes to no main-queue block (fork PR #75: it was
dropped on main, one main wake per moving terminal and frame); the skip is decided under the CA lock and then
the fresh-frame mutex, only while the kept frame is still that frame.
- Why: cmux FRAME OWNER REFACTOR stage S4 (ready-or-keep). In every commit a terminal's bounds and pixels change
together, or both keep their last size. Before, a new-size frame landed in the old bounds 2-4 refreshes after the
geometry. The waiting present (G1) cost main 4-9 ms per drag frame.
Expand Down
2 changes: 1 addition & 1 deletion scripts/cmux-next/notices/vt-link-graph.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"commit": "7d43bb68b05e1bad433267fe28cd7205041fc4f5",
"commit": "6cc749a8a53b1d62465e0faf848e430a82f690aa",
"dwarfdump": "Ubuntu LLVM version 18.1.3",
"flags": [
"-Demit-lib-vt=true",
Expand Down
Loading