Skip to content

Bump libghostty and use upstream color parser#514

Merged
emil-e merged 2 commits into
dakra:mainfrom
emil-e:emil-e/libghostty-bump
Jul 7, 2026
Merged

Bump libghostty and use upstream color parser#514
emil-e merged 2 commits into
dakra:mainfrom
emil-e:emil-e/libghostty-bump

Conversation

@emil-e

@emil-e emil-e commented Jul 7, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Bump the pinned ghostty-org/ghostty dependency from 07d3166 to c41c6b8.
  • Handle upstream's new print_slice stream action in the comint filter so printable text is not dropped.
  • Replace ghostel's local #RRGGBB parser with gt.color.RGB.parse where possible.

Verification

  • zig build --prefix .
  • zig build --prefix . -Doptimize=ReleaseFast
  • bench/run-bench.sh --no-vterm --no-eat --no-term
  • 5 interleaved longer A/B runs of backend/plain/native with --min-duration 3

Benchmark summary

Compared against 4c6351f (parent before this branch's two commits). Both sides were rebuilt with zig build --prefix . -Doptimize=ReleaseFast.

Section Geomean speedup Change
e2e 1.66x +65.8%
backend 1.04x +4.0%
stream 1.55x +54.8%
tui-frame 1.48x +48.2%
tui-partial 1.03x +3.2%
engine 2.53x +153.2%
overall 1.60x +60.0%

Selected results:

Scenario Before ms After ms Speedup
e2e/plain/ghostel 9.70 4.56 2.13x
e2e/urls/ghostel 18.29 14.13 1.29x
stream/ghostel-incr 14.88 9.38 1.59x
engine/plain/ghostel-incr/24x80 6.47 1.38 4.68x
engine/unicode/ghostel-incr/24x80 4.81 1.54 3.12x

The one reproducible regression is isolated to native PTY plain output:

Metric (backend/plain/native) Before After Change
Mean over 5 longer interleaved runs 17.25 ms 19.24 ms 0.90x (-10.3%)
Median 17.33 ms 19.31 ms 0.90x (-10.2%)
Stddev 0.15 ms 0.17 ms

This likely indicates the faster VT engine has moved the bottleneck to the native PTY read/event-notification path: plain parsing no longer provides as much incidental batching before WouldBlock, so the reader may notify/redraw more often. Parser-only and stream-only paths show large wins, so this does not look like a raw VT parsing regression.

@emil-e
emil-e merged commit a1a54b4 into dakra:main Jul 7, 2026
41 of 42 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant