Mitchell Hashimoto
93436217c8
terminal: page.exactRowCapacity
2026-01-19 09:16:49 -08:00
rezky_nightky
bf73f75304
chore: fixed some typo
...
Author: rezky_nightky <with dot rezky at gmail dot com>
Repository: ghostty
Branch: main
Signing: GPG (4B65AAC2)
HashAlgo: BLAKE3
[ Block Metadata ]
BlockHash: c37f4ee817412728a8058ba6087f5ca6aaff5a845560447d595d8055972d0eac
PrevHash: 3510917a780936278debe21786b7bae3a2162cb3857957314c3b8702e921b3d4
PatchHash: 5e5bb4ab35df304ea13c3d297c6d9a965156052c82bccf852b1f00b7bcaa7dd4
FilesChanged: 18
Lines: +92 / -92
Timestamp: 2025-12-25T17:27:08Z
Signature1: c1970dbb94600d1e24dfe8efcc00f001664db7b777902df9632a689b1d9d1498
Signature2: 30babb1e3ca07264931e067bfe36c676fb7988c2e06f8c54e0c9538fe7c7fc9a
2025-12-26 00:27:08 +07:00
Mitchell Hashimoto
dbfc3eb679
Remove unused imports
2025-11-27 13:37:53 -08:00
Qwerasd
d14b4cf068
perf: streamline RefCountedSet lookup
...
+ add branch hint to insert
2025-11-18 20:46:00 -07:00
Qwerasd
3e8d94bb1c
perf: misc inlines and branch hints
...
Inlined trivial functions, added cold branch hints to error paths, added
likely branch hints to common paths
2025-11-18 20:40:26 -07:00
Qwerasd
9e754f9939
perf: fix accidental overhead in refcountedset
2025-11-17 21:31:40 -07:00
Qwerasd
6d5b4a3426
perf: replace std.debug.assert with inlined version
...
See doc comment in `quirks.zig` for reasoning
2025-11-17 12:13:56 -07:00
Mitchell Hashimoto
3770f97608
terminal: Zig 0.15, lib-vt and test-lib-vt work
2025-10-03 07:10:43 -07:00
Qwerasd
6f7e9d5bea
code style: use @splat where possible
...
As of Zig 0.14.0, `@splat` can be used for array types, which eliminates
a lot of redundant syntax and makes things generally cleaner.
I've explicitly avoided applying this change in the renderer files for
now since it would just create rebasing conflicts in my renderer rework
branch which I'll be PR-ing pretty soon.
2025-05-27 21:55:28 -06:00
Mitchell Hashimoto
4d0bf303c6
ci: zig fmt check
...
This adds a CI test to ensure that all Zig files are properly formatted.
This avoids unrelated diff noise in future PRs.
2025-03-18 13:58:49 -07:00
Mitchell Hashimoto
7e2286eb8c
Zig 0.14
2025-03-11 14:39:04 -07:00
Qwerasd
a1b682d0da
fix(terminal): properly lookup hyperlinks when cloning rows across pages
...
Before this we were doing bad things with the memory, looking at
`PageEntry`s for links not actually in the page we were reading the
strings from.
2025-02-10 15:52:40 -05:00
Qwerasd
56cbbd940b
perf(RefCountedSet): make swap metric prioritize high refcount items
...
This experimentally yields a ~20% performance improvement as measured by
running DOOM-fire-zig, which is honestly a lot more than I expected.
2024-12-23 21:41:51 -05:00
Qwerasd
cb60f9d1da
fix(RefCountedSet): Gracefully handle pathological cases
...
Poor hash uniformity and/or a crafted or unlucky input could cause the
bounds of the PSL stats array to be exceeded, which caused memory
corruption (not good!) -- we avoid such cases now by returning an
OutOfMemory error if we're about to insert and there's an item with a
PSL in the last slot.
2024-12-23 16:03:26 -05:00
Qwerasd
a51871a3f7
RefCountedSet: simplify insert logic, cleanup, improve comments
...
Previous logic had multiple issues that were hiding in edge cases of
edge cases with the ressurected item handling among other things; the
added assertIntegrity method finds these issues, the primary one being
an edge case where an ID is present in two different buckets.
Added more comments to explain logic in more detail and fixed a couple
little things like always using `+%` when incrementing the probe pos,
and replacing a silent return on an integrity issue that should be
impossible (`table[item.meta.bucket] != id`) with an assert.
2024-12-23 15:43:57 -05:00
Qwerasd
3bc2dbfa72
RefCountedSet: make lookup public
2024-08-30 13:30:40 -04:00
Qwerasd
0c11d256c8
RefCountedSet: use usize for living count to avoid overflow
2024-08-15 16:28:27 -04:00
Łukasz Niemier
f9be02a20f
chore: clean up typos
2024-08-05 13:56:57 +02:00
Mitchell Hashimoto
54034468b7
terminal: remove errdefer deleted call for refcountedset
2024-07-09 09:07:28 -07:00
Qwerasd
a9aef11b4b
RefCountedSet: add some missing context delete callbacks
2024-07-08 22:15:31 -04:00
Mitchell Hashimoto
eed9c23acd
terminal: RefCountedSet checks for existence prior to cap check
2024-07-05 21:40:39 -07:00
Mitchell Hashimoto
d7e089e2aa
terminal: simplify hyperlink capacity
2024-07-05 21:40:38 -07:00
Mitchell Hashimoto
548850e453
terminal: RefCountedSet should call deleted on upsert
2024-07-05 21:39:56 -07:00
Mitchell Hashimoto
d1f41e2035
terminal: hyperlink start/end on screen
2024-07-05 21:39:55 -07:00
Mitchell Hashimoto
51c05aeb99
terminal: RefCountedSet doesn't need to pass base anymore
2024-07-05 21:39:07 -07:00
Mitchell Hashimoto
2e41afc787
terminal: RefCountedSet has Context variant methods
2024-07-05 21:39:07 -07:00
Mitchell Hashimoto
cb1caff018
terminal: refcountedset passes base memory to all context funcs
...
This enables these funcs to access memory offsets that may be present in
set items, which is possible since the set itself is in an offset-based
structure.
2024-07-05 21:39:07 -07:00
Mitchell Hashimoto
b62806360b
terminal: add test for pagelist to clear styles
2024-06-24 20:58:11 -07:00
Mitchell Hashimoto
368960d76a
use +% for overflow
2024-06-24 20:37:11 -07:00
Mitchell Hashimoto
44c75931b4
terminal: ref counted set count is const
2024-06-24 20:33:28 -07:00
Qwerasd
93b038f490
fix(RefCountedSet): add NeedsRehash error and fix PSL counting bug
...
Prevent bad input from causing repeated OutOfMemory errors by erroring
with NeedsRehash instead when there are unused dead IDs available.
Additionally, properly decrement PSL stats when reviving dead IDs.
2024-06-24 20:32:22 -07:00
Qwerasd
6f732cca55
RefCountedSet: use usize for cap to allow up to max Id+1
2024-06-24 20:32:22 -07:00
Mitchell Hashimoto
d019bacb18
terminal: RefCountedSize should use usize for byte math
...
Related to #1873
2024-06-24 10:39:55 -07:00
Mitchell Hashimoto
eebc7d4c3a
small stylistic changes
2024-06-23 09:44:54 -07:00
Mitchell Hashimoto
9271fd50b6
cache_table and ref_counted_set work on 32-bit machines
2024-06-22 20:45:30 -07:00
Qwerasd
9741b3a18c
perf: introduce RefCountedSet structure, use it for Style.Set
2024-06-13 22:59:03 -04:00