Commit Graph

302 Commits

Author SHA1 Message Date
Chris Marchesi
c0c5473daf build: refactoring our use of translate-c
This commit refactors our use of translate-c, in preparation for larger
removal of cImport and better co-ordination between building of C
dependencies and translation of headers.

The major update is the creation of an internal helper package that
wraps our use of the external translate-c library. This allows us to not
only have better shorthand and a data-driven, declarative approach to C
translation (versus the otherwise more imperative approach), it also
funnels the external dependency into a single package instead of
spreading it out among what will be an increasingly larger amount of
places as dependencies in "pkg/" get updated.

It also includes some refactors, namely to the harfbuzz package, which
has had its individual settings refactored into helpers to allow for the
settings to be better shared between translation and the build of the
c-based static library.

Wuffs has also had a bit of a refactor too so that we don't generate a
file with all of the macro defines in it - we just send these in as "-D"
flags now.
2026-09-10 11:17:32 -07:00
Chris Marchesi
2b3b893919 deps: update translate-c backport 2026-09-06 17:39:24 -07:00
mitchellh
11d1cc4fc8 deps: Update iTerm2 color schemes 2026-09-06 00:22:51 +00:00
mitchellh
094d175efa deps: Update iTerm2 color schemes 2026-08-30 00:22:34 +00:00
Mitchell Hashimoto
ffad4c6ec4 update mirror, support git+https dependencies 2026-08-21 09:36:56 -07:00
mitchellh
f2897f31de deps: Update iTerm2 color schemes 2026-08-16 00:25:02 +00:00
mitchellh
7e8b4f360b deps: Update iTerm2 color schemes 2026-08-09 00:28:40 +00:00
Jeffrey C. Ollie
1cc5e7bec1 update zig-gobject to 0.3.2
Includes better ZIg 0.16 compat and updates for Gnome 50.
2026-07-28 15:52:01 -05:00
Mitchell Hashimoto
07f6c6bb07 mirror deps 2026-07-28 09:13:49 -07:00
Chris Marchesi
d0e72a3ab6 font/sprite: update to z2d 0.12.1, use native path insetting
This change updates z2d to 0.12.1 and changes the sprite font path
insetting functionality to use the new path offset abilities released in
the update.

In addition, there has been a slight change to the drawing of E0B5 and
its respective reflection; we now add a 1-pixel horizontal line segment
to each end to force them to be perpendicular. This is because
offsetting pre-expands the curves and ultimately causes the end segments
of the curve itself to have slight non-horizontal angles, which produce
small artifacts at the ends without the forced horizontal ends.
2026-07-27 12:08:24 -07:00
Mitchell Hashimoto
82e53e3f6e deps: update translate-c backport (#13454)
Was brought up as possibly being a build issue here:
https://codeberg.org/vancluever/translate-c/pulls/1

I do think that this is the better approach and seems to be the close
equivalent of the `.zig_ilb` option that's coming with `LazyPath` in
0.17.0 (which is how translate-c behaves there).

I was looking for something like this initially and I _think_ I might
have passed over it to start with because it was a bit hard to determine
the circumstances that `b.graph.zig_lib_directory` would be null, but
upon further examination, I think such cases would be rare if they
happened at all. Rather than default to the cwd in this event though I
just get it to error out - that way we'll know if it ever is the case!
2026-07-26 15:39:58 -07:00
mitchellh
4c1d69696b deps: Update iTerm2 color schemes 2026-07-26 00:45:20 +00:00
Chris Marchesi
e31f729b38 deps: update translate-c backport
This updates the translate-c backport to use the Zig lib dir from the
build graph rather than an external "zig env" invocation.
2026-07-25 10:39:32 -07:00
Mitchell Hashimoto
f2a7652aba mitchell's touchups
- benchmark: avoid buffers to avoid a memcpy
- build: keep frame pointers on macOS. There was some debug changes from
  Zig 0.15 and this helps. Also, Apple actually requires/expects x29 to
  always be a frame pointer.
- build/macos: force libSystem symbols instead of compiler-rt
- global: add InitOpts.tool so that ghostty-gen/bench can parse their
  own actions in `+action`
- quirks: provide our own vectorized memset. see the comment for more
  details why.
- synthetic: fix UB by accessing global.io before it was initialized
- terminal/hash_map: force inline for unique repr types. Zig 0.15
  inlined and 0.16 doesn't, measured a huge slowdown in hyperlink
  benchmarks.
- terminal: add explicit `@Vector` usage for storing a run of identical cells
  as well as for scanning printable cells. This auto-vectorized in Zig
  0.15 but not in Zig 0.16. This produces the same assembly.
- unicode: properties and LUT need power-of-two backing integer to avoid
  bad LLVM codegen
2026-07-21 17:19:16 -07:00
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
mitchellh
b513f1b209 deps: Update iTerm2 color schemes 2026-07-19 00:28:19 +00:00
mitchellh
02504bcce1 deps: Update iTerm2 color schemes 2026-07-05 00:33:57 +00:00
mitchellh
07a56d08bd deps: Update iTerm2 color schemes 2026-06-28 00:38:11 +00:00
mitchellh
dc8d38503d deps: Update iTerm2 color schemes 2026-06-21 00:42:33 +00:00
mitchellh
1182a76df6 deps: Update iTerm2 color schemes 2026-06-14 00:53:36 +00:00
mitchellh
024880b9ca deps: Update iTerm2 color schemes 2026-05-31 00:38:07 +00:00
mitchellh
aed646139d deps: Update iTerm2 color schemes 2026-05-17 00:33:21 +00:00
mitchellh
28767f62b1 deps: Update iTerm2 color schemes 2026-05-03 00:30:37 +00:00
Mitchell Hashimoto
e51de8b58f libghostty: Remove all libc++ and libc++ ABI dependencies
This updates simdutf to my fork which has a SIMDUTF_NO_LIBCXX option
that removes all libc++ and libc++ ABI dependencies. 

From there, the hand-written simd code we have has been updated to also
no longer use any libc++ features. Part of this required removing utfcpp
since it depended on libc++ (`<iterator>`).

libghostty-vt now only depends on libc.
2026-04-15 10:27:05 -07:00
mitchellh
5421326678 deps: Update iTerm2 color schemes 2026-03-29 00:23:08 +00:00
Leah Amelia Chen
9e2e99c55f gtk/wayland: replace KDE blur with ext-background-effect-v1
The venerable KDE blur protocol has been replaced with the compositor-
agnostic ext-background-effect-v1 protocol, to be implemented by Niri and
others. The new protocol is much easier to use overall, though we do need
to calculate the blur region manually like X11.
2026-03-18 03:07:46 +08:00
Mitchell Hashimoto
5fa1a991d0 up to 1.3.2-dev 2026-03-13 09:22:46 -07:00
Mitchell Hashimoto
332b2aefc6 1.3.1 2026-03-13 09:00:30 -07:00
Mitchell Hashimoto
703d11c642 Bump version to 1.3.0 2026-03-09 08:48:36 -07:00
Mitchell Hashimoto
861a9cf537 ci: Add lib-vt Android support (#10925)
The PR introduces `lib-vt` Android support as discussed in #10902. 

A few more notes:

- Introduces new CI for Android builds as a change requires NDK to be
configured.
- To build locally, it is required to have the NDK installed in the
system and either have the path exported via `ANDROID_NDK_HOME` pointing
to the exact NDK path or `ANDROID_HOME` or `ANDROID_SDK_ROOT` pointing
at the Android SDK path from which the build system will infer the NDK
path and version.
- 16kb page size alignment is configured for Android 15+. Builds are
backward compatible with 4kb page size devices.
2026-02-21 21:13:23 -08:00
Mitchell Hashimoto
c4c58a9f58 update deps to mirror 2026-02-21 20:38:49 -08:00
mitchellh
fad5599c32 deps: Update iTerm2 color schemes 2026-02-22 00:18:10 +00:00
Elias Andualem
bd9611650f build: add support for Android NDK path configuration 2026-02-21 21:17:09 +08:00
Jacob Sandlund
d2098d830c deps: Update uucode to 0.2.0 (with unicode 17) 2026-02-19 09:37:51 -05:00
mitchellh
90ebe25fdd deps: Update iTerm2 color schemes 2026-02-08 00:23:24 +00:00
mitchellh
ef2c90cd2b deps: Update iTerm2 color schemes 2026-02-01 00:20:14 +00:00
mitchellh
73a8d64b8a deps: Update iTerm2 color schemes 2026-01-18 00:16:59 +00:00
mitchellh
bd20f844aa deps: Update iTerm2 color schemes 2026-01-04 00:16:28 +00:00
Mitchell Hashimoto
82e585ad9a remove pkg/cimgui 2025-12-31 13:38:40 -08:00
Mitchell Hashimoto
978400b0b0 replace cimgui with dcimgui 2025-12-31 10:42:10 -08:00
Chris Marchesi
6d36193378 deps: update z2d to v0.10.0
Release notes at:
 https://github.com/vancluever/z2d/blob/v0.10.0/CHANGELOG.md

Mainly a maintenance update with regards to Ghostty use, with a couple
of minor changes required to some type references to match new API
semantics.
2025-12-28 12:30:36 -08:00
mitchellh
03ecc9fdbf deps: Update iTerm2 color schemes 2025-12-28 00:16:19 +00:00
mitchellh
1fbdcf1ee7 deps: Update iTerm2 color schemes 2025-12-21 00:15:47 +00:00
mitchellh
3d5d170f8b deps: Update iTerm2 color schemes 2025-12-14 00:15:58 +00:00
Mitchell Hashimoto
4c2fb7ae0e Update mirror for direct deps 2025-12-13 13:53:46 -08:00
Mitchell Hashimoto
581ed72efc gtk: support GTK 4.20 media queries in runtime & custom css (#9520) 2025-12-10 12:55:25 -08:00
mitchellh
6e081b2c81 deps: Update iTerm2 color schemes 2025-12-07 00:15:51 +00:00
mitchellh
643c5e00a0 deps: Update iTerm2 color schemes 2025-11-30 00:16:02 +00:00
Jacob Sandlund
2b6c309217 Update uucode to latest 2025-11-24 08:29:27 -05:00
Jacob Sandlund
6e0e1d1388 update uucode to latest 2025-11-23 23:05:03 -05:00