How do you prevent ziglings from running previously solved exercises?
davidscholberg opened this issue · 4 comments
Every time I run zig build
, the previously solved exercises are all compiled and checked as well as the current one. This was fine at first, but now that I'm on exercise 22, the output is getting quite cluttered and the compile time is becoming noticeable.
I had a look at the readme and tried to run zig build -Dn=22 start
and got the following output:
no step named 'start'. Access the help menu with 'zig build -h'
error: the following build command failed with exit code 1:
C:\Users\dhscholb\src\git\ziglings\zig-cache\o\4cb658a5bed91aa4d15dc89b35fbe827\build.exe C:\Users\dhscholb\Documents\Standalone Executables\zig-current\zig.exe C:\Users\dhscholb\src\git\ziglings C:\Users\dhscholb\src\git\ziglings\zig-cache C:\Users\dhscholb\AppData\Local\zig -Dn=22 start
Running zig build -l
yields:
ziglings (default) Check all ziglings
test Run all the tests
test-cli Test the command line interface
Is there still a way to prevent previously solved exercises from being compiled and checked other than specifying each exercise number manually?
zig version: 0.12.0-dev.152+411462e1c
ziglings version: 1e9124b333310b982236d86e2928bbd44f93634e
os: windows 11
Just run zig build -Dn=22
for a single exercise and increase the number after finishing. I'll have to take a look into why start
doesn't work.
@chrboesch start
step is no longer available but there is still a reference in the README file.
Is there still a way to prevent previously solved exercises from being compiled and checked other than specifying each exercise number manually?
zig version:
0.12.0-dev.152+411462e1c
ziglings version:1e9124b333310b982236d86e2928bbd44f93634e
os: windows 11
Unfortunately it is not easy to implement, since the Zig build file is declarative.
In a local branch I have a draft implementation (using the build cache), but it has several problems.
For anyone that wants a more automated solution, you can use this nushell script. You can save it as runner.nu
in the root of the ziglings directory, and then run it like so: nu runner.nu 5 10
. This will run exercises 5 through 10.
# Change to the path of your dev zig executable
let zig_path = "~/Downloads/zig-dev/zig"
def main [start: int, end: int] {
print $"Running ziglings exercises from ($start) to ($end)"
let rng = $start..$end;
for i in $rng {
^$zig_path build $"-Dn=($i)"
}
}