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.
Add the Mode enum, so that ZiglingStep can detect if it was called in
normal mode or in named mode.
Update the help method to print the correct message based on the current
build mode.