<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ghostty.git/nix/zigCacheHash.nix, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/'/>
<entry>
<title>cli: add +boo command</title>
<updated>2025-02-14T22:46:18+00:00</updated>
<author>
<name>Tim Culverhouse</name>
<email>tim@timculverhouse.com</email>
</author>
<published>2025-01-09T02:58:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=9cb297202ba7ee85534ed33f6cfc5681996aa5b0'/>
<id>9cb297202ba7ee85534ed33f6cfc5681996aa5b0</id>
<content type='text'>
Add a `+boo` command to show the animation from the website. The data
for the frames is compressed during the build process. This build step
was added to the SharedDeps object because it is used in both
libghostty and in binaries.

The compression is done as follows:
- All files are concatenated together using \x01 as a combining byte
- The files are compressed to a cached build file
- A zig file is written to stdout which `@embedFile`s the compressed
  file and exposes it to the importer
- A new anonymous module "framedata" is added in the SharedDeps object

Any file can import framedata and access the compressed bytes via
`framedata.compressed`. In the `boo` command, we decompress the file and
split it into frames for use in the animation.

The overall addition to the binary size is 348k.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add a `+boo` command to show the animation from the website. The data
for the frames is compressed during the build process. This build step
was added to the SharedDeps object because it is used in both
libghostty and in binaries.

The compression is done as follows:
- All files are concatenated together using \x01 as a combining byte
- The files are compressed to a cached build file
- A zig file is written to stdout which `@embedFile`s the compressed
  file and exposes it to the importer
- A new anonymous module "framedata" is added in the SharedDeps object

Any file can import framedata and access the compressed bytes via
`framedata.compressed`. In the `boo` command, we decompress the file and
split it into frames for use in the animation.

The overall addition to the binary size is 348k.
</pre>
</div>
</content>
</entry>
<entry>
<title>nix: use zig2nix to manage nix cache/deps</title>
<updated>2025-02-11T16:25:34+00:00</updated>
<author>
<name>Jeffrey C. Ollie</name>
<email>jeff@ocjtech.us</email>
</author>
<published>2025-01-30T17:55:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=3a8c934b1937762e00de1959d9f25a25794b4d85'/>
<id>3a8c934b1937762e00de1959d9f25a25794b4d85</id>
<content type='text'>
This brings the internal package more in line with how the nixpkgs
package is built. It also handles recursive dependencies better than the
current system.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This brings the internal package more in line with how the nixpkgs
package is built. It also handles recursive dependencies better than the
current system.
</pre>
</div>
</content>
</entry>
<entry>
<title>gtk: introduce Zig bindings for GTK/GObject</title>
<updated>2025-02-10T17:34:08+00:00</updated>
<author>
<name>Leah Amelia Chen</name>
<email>hi@pluie.me</email>
</author>
<published>2025-01-31T10:54:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=843c7140880f002c52d4c4a3715062b02e967990'/>
<id>843c7140880f002c52d4c4a3715062b02e967990</id>
<content type='text'>
`zig-gobject` is a set of GObject bindings that allow us to write
GTK-facing code in Zig instead of getting hands dirty with C.
It's been tested and refined in real-life applications and several
GTK contributors agree that it is a marked improvement over using
the C API directly, such as allowing method call syntax and avoiding
many manual `@ptrCast`s.

This commit doesn't actually contain any changes to our preexisting
GTK code — the migration process is intended to begin in chunks,
firstly in self-contained components (e.g. the header bar, overlays,
etc.), and then full-scale migration can begin when we remove non-Adwaita
GTK builds for 1.2. (After all, why port code that you'll remove later
either way?)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`zig-gobject` is a set of GObject bindings that allow us to write
GTK-facing code in Zig instead of getting hands dirty with C.
It's been tested and refined in real-life applications and several
GTK contributors agree that it is a marked improvement over using
the C API directly, such as allowing method call syntax and avoiding
many manual `@ptrCast`s.

This commit doesn't actually contain any changes to our preexisting
GTK code — the migration process is intended to begin in chunks,
firstly in self-contained components (e.g. the header bar, overlays,
etc.), and then full-scale migration can begin when we remove non-Adwaita
GTK builds for 1.2. (After all, why port code that you'll remove later
either way?)
</pre>
</div>
</content>
</entry>
<entry>
<title>deps: Update iTerm2 color schemes</title>
<updated>2025-02-02T00:10:42+00:00</updated>
<author>
<name>mitchellh</name>
<email>1299+mitchellh@users.noreply.github.com</email>
</author>
<published>2025-02-02T00:10:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=5100f4ff7da6eaa94aa7b01ee9f25c96f561b9ca'/>
<id>5100f4ff7da6eaa94aa7b01ee9f25c96f561b9ca</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Update libxev to fix zombie processes on macOS</title>
<updated>2025-01-24T20:07:01+00:00</updated>
<author>
<name>Mitchell Hashimoto</name>
<email>m@mitchellh.com</email>
</author>
<published>2025-01-24T18:01:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=9ab2e563bbb626f0c76008d026b92a77f95b6321'/>
<id>9ab2e563bbb626f0c76008d026b92a77f95b6321</id>
<content type='text'>
Fixes #4554

xev.Process.wait is documented as being equivalent to calling `waitpid`,
i.e. including reaping the process. On Linux, it does this automatically
by using pidfd and the `waitid` syscall. On macOS, it wasn't doing this.

This commit updates libxev to include a fix that explicitly calls
`waitpid` for kqueue.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes #4554

xev.Process.wait is documented as being equivalent to calling `waitpid`,
i.e. including reaping the process. On Linux, it does this automatically
by using pidfd and the `waitid` syscall. On macOS, it wasn't doing this.

This commit updates libxev to include a fix that explicitly calls
`waitpid` for kqueue.
</pre>
</div>
</content>
</entry>
<entry>
<title>Prevent fd leaks to the running shell or command</title>
<updated>2025-01-24T06:12:58+00:00</updated>
<author>
<name>Mitchell Hashimoto</name>
<email>m@mitchellh.com</email>
</author>
<published>2025-01-24T05:22:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=0d6a1d3fdb93ee5444a2f998e085266ad443442a'/>
<id>0d6a1d3fdb93ee5444a2f998e085266ad443442a</id>
<content type='text'>
Multiple fixes to prevent file descriptor leaks:

- libxev eventfd now uses CLOEXEC
- linux: cgroup clone now uses CLOEXEC for the cgroup fd
- termio pipe uses pipe2 with CLOEXEC
- pty master always sets CLOEXEC because the child doesn't need it
- termio exec now closes pty slave fd after fork

There still appear to be some fd leaks happening. They seem related to
GTK, they aren't things we're accessig directly. I still want to
investigate them but this at least cleans up the major sources of fd
leakage.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Multiple fixes to prevent file descriptor leaks:

- libxev eventfd now uses CLOEXEC
- linux: cgroup clone now uses CLOEXEC for the cgroup fd
- termio pipe uses pipe2 with CLOEXEC
- pty master always sets CLOEXEC because the child doesn't need it
- termio exec now closes pty slave fd after fork

There still appear to be some fd leaks happening. They seem related to
GTK, they aren't things we're accessig directly. I still want to
investigate them but this at least cleans up the major sources of fd
leakage.
</pre>
</div>
</content>
</entry>
<entry>
<title>deps: Update iTerm2 color schemes</title>
<updated>2025-01-19T00:58:22+00:00</updated>
<author>
<name>mitchellh</name>
<email>1299+mitchellh@users.noreply.github.com</email>
</author>
<published>2025-01-19T00:58:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=3f367857fc30edce9d9de32184df0789b30c8809'/>
<id>3f367857fc30edce9d9de32184df0789b30c8809</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>deps: Update iTerm2 color schemes</title>
<updated>2025-01-12T01:01:09+00:00</updated>
<author>
<name>mitchellh</name>
<email>1299+mitchellh@users.noreply.github.com</email>
</author>
<published>2025-01-12T01:01:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=50e33a66654a083e15085549842bad0c449f30eb'/>
<id>50e33a66654a083e15085549842bad0c449f30eb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix wayland-scanner/protocols packaging dependency</title>
<updated>2025-01-10T17:57:29+00:00</updated>
<author>
<name>Mitchell Hashimoto</name>
<email>m@mitchellh.com</email>
</author>
<published>2025-01-10T17:56:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=6e411d60f209300d7f06c3502c085b086c058734'/>
<id>6e411d60f209300d7f06c3502c085b086c058734</id>
<content type='text'>
By updating zig-wayland:
https://codeberg.org/ifreund/zig-wayland/issues/67
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
By updating zig-wayland:
https://codeberg.org/ifreund/zig-wayland/issues/67
</pre>
</div>
</content>
</entry>
<entry>
<title>build: update zig-wayland to use new LazyPath API</title>
<updated>2025-01-09T03:55:57+00:00</updated>
<author>
<name>Mitchell Hashimoto</name>
<email>m@mitchellh.com</email>
</author>
<published>2025-01-09T03:51:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=622cc3f9c7c0181e1f57c09b88f5ca53f1499b98'/>
<id>622cc3f9c7c0181e1f57c09b88f5ca53f1499b98</id>
<content type='text'>
This is a more idiomatic way to handle build paths in Zig 0.13 and
later.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is a more idiomatic way to handle build paths in Zig 0.13 and
later.
</pre>
</div>
</content>
</entry>
</feed>
