Files
Mitchell Hashimoto 82df79ec8d libghostty: replace Io.Threaded with custom Io impl (TinyIo)
Add a new Io implementation `TinyIo` that only supports the operations
we need and doesn't support concurrency. This shrinks the binary size
of libghostty by anywhere from ~100KB (macOS) to ~200KB (Linux) and 
runtime memory requirements by over 256KB (the thread-local storage
`std.Io.Threaded` creates plus the 18KB threaded structure is gone).

`TinyIo` is POSIX-only: Windows keeps std.Io.Threaded, and on
freestanding targets (wasm) TinyIo degrades to std.Io.failing
behavior just like before.  

It is also exported from the Zig module as `ghostty.TinyIo` so
Zig embedders can opt into the same size win when constructing
terminals.
2026-08-09 13:55:56 -07:00

93 lines
1.7 KiB
TOML

[files]
extend-exclude = [
# Build
"build.zig.zon",
"build.zig.zon.nix",
"build.zig.zon.txt",
"build.zig.zon.json",
# Build artifacts
"macos/build/*",
"zig-out/*",
# vendored code
"vendor/*",
"pkg/*",
"src/stb/*",
# "grey" color names are valid
"src/terminal/res/rgb.txt",
# Do not self-check
"typos.toml",
# Fonts
"*.ttf",
"*.otf",
"*.bdf",
# Images
"*.png",
"*.ico",
"*.icns",
# Valgrind nonsense
"valgrind.supp",
# Fuzz corpus (binary test inputs)
"test/fuzz-libghostty/corpus/*",
# Annotated binary snapshot fixtures
"src/terminal/snapshot/testdata/*.hex",
# Other
"*.pdf",
"*.data",
"*.xib",
"src/cli/lorem_ipsum.txt",
]
[default]
extend-ignore-re = [
# Ignore typos in test expectations
"testing\\.expect[^;]*;",
"kHOM\\d*",
# Ignore "typos" in sprite font draw fn names
"draw[0-9A-F]+(_[0-9A-F]+)?\\(",
# Ignore test data in src/input/paste.zig
"\"hel\\\\x",
# Ignore long hex-like IDs such as 815E26BA2EF1E00F005C67B1
"[0-9A-F]{12,}",
# Ignore base64-encoded strings
"[A-Za-z0-9+/]{8,}={0,2}",
# Ignore Apple four char codes
'code="[A-Za-z]{4,8}"',
'"[A-Za-z]{4}"\.fourCharCode',
]
[default.extend-words]
Pn = "Pn"
thr = "thr"
# Swift oddities
Requestor = "Requestor"
iterm = "iterm"
ACCES = "ACCES"
wdth = "wdth"
Strat = "Strat"
grey = "gray"
greyscale = "grayscale"
DECID = "DECID"
flate = "flate"
typ = "typ"
kend = "kend"
# Tai Tham is a script/writing system
Tham = "Tham"
# GTK
GIR = "GIR"
# terminfo
rin = "rin"
# sprites
ower = "ower"
# OpenType table names
loca = "loca"
# TinyIo
tio = "tio"
WRONLY = "WRONLY"
[type.po]
extend-glob = ["*.po"]
check-file = false
[type.swift.extend-words]
inout = "inout"