The new parallel build support in Zig broke the exercise chain, so that
each esercise check is no longer strictly serialized.
1. Add the Dexno option, in order to isolate the chain starting from a
named exercise from the normal chain, thus simplify the code.
The current code have an additional issue: it added 4 x n steps,
making reading the help message or the list of steps very hard.
Add only the `install`, `uninstall`, `zigling`, `test` and `start`
steps. The last three steps match the old steps `n`, `n_test` and
`n_start`.
The default step is zigling (note the singular form).
The `install` step override the builtin install step, showing a
custom description and matches the old `n_install` step.
The uninstall step was added for consistency, so that the
description is consistent.
Setup a new chain starting at `zig build -Dexno=n start` so that it
is stricly serialized.
The behavior should be the same as the old one.
2. Handle the code for all the exercises separately.
Add only the `ziglings step`, making it the default step, in
addition to the install and uninstall steps.
Setup a new chain starting at the first exercise, to that it is
strictly serialized.
The behavior should be the same as the old one.
The current code has a know issue: the messages from the ZiglingStep and
the ones from the compiler compilation progress are interleaved, but each
message is written atomically, due to the use of `std.debug.getStderrMutex()`.
Update the README.md file.
Closes#202
Replace the description of the named_install step from
"Install {s} to zig-cache/bin" to "Copy {s} to prefix path". The latter
has been adapded from the description of the builtin install step.
Ad an empty line before the build_step variable, in order to improve
readability.
Closes#213
Remove the logo step, and use PrintStep for the header step.
The logo step was added as a quick fix after the Builder.addLog function
was removed.
Now the logo is no longer shown when running `zig build -l` or
`zig build -h`.
The version check for Zig 0.6.0 was incorrect since commit
971ab7f (Use a zig build script to run ziglings).
Move compatibility support to a separate file, in order to simplify
build.zig.
In case of incompatible version, exit with code 3 instead of 0, in order
to detect the case of failure in a test (to be implemented).
Remove the use of comptime when checking compatibility at the start of
the build function, since it is not necessary.
Closes#210.
Currently, the logo is always printed when the build script is executed,
resulting in the logo being printed twice with `zig build -h` and
`zig build -l`.
Make the logo a build step, so that the logo is printed to stderr only
when necessary.
Closes#211
1. All exercises should print a trailing \n
2. The build script should always show you _exactly_ what it's looking
for when you get it wrong. Therefore, .output should be set to the
exact expected output.
When I hit 999 exercises, I will finally have reached the ultimate
state of soteriological release and no more exercises will be needed.
The cycle will be complete. All that will be left is perfect quietude,
freedom, and highest happiness.