Cathode Progress Report - February 2024 #153
Pinned
alexrp
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
This is part of a series of progress reports that are posted with a monthly-ish cadence when there's notable progress made on the project.
v0.12.42 Release
v0.12.42 saw some major improvements to terminal drivers and child process APIs.
The biggest change here is the introduction of a new Vezel.Cathode.Native library written in C (#43). This library now contains all platform-specific interop code (sans #141) for terminal drivers. This makes it easier for us to port Cathode to new platforms in the future and cuts down on some code duplication we had for Unix platforms. But most importantly, it comes with these user-facing improvements:
SIGSEGV
orSIGILL
), and there's literally no chance for us to do so forSIGKILL
.ReadConsole
or poll for text input microsoft/terminal#12143.Note that Vezel.Cathode.Native is not yet available on musl-based systems such as Alpine Linux. See #142 for details. This means that if you're using Cathode on such a system, you will want to hold off on upgrading for now.
A number of improvements were made to the child process APIs:
Run()
andRunIn()
convenience methods onChildProcess
.ChildProcessException
is thrown if something goes wrong with starting or killing a process, while the newChildProcessErrorException
(deriving fromChildProcessException
) is thrown for a non-zero exit code ifChildProcessBuilder.ThrowOnError
is set.ChildProcess.Kill()
to handleSystemException
instead of the more specificInvalidOperationException
(ChildProcess.Kill()
can let internal exceptions through #139).DuplicateHandle
call failed, a variety of exceptions (deriving fromSystemException
) could be thrown. None of these are interesting to the caller.ChildProcessReader
to not unnecessarily bubble upIOException
s when the child process closes the pipe (ChildProcessReader
can bubble up internal exceptions toChildProcess.Completion
#138).ChildProcessReader
to handle cancellation of the child process correctly.Finally, we added Black Box, Contour, Guake, Tilix, tmux, Xfce Terminal, and Yakuake to the list of supported terminal emulators (#134).
Future Plans
There are no changes to our plans for v1.0 and v2.0 since #136.
Beta Was this translation helpful? Give feedback.
All reactions