mirror of
https://github.com/ziglang/zig.git
synced 2025-12-06 14:23:09 +00:00
The compiler now provides a server protocol for an interactive session with another process. The build runner uses this protocol to communicate compilation errors semantically from zig compiler subprocesses to the build runner. The protocol is exposed via stdin/stdout, or on a network socket, depending on whether the CLI flag `--listen=-` or e.g. `--listen=127.0.0.1:1337` is used. Additionally: * add the zig version string to the build runner cache prefix * remove --prominent-compile-errors CLI flag because it no longer does anything. Compilation errors are now unconditionally displayed at the bottom of the build summary output when using the terminal-based build runner. * Remove the color field from std.Build. The build steps are no longer supposed to interact with stderr directly. Instead they communicate semantically back to the build runner, which has its own logic about TTY configuration. * Use the cleanExit() pattern in the build runner. * Build steps can now use error.MakeFailed when they have already properly reported an error, or they can fail with any other error code in which case the build runner will create a simple message based on this error code.
33 lines
1.1 KiB
Zig
33 lines
1.1 KiB
Zig
pub const Message = struct {
|
|
pub const Header = extern struct {
|
|
tag: Tag,
|
|
/// Size of the body only; does not include this Header.
|
|
bytes_len: u32,
|
|
};
|
|
|
|
pub const Tag = enum(u32) {
|
|
/// Tells the compiler to shut down cleanly.
|
|
/// No body.
|
|
exit,
|
|
/// Tells the compiler to detect changes in source files and update the
|
|
/// affected output compilation artifacts.
|
|
/// If one of the compilation artifacts is an executable that is
|
|
/// running as a child process, the compiler will wait for it to exit
|
|
/// before performing the update.
|
|
/// No body.
|
|
update,
|
|
/// Tells the compiler to execute the executable as a child process.
|
|
/// No body.
|
|
run,
|
|
/// Tells the compiler to detect changes in source files and update the
|
|
/// affected output compilation artifacts.
|
|
/// If one of the compilation artifacts is an executable that is
|
|
/// running as a child process, the compiler will perform a hot code
|
|
/// swap.
|
|
/// No body.
|
|
hot_update,
|
|
|
|
_,
|
|
};
|
|
};
|