Zig commit: 0f6fa3f20b3b28958921bd63a9a9d96468455e9c
std: Move std.debug.{TTY.Config,detectTTYConfig} to std.io.tty
Also get rid of the TTY wrapper struct, which was exlusively used as a
namespace - this is done by the tty.zig root struct now.
detectTTYConfig has been renamed to just detectConfig, which is enough
given the new namespace. Additionally, a doc comment had been added.
In the `Zigling.printError` method, use a bold red color for the "error:"
string and a dim red color for the error message.
In the `Zigling.check_output` method, use the old color style.
This is necessary since, when trimLines returns `std.mem.Allocator.Error`,
no error message will be displayed to the user.
An alternative is to use `std.Build.Step.fail`, but using @panic("OOM")
is simpler and consistent with existing code.
Have all error messages handled in a single place (printError), by using
the `std.Build.Step.fail` method. Ensure that the first letter in the
error message is lower case and remove coloring, since it is done in the
`ZiglingStep.printError` method.
Additionally, in the `ZiglingStep.check_test` method, remove trailing
whitespace from stderr.
Remove the `ZiglingStep.eval` method and the src/ipc.zig source code.
Use `Step.evalZigProcess`, instead. This greatly simplifies the code.
Print the error messages and error bundle in `ZiglingStep.make`, both in
case of error and success.
Additionally, remove the `ZiglingStep.is_testing` field, since it is no
longer necessary.
Following the implementation in `std.Build.Step.Compile, add the Kind
type to differentiate between a normal executable and a test executable
running zig tests. Replace `Exercise.run_test` field with `kind`.
Compile the exercise in both the exe and test cases, reducing code
duplication.
Add the `check_output` and `check_test` methods in ZiglingStep, in order
to differentiate the code checking a normal executable and a test
executable.
Update the tests to correctly check both the exe and test cases. Remove
the temporary code added in commit 832772c.