Skip to content

v1.9.0

Latest

Choose a tag to compare

@migueldeicaza migueldeicaza released this 13 Jan 14:24
· 8 commits to main since this release

New Features

  • Integrated esctest test suite — Ported and automated the esctest suite (previously Python 2.7-based) to work on modern macOS, improving test coverage and catching regressions

Performance Improvements

  • Major Kitty image scrolling fix — Resolved a significant performance regression introduced with Kitty image support. Scrolling now tracks which lines contain images and only performs expensive operations when necessary

  • Inlined EscapeSequenceParser — Replaced configurable parser with expensive hash table lookups with direct method calls, yielding 1–4% performance improvements on escape sequence processing (#436)

  • Optimized dirty line flagging — Using borrows for buffer operations provides a 4.1% throughput improvement

  • General throughput gains — Combined optimizations deliver up to 58% throughput improvement on VteBench and 20% on raw feeding tests

Bug Fixes

  • Fixed DECSLRM margin handling — scroll(), cmdIndex, and reverseIndex now properly respect left/right margins. This fixes display corruption in applications like tmux when using side-by-side panes (#434)
  • Fixed color parsing — Corrected escape sequence terminator handling to use the current terminator rather than hardcoding to BEL
  • Fixed macOS esctest compatibility — Resolved SIGCHLD signal handling conflict with Swift Subprocess
  • Fixed missing version specification — Package now includes a fixed version so dependents can properly resolve it (#438)

Thread Safety

Eliminated global state in CharSets — Character set data is now local to each Terminal instance, continuing the effort to make Terminals fully thread-safe