Kovid Goyal
39ea084be9
Linux: Run all child processes in their own systemd scope to prevent the OOM killer from harvesting kitty when a child process misbehaves
...
Fixes #7427
2024-05-16 15:43:25 +05:30
Kovid Goyal
a4c9cb6d28
Small performance increase in SIMD code
...
Use OpenMP annotations with simde as the simde docs recommend.
2024-05-04 09:47:02 +05:30
Kovid Goyal
8183e9d3ef
Fix CI build failure on macOS
...
Also update simde to version 0.8. Accidental was using it to debug
issues with building against simde, but now that it's done, keep it.
2024-04-30 09:48:51 +05:30
Kovid Goyal
437fc0d8c2
Revert renaming of kitty.dekstop to kitty-terminal.desktop
...
Changing the default value for application id/WM_CLASS is a no go, since
existing scripts can depend on it and I try to avoid breaking people's
workflows wherever possible. Guess xdg-mime will just have to live with
the horror of an unhyphenated file name.
Fixes #7326
2024-04-09 12:47:14 +05:30
Kovid Goyal
597710dd53
Add StartupNotify to kitty.desktop
...
See https://gitlab.gnome.org/GNOME/mutter/-/issues/2739
Also rename kitty.desktop to kitty-terminal.desktop as otherwise
xdg-menu-install complains about no vendor prefix.
2024-04-08 10:00:06 +05:30
Kovid Goyal
20375ee77a
Fix #7310
2024-04-04 15:08:58 +05:30
Kovid Goyal
d260c0a679
...
2024-03-29 13:31:31 +05:30
Kovid Goyal
c72963dfc5
Use requires-python in pyproject.toml to specify python requirement
2024-03-29 13:23:09 +05:30
Kovid Goyal
a0424bf1bd
Dont omit frame pointer in debug and profile builds
2024-03-18 10:56:50 +05:30
Kovid Goyal
5e0185d3eb
Ensure KITTY_NO_SIMD is defined for all files on arches without SIMD support
2024-03-15 12:19:47 +05:30
Kovid Goyal
0153c9bb85
Use -g3 for profiling rather than -g
2024-03-14 17:07:38 +05:30
Kovid Goyal
10cff577d6
Also get a backtrace when generating go code segfaults on CI
2024-03-14 16:25:52 +05:30
Kovid Goyal
77125798a4
Redirect to NULL instead of pipe since we dont use the output
2024-03-14 12:15:15 +05:30
Kovid Goyal
c26954c69e
...
2024-03-14 12:05:57 +05:30
Kovid Goyal
9667da307c
Print detected compiler type in verbose mode
2024-03-14 12:04:33 +05:30
Kovid Goyal
baa3ec0a62
Explicitly detect compiler types gcc vs clang
2024-03-14 12:02:01 +05:30
Kovid Goyal
3950632517
Switch to detecting clang rather than gcc
...
gcc makes it impossible to detect that it is gcc via --version
so instead detect clang and assume gcc if not clang.
Fixes #7218
2024-03-14 10:48:27 +05:30
Kovid Goyal
297ac9c3fe
...
2024-03-14 08:54:39 +05:30
Kovid Goyal
17fe6b3373
Simplify sanitize args
2024-03-01 11:08:51 +05:30
Kovid Goyal
f16c2a0d67
Move checking for compiler brand into Env
2024-02-25 09:57:43 +05:30
Kovid Goyal
29a574a4bc
Prevent duplicate VZEROUPPER instructions
2024-02-25 09:57:43 +05:30
Kovid Goyal
f1fe0bf40a
Code to easily compare SIMD and scalar decode in a live instance
...
Also remove -mtune=intel as it fails with clang
2024-02-25 09:57:41 +05:30
Kovid Goyal
55c909c656
Use -mtune=intel for SIMD files when building without native optimizations
2024-02-25 09:57:40 +05:30
Kovid Goyal
68d800d4fa
make clean should clean generated asm as well
2024-02-25 09:57:40 +05:30
Kovid Goyal
73342411bc
Dont build any SIMD code when the target is neither ARM64 nor x86/amd64
2024-02-25 09:57:38 +05:30
Kovid Goyal
8dd6f9b07c
Get universal builds working again
...
Now we use lipo and build individually so we can pass the correct
compiler flags per arch
2024-02-25 09:57:38 +05:30
Kovid Goyal
7e77a196e6
Build only the SIMD code with SIMD compiler flags
2024-02-25 09:57:38 +05:30
Kovid Goyal
465616223c
Drop using the v2 microarch
...
No significant performance impact and small risk of breakage
2024-02-25 09:57:38 +05:30
Kovid Goyal
4fec11af05
Run dsymutil in post link phase
2024-02-25 09:57:37 +05:30
Kovid Goyal
5a9304e1b8
DRYer
2024-02-25 09:57:37 +05:30
Kovid Goyal
2b9c646c5b
Build dSYM bundles on CI
2024-02-25 09:57:37 +05:30
Kovid Goyal
8762a939c0
Dont specify arch/tune when building universal binary
2024-02-25 09:57:37 +05:30
Kovid Goyal
903dd26a08
Sadly -march=x86-64-v2 is not the culprit for the intermittent SIGILL in macOS CI
2024-02-25 09:57:36 +05:30
Kovid Goyal
a9111f9a40
Try disabling x86-64-v2 on macOS
2024-02-25 09:57:35 +05:30
Kovid Goyal
0bd67620c6
...
2024-02-25 09:57:30 +05:30
Kovid Goyal
73d657a21a
Dont use intel intrinsics switches on ARM
2024-02-25 09:57:29 +05:30
Kovid Goyal
103f5f3956
Move ringbuf into 3rdparty
2024-02-25 09:57:29 +05:30
Kovid Goyal
56dcbca238
Move base64simd into a 3rdparty folder
2024-02-25 09:57:29 +05:30
Kovid Goyal
3d0a90e63d
Switch to SIMD based base64
2024-02-25 09:57:29 +05:30
Kovid Goyal
4790959938
Use -fno-plt
...
We dont need the PLT and it frees up some registers
2024-02-25 09:57:28 +05:30
Kovid Goyal
33249c872f
Use a better default march for binary builds
...
x86-64-v2 implies SSE4.2 which should be available everywhere by now. We
will see if we get errors with it.
https://developers.redhat.com/blog/2021/01/05/building-red-hat-enterprise-linux-9-for-the-x86-64-v2-microarchitecture-level#architectural_considerations_for_rhel_9
2024-02-25 09:57:28 +05:30
Kovid Goyal
b032313c45
Only use SIMD if CPU supports it at runtime
2024-02-25 09:57:27 +05:30
Kovid Goyal
4f67b8b433
Need -msse4.2 on non-native builds
2024-02-25 09:57:27 +05:30
Kovid Goyal
859b0cc585
Include -march=native for debug builds
2024-02-25 09:57:26 +05:30
Kovid Goyal
5f809bf249
Get kitty building with the new VT parser
2024-02-25 09:57:22 +05:30
Kovid Goyal
b083ad9038
Start work on bytes based VT parser
2024-02-25 09:57:22 +05:30
Kovid Goyal
a3e324d623
When testing for cf-protection support take env into account
2024-01-21 08:42:55 +05:30
Kovid Goyal
d6116f7426
Fix #7026
2024-01-21 08:33:59 +05:30
Maytham Alsudany
30905db75f
Explicit GO111MODULE=on when getting required Go version
2024-01-19 22:46:48 +08:00
Kovid Goyal
1c72a94b2f
Fix universal build with cf-protection failing
2024-01-15 12:45:55 +05:30
Kovid Goyal
46bb027d14
Fix building on old gcc/clang
2024-01-15 11:23:42 +05:30
Kovid Goyal
d4ff54e0d8
Dont use branch-protection=standard on linux ARM as it reportedly causes crashes
...
See https://github.com/kovidgoyal/kitty/issues/6845#issuecomment-1835886938
2023-12-01 16:48:30 +05:30
Kovid Goyal
f2075f99fd
More comprehensive is_arm check
...
Apparently on some Linux machines platform.machine() is 'aarch64' not
'arm64'.
2023-12-01 16:36:34 +05:30
Kovid Goyal
788295e534
Turn on control flow protection build options
2023-12-01 07:36:02 +05:30
Kovid Goyal
2047ea8eec
Allow package build to complete without docs if user chose to skip building kitten
2023-11-12 08:16:26 +05:30
Kovid Goyal
a3c8f32c1a
Fix Linux CI build
2023-11-11 17:36:10 +05:30
Kovid Goyal
0f2196357c
Make mypy happy
2023-11-11 16:07:18 +05:30
Kovid Goyal
2759ec1fe1
Add an option to setup.py to skip building kitten
...
Fixes #6809
2023-11-11 15:55:56 +05:30
Kovid Goyal
77292a16d6
Make shebangs consistent
...
Follow PEP 0394 and use /usr/bin/env python so that the python in the
users venv is respected. Not that the kitty python files are meant to be
executed standalone anyway, but, whatever.
Fixes #6810
2023-11-11 08:32:05 +05:30
Kovid Goyal
a9b412baba
Fix a regression that broke kitten update-self
...
Fixes #6729
2023-10-18 19:19:35 +05:30
Kovid Goyal
56063b96fd
Move gen scripts into their own package
2023-10-14 07:44:18 +05:30
Bernhard M. Wiedemann
50968c12b1
Make build reproducible
...
This needs 3 fixes:
* for an ordering issue in docs_ref_map_generated.h
* for a filesystem-order issue in uniforms_generated.h
* to normalize mtimes in the data_generated.bin tar
This patch was done while working on reproducible builds for openSUSE.
2023-10-08 04:48:51 +02:00
Kovid Goyal
dda5771ccd
Yet another stupid entry in Info.plist for Apple's security theatre
...
Fixes #6632
2023-09-18 22:31:52 +05:30
Jeff Pitman
0626c0f5d9
Handles go versions like go1.22-YYYYMMDD-RCXX.
2023-09-10 17:49:24 -07:00
Kovid Goyal
193c2542bd
Make mypy 1.5.0 happy
2023-08-11 08:34:22 +05:30
Kovid Goyal
05373c6e2a
Get the new rsync code building
2023-07-30 19:49:43 +05:30
Kovid Goyal
d485d487ea
Use pkg_config for xxhash flags
2023-07-30 19:49:42 +05:30
Kovid Goyal
fabb6bd8cc
Start work on porting Go rsync implementation to C
2023-07-30 19:49:42 +05:30
Kovid Goyal
52ffc417b6
Build a minimal kitty.app in develop mode
2023-07-29 11:10:54 +05:30
Kovid Goyal
b2c1afdcbb
Use an absolute path to python code for develop builds on macOS
2023-07-29 10:46:22 +05:30
Kovid Goyal
f8fd6031c9
Get develop builds working on macOS as well
2023-07-28 21:14:31 +05:30
Kovid Goyal
aab1bf305a
Move include path logic for develop into setup.py
2023-07-28 10:23:54 +05:30
Kovid Goyal
916ce43475
make develop now builds on Linux
2023-07-28 10:07:07 +05:30
Kovid Goyal
db0b524aa3
Cleanup compile_python to use facilities from modern python
2023-07-27 11:50:53 +05:30
Kovid Goyal
22dd8ecb62
Apparently people out there want to build kitty with rc Go versions
...
Fixes #6499
2023-07-26 02:14:50 +05:30
Kovid Goyal
2b6b0ea9d5
Make mypy happy
2023-06-22 19:57:15 +05:30
Kovid Goyal
248301f8b3
Cleanup a bunch of shader infrastructure
...
1) No longer us glScissor. It's an awful API and is not available in
Vulkan. Instead the graphics drawing code ensures the graphic is
drawn within the current viewport
2) Use generated code to automatically get the locations of uniforms
from shaders. Greatly simplifies adding new uniforms to a shader.
3) Dont use a VAO for loading graphics vertices. Greatly simplifies
a bunch of book keeping code.
2023-06-22 19:38:05 +05:30
Kovid Goyal
a5a7db6ce5
Add command line options to setup.py to override the python build flags
2023-06-14 10:53:44 +05:30
Kovid Goyal
88a5086f71
Add rudimentary support for cross-compilation
...
Not really tested, actual cross compilers, feel free to send patches.
Fixes #6354
2023-06-13 07:56:16 +05:30
Kovid Goyal
12efff6d08
Fix #6185
2023-04-15 20:43:58 +05:30
Kovid Goyal
912dcc0a6e
Nicer error message when the version of go on the system is too old
2023-04-10 11:31:53 +05:30
Kovid Goyal
073b47a236
Revert #6114
...
Frozen kitty builds dont have python files (they are loaded from a
single mmmaped archive), so the test will prevent any
kittens from being found.
Have make clean remove leftover kittens directories
2023-03-18 15:26:33 +05:30
Kovid Goyal
6794ec1de7
Wire up the new subseq match code
2023-03-14 12:29:44 +05:30
Kovid Goyal
cd8bb462c3
Add KITTY_VCS_REV for release builds as well
2023-02-28 19:41:28 +05:30
Kovid Goyal
935a36f5a8
Allow specifying VCS revision on the build command line
2023-02-28 13:05:43 +05:30
Kovid Goyal
d656017f27
Move SSH askpass implementation into kitten
2023-02-26 08:01:02 +05:30
Kovid Goyal
e41897f93f
Also clean *_generated.bin files
2023-02-23 21:24:59 +05:30
Kovid Goyal
79e99f7e3a
Dont pass PWD to go build
...
Fixes #6051
2023-02-23 14:31:30 +05:30
Jonathan Lestrelin
9ce11499de
Add x-scheme-handler/ssh to mimetypes
...
Add x-scheme-handler/ssh to mimetypes so that kitty open can be used to open ssh links by default.
2023-02-15 16:24:47 +00:00
Kovid Goyal
ce6dacd0d4
Also build 32-bit kitten for Linux
2023-01-31 10:48:56 +05:30
Kovid Goyal
b408abe304
Move compile_commands.json to build directory
2023-01-26 14:25:22 +05:30
Kovid Goyal
6b8e5ea225
Rename kitty-tool to kitten
...
It's easier to type, and cuter.
Also, most, if not all of the TUI parts of
kitty's kittens will eventually be re-written into kitten.
The only downside I can see is that we cant tab complete kitty
anymore, but hopefully there will be less reason to run kitty
from the shell as command line tools migrate to kitten.
Meowrrrr!!!
2023-01-14 15:44:52 +05:30
Kovid Goyal
60310ced05
Also build 32-bit ARM kitty-tool for Linux
2023-01-14 11:20:31 +05:30
Kovid Goyal
7fe5d7b58f
Replace isort with ruff
2023-01-09 16:47:42 +05:30
Kovid Goyal
5c9c9a67bc
Fix make asan
...
Suppress leak detection when running gen-go-code.py otherwise it fails
since python always leaks
2022-12-03 12:34:32 +05:30
Kovid Goyal
375fa73826
Delegate kitty +kitten clipboard to kitty-tool
2022-11-26 20:09:43 +05:30
Kovid Goyal
5eb2142d70
Use a define rather than a generated file for wrapped kittens
2022-11-26 16:16:45 +05:30
Kovid Goyal
4d3f3b5e91
Start moving clipboard kitten to kitty-tool
2022-11-25 12:58:10 +05:30
Kovid Goyal
8d12e60f62
Set a flag available at runtime when cross compiling kitty-tool
2022-11-15 15:04:28 +05:30
Kovid Goyal
e3b22a87e4
Upload static kitty-tool builds when publishing
2022-11-14 17:07:32 +05:30