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.
Remove the following steps, since they are rarely (if never) used and
only increase the complexity of the `build.zig` file:
- install step (zig build -Dn=n install)
- test step (zig build -Dn=n test)
- start step (zig build -Dn=n start)
The only remaining step is the default zigling step (zig build -Dn=n),
where the user can choose the exercise to solve.
Update the tests. Additionally, update CheckNamedStep and CheckStep so
that they can share the same functions.
Closes#299
Removing the install step will simplify the current code.
Copying the exercise executable to the zig-out directory can be done in
`ZiglingStep.
Closes#298
The special eowyn mode was added in order to improve the performance of
the Eowyn Github workflow.
Remove it, since it adds unnecessary complexity to the `build.zig` file.
Closes#297
Commit dbd42bb (Cleaning up zig build output) broke the unit test.
Always use exit code 2, instead of 0. This is the exit code used by the
build runner to notify the compiler to not report any further
diagnostics.
Move the Ziglings logo from the `build` function scope to the global
scope, and make it public so that tests.zig can use it to find the
number of lines to skip, instead of using an hard coded value.
Fixes#295
Some functions and custom build steps incorrectly used a normal comment.
Use a doc-comment instead.
Additionally, use a present tense verb to describe the action of a
function or custom build step.
Update the code in `zig build install` and `zig build -Dn=n install`, so
that exercises that must be skipped are not installed, since it will
cause an error. Ensure that a skip message is printed.