1390 Commits

Author SHA1 Message Date
Mitchell Hashimoto
c438d72f13 macos: add ErrorView 2023-02-19 10:44:54 -08:00
Mitchell Hashimoto
9bd527fe00 macos: config API 2023-02-19 10:44:54 -08:00
Mitchell Hashimoto
6fc4b144a2 build: update libtool step docs 2023-02-19 10:44:54 -08:00
Mitchell Hashimoto
d2d21801d8 macos: need to link to libstdc++ 2023-02-19 10:44:54 -08:00
Mitchell Hashimoto
d2dd3df86a libtoolstep 2023-02-19 10:44:54 -08:00
Mitchell Hashimoto
9fcc9ce302 macos: add missing Preview Content folder 2023-02-19 10:44:54 -08:00
Mitchell Hashimoto
8b80e65928 lots of broken stuff 2023-02-19 10:44:54 -08:00
Mitchell Hashimoto
4dd4bbf7e0 macos: disable code signing for now 2023-02-19 10:44:54 -08:00
Mitchell Hashimoto
6de6f100a9 ci: revert back to scripting xcodebuild (broken) 2023-02-19 10:44:54 -08:00
Mitchell Hashimoto
a2dd8d8abe include: comment the modulemap 2023-02-19 10:44:53 -08:00
Mitchell Hashimoto
5d6e41557e ci: try to xcodebuild 2023-02-19 10:44:53 -08:00
Mitchell Hashimoto
aa640fa29b ci: build macos app 2023-02-19 10:44:53 -08:00
Mitchell Hashimoto
fb1b032929 ci: trying to build macos 2023-02-19 10:44:53 -08:00
Mitchell Hashimoto
1abaf87de9 build: LipoStep 2023-02-19 10:44:53 -08:00
Mitchell Hashimoto
55aff76922 build: remove SwiftBuildStep 2023-02-19 10:44:53 -08:00
Mitchell Hashimoto
abd739f3ef build: just copy xcframework 2023-02-19 10:44:53 -08:00
Mitchell Hashimoto
aefec1d6a9 macos: xcodeproj 2023-02-19 10:44:53 -08:00
Mitchell Hashimoto
8fedbf84d4 macos: use xcodeproj 2023-02-19 10:44:53 -08:00
Mitchell Hashimoto
8035865596 build: ghostty lib, framework, build into app 2023-02-19 10:44:53 -08:00
Mitchell Hashimoto
81299fde9c macos: empty window 2023-02-19 10:44:52 -08:00
Mitchell Hashimoto
4d09f8dba6 build: add SwiftBuildStep to run "swift build" 2023-02-19 10:44:52 -08:00
Mitchell Hashimoto
b49634a57c add TODO notes about arch 2023-02-19 10:44:52 -08:00
Mitchell Hashimoto
1f70181032 build: can build the app using Swift (noop) 2023-02-19 10:44:52 -08:00
Mitchell Hashimoto
f2948fd6a6 macos: starting boilerplate 2023-02-19 10:44:52 -08:00
Mitchell Hashimoto
caa27fcf98 ci: use -Doptimize 2023-02-14 21:25:41 -08:00
Mitchell Hashimoto
a2f17aa71a fix tests, wasm build works again 2023-02-14 21:06:09 -08:00
Mitchell Hashimoto
6accb7d67c delete libuv 2023-02-14 21:00:24 -08:00
Mitchell Hashimoto
be75109a1d new build system 2023-02-14 20:58:33 -08:00
Mitchell Hashimoto
ec19c178a1 update zig version 2023-02-14 17:45:41 -08:00
Mitchell Hashimoto
7d626326de nix: fix darwin devshell 2023-02-12 19:29:26 -08:00
Mitchell Hashimoto
4a1ff37d63 build conformance into dedicated directory 2023-02-10 08:43:32 -08:00
Mitchell Hashimoto
7d16acdf06 build: add comptime check to verify Zig version 2023-02-08 15:42:41 -08:00
Mitchell Hashimoto
9a5c1cce26 Merge pull request #71 from mitchellh/dependabot/github_actions/cachix/install-nix-action-19
build(deps): bump cachix/install-nix-action from 18 to 19
2023-02-06 16:57:02 -08:00
dependabot[bot]
ba55791a51 build(deps): bump cachix/install-nix-action from 18 to 19
Bumps [cachix/install-nix-action](https://github.com/cachix/install-nix-action) from 18 to 19.
- [Release notes](https://github.com/cachix/install-nix-action/releases)
- [Commits](https://github.com/cachix/install-nix-action/compare/v18...v19)

---
updated-dependencies:
- dependency-name: cachix/install-nix-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-07 00:20:04 +00:00
Mitchell Hashimoto
b124162eda Merge pull request #70 from mitchellh/libxev
This completely drops libuv as a dependency and uses [libxev](https://github.com/mitchellh/libxev) instead.

The _primary_ reason to do this is easier building, cross-compiling, and the ability to write a WASM backend in the future. However, we don't want to do this unless it has a positive or null impact on performance. On this, we've succeeded!

The performance impact on Linux is very small. The performance impact on macOS is quite large (I'm seeing almost 40% faster on IO heavy workloads). On both platforms, the stddev of IO heavy workloads is much smaller. This isn't libxev itself, this is primarily do to switching to the dedicated read thread (more next).

This PR also has an architectural change: the TTY reads now happen on a dedicated thread _outside the event loop_. I realized that TTY reads are almost always very small and under heavy IO load, the event loop overhead is very heavy. This is particularly true with io_uring since it uses an kernel threadpool under the covers and the context switch cost was very visible. Another factor is that TTY reads are almost always the only thing impacting terminal state. So if we wrap the terminal state in a lock (we already do), there is almost no overhead to moving the reads to a thread since locks aren't slow, lock contention is slow, and we have almost no lock contention under typical loads.

The main impact of the dedicated TTY reader thread is that there is no event loop overhead and the "jitter" between IO reads is now very small.

🚀
2023-02-06 16:18:19 -08:00
Mitchell Hashimoto
695a9f3cb9 termio: fix pty close error so close doesn't hang on macOS 2023-02-06 16:05:41 -08:00
Mitchell Hashimoto
469d395997 termio: fix TODO around cursor reset 2023-02-06 15:51:55 -08:00
Mitchell Hashimoto
7c360eb29a termio: better commenting on what is going on 2023-02-06 15:45:32 -08:00
Mitchell Hashimoto
91ace8af64 termio: IO reader thread cleanup works 2023-02-06 15:41:28 -08:00
Mitchell Hashimoto
11d6e91228 termio: reader thread is thread-safe for writing to writer 2023-02-06 14:52:24 -08:00
Mitchell Hashimoto
18f20add34 pkg/libuv: delete 2023-02-06 13:07:47 -08:00
Mitchell Hashimoto
a5d03d1318 termio: use a dedicated io reader thread? 2023-02-05 21:33:15 -08:00
Mitchell Hashimoto
24373d84af update libxev 2023-02-05 21:20:49 -08:00
Mitchell Hashimoto
f07e21c22e remove libuv from build 2023-02-04 17:37:51 -08:00
Mitchell Hashimoto
7e6a86f065 termio: use libxev (with TODOs) 2023-02-04 11:47:51 -08:00
Mitchell Hashimoto
ad10b2cf0b vendor update 2023-02-04 11:47:46 -08:00
Mitchell Hashimoto
ad83668234 vendor/libxev update 2023-02-01 19:04:03 -08:00
Mitchell Hashimoto
1273527048 renderer uses libxev
Still some bugs and TODOs, but it is workable.
2023-02-01 15:52:22 -08:00
Mitchell Hashimoto
28ed8573b6 update libxev 2023-02-01 15:52:12 -08:00
Mitchell Hashimoto
60fca27c33 vendor/libxev 2023-01-30 19:17:43 -08:00