Commit Graph

34 Commits

Author SHA1 Message Date
Chris Marchesi
e8525c0fd9 Update to Zig 0.16.0
This commit represents the majority of the work necessary to upgrade
Ghostty to use Zig 0.16.0.

Key parts:

* In addition to its previous responsibilities, the global state now
  houses state for global I/O implementations and the process
  environment. It is now also utilized in the main application along
  with the C library. Where necessary, global state is isolated from key
  parts of the implementation (e.g., in libghostty subsystems), and it's
  expected that this list will grow.

* We currently manage our own C translation layer where necessary. In
  these cases, cImport has been removed in favor of the new external
  translate-c package. Due to fixes that have needed be made to properly
  translate the dependencies that were swapped out, as mentioned, we
  have had to backport fixes from the current translate-c package (and
  the upstream Arocc dependency). We will host this ourselves until Zig
  0.17.0 is released with these fixes.

* Where necessary (only a small number of cases), some stdlib code from
  0.15.2 (and even from 0.17.0) has been taken, adopted, and vendored in
  lib/compat.

Co-authored-by: Leah Amelia Chen <hi@pluie.me>
2026-07-21 12:35:05 -07:00
Jacob Sandlund
f53e4b43c4 Merge remote-tracking branch 'upstream/main' into grapheme-width-changes 2026-02-23 08:39:10 -05:00
Jacob Sandlund
e06ac6d33e Force prepend to use wcwidth_standalone 2026-02-20 12:12:26 -05:00
Jacob Sandlund
d240a194e1 Merge branch 'grapheme-break' into grapheme-width-changes 2025-11-24 11:51:08 -05:00
Jacob Sandlund
e52f0d233f Merge remote-tracking branch 'upstream/main' into grapheme-break 2025-11-24 11:44:47 -05:00
Jacob Sandlund
a67cfb4232 Merge branch 'grapheme-break' into grapheme-width-changes 2025-11-24 09:15:25 -05:00
Jacob Sandlund
eb9f384f87 Merge branch 'uucode-update' into grapheme-break 2025-11-24 09:15:13 -05:00
Jacob Sandlund
b58656be8a Merge branch 'uucode-update' into vs-correctness 2025-11-24 09:14:32 -05:00
Jacob Sandlund
61c7381452 Update comment. PR for wcwidth_standalone might be a bit 2025-11-24 09:14:03 -05:00
Jacob Sandlund
6afdf3400e unicode: change cell to wide when grapheme width changes 2025-11-24 04:47:23 -05:00
Jacob Sandlund
c3d8951bdb Merge branch 'uucode-update' into grapheme-break 2025-11-23 22:56:25 -05:00
Jacob Sandlund
55c1cb3aad Merge branch 'uucode-update' into vs-correctness 2025-11-23 22:56:15 -05:00
Jacob Sandlund
62ec34072f fix typo 2025-11-23 22:56:00 -05:00
Jacob Sandlund
36c3295806 unicode: don't narrow invalid text presentation (VS15) sequences 2025-11-23 22:39:21 -05:00
Jacob Sandlund
97aff0743e unicode: switch to uucode grapheme break to match unicode 16 spec 2025-11-23 22:33:01 -05:00
Jacob Sandlund
97926ca307 Update uucode to the latest, for future width and grapheme break changes 2025-11-23 17:26:25 -05:00
Mitchell Hashimoto
3d58dc51c9 terminal: keypad variation sequences should respect VS16
This fixes the VS16 issues found in this test:
https://ucs-detect.readthedocs.io/sw_results/ghostty.html#ghostty
This is also a more robust way to handle VS15/16 in general. 

This commit also changes our propeties to be a packed struct which
reduces its size from 4 bytes to 1 and likewise drops our unicode table
size 4x.
2025-11-06 07:05:57 -08:00
Mitchell Hashimoto
631c58a302 unicode: update uucode, force emoji modifiers width 2 as standalone
This updates uucode. As part of this, the wcwidth implementation was
updated (in uucode) to make emoji modifiers width ZERO. But if they're
standalone, we want them as width 2.

So this also contains a change to force them as width 2 for our width
calculation. This only matters for standalone emoji modifiers, because
when they form a valid grapheme we don't use this width calculation.
2025-11-05 14:57:48 -08:00
Daniel Wennberg
14b441be1e renderer: Include arrows block in constrained symbols (#9189)
Fixes #8693 

**Before**
<img width="164" height="47" alt="Screenshot 2025-10-13 at 14 00 28"
src="https://github.com/user-attachments/assets/df42df51-7706-4285-8c91-d79e227999ed"
/>

**After**
<img width="164" height="47" alt="Screenshot 2025-10-13 at 14 01 14"
src="https://github.com/user-attachments/assets/c1ca314e-a2ad-47b2-9bcf-d4200db173f5"
/>

The effect is somewhat subtle with my combination of fonts. See #8693
for the more egregious examples that this fixes.
2025-10-13 14:10:29 -07:00
Jacob Sandlund
8bcab93c21 separate out runtime and buildtime uucode tables 2025-09-24 08:34:21 -04:00
Jacob Sandlund
cf3b514efc pr feedback: get, remove todos for case_folding_simple 2025-09-19 01:24:13 -04:00
Jacob Sandlund
83f387d735 default log level 2025-09-18 14:21:39 -04:00
Jacob Sandlund
69594119c3 fix up diff from benchmarks, and add tests against ziglyph 2025-09-18 11:46:05 -04:00
Jacob Sandlund
3275903611 update uucode and cleanups 2025-09-18 09:26:09 -04:00
Jacob Sandlund
4d37853f6c benchmark sources 2025-09-11 10:30:01 -04:00
Jacob Sandlund
b0db51c45e fast getX(.is_symbol) 2025-09-06 15:01:29 -04:00
Jacob Sandlund
2af08bdbe3 trying a bunch of things to get performance to match 2025-09-06 10:42:02 -04:00
Jacob Sandlund
0444c614da update for new grapheme_break 2025-08-21 22:29:34 -04:00
Jacob Sandlund
8f0785e90a is_emoji_presentation 2025-08-17 21:33:37 -04:00
Jacob Sandlund
e84d8535f5 removing all ziglyph imports (aside from unicode/grapheme.zig) 2025-08-17 21:24:27 -04:00
Jacob Sandlund
341137ce2e case folding 2025-08-13 09:56:05 -04:00
Jacob Sandlund
f5a036a6a0 update after refactor (string field config, etc) 2025-08-12 09:43:12 -04:00
Jacob Sandlund
7e429d73d6 block 2025-08-06 00:06:27 -04:00
Jacob Sandlund
0c393299b0 using just get 2025-08-05 23:59:30 -04:00