129 Commits (1ee8aabcf3457fe5951958adc11a7c8ca2f3476a)

Author SHA1 Message Date
Manlio Perillo 1ee8aabcf3 build: simplify the code when solving all the exercises
Initialize the first step in the chain to the header_step, instead of
making the code more complex handling the first step as a special case
in the for loop.
1 year ago
Manlio Perillo be782af7a3 build: restore compatibility support
Commit 0d56ba3 (build: restore the exercise chain) broke the
compatibility support for old compilers, due to the use of the
multi-object for loop syntax.

Use the normal for loop syntax; the change still keep the code readable.

Use the variable `n`, instead of `i`, when referring to the exercise
number; this will improve the readability.

Closes #227
1 year ago
Manlio Perillo 647a24afae build: improve PrintStep, SkipStep and PatchStep names
Use lover case for the step names.

Add the exercise name for the SkipStep and PatchStep step name.
1 year ago
Manlio Perillo c656536d3f build: simplify code and add tests
Simplify the code finding the exercise number from the exercise index,
when the -Dn option is set.  This is now possible since the exercise
numbers have no holes.

Add the validate_exercises function to check that exercise number are in
the correct order, and call it at the start of the build function.

Add tests, with 2 test cases.
1 year ago
Manlio Perillo d43f19ded8 build: add support for skipping exercises
Currently, exercises not working with the current Zig compiler are
commented. This is problematic, since the exercise key and exercise
index are no longer consistent.

Add the skip field to the Excercise struct.  Update ZiglingStep to
support it and add a new SkipStep step to support it when using the
standard build step.
1 year ago
Manlio Perillo 67f369484c build: ensure the exercise links libc, when needed
When running, as an example, `zig build -Dhealed -Dn=93 test`, the build
fails, because the `test` step use the standard CompileStep, instead of
ZiglingStep.

Ensure that exercises using libc are correctly built.

Closes #229
1 year ago
Manlio Perillo 1cf910fb51 build: enable full parallelism when -Dhealed is set
The eowyn.sh script is used in a github workflow, but after
commit 0d56ba3 (build: restore the exercise chain), the github action
will take more time to complete.

Enable full build parallelism, when -Dhealed is true and -Dn is null.
Use the standard CompileStep and RunStep, instead of ZiglingStep.

On my PC, this change reduces the build time by about 30%.
1 year ago
Chris Boesch 0fd80d6cba help text for parameters adapted 1 year ago
Manlio Perillo 59e28987da build: restore the exercise chain
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
1 year ago
Manlio Perillo 75a1600626 build: fix the description of the named_install step
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
1 year ago
Manlio Perillo 36e3f577ca build: replace the logo step with the header step
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`.
1 year ago
Manlio Perillo 45713ec8ab build: restore support for Zig 0.6.0
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.
1 year ago
Manlio Perillo dd15cb94fd build: make the logo a build step
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 year ago
Chris Boesch 3b85c24694 workaround for parallel processing of the build steps 2 years ago
Chris Boesch 78e856f602 first test for new build system 2 years ago
Sean Aubin f08af9b242 move memory allocation example to 095 2 years ago
Sean Aubin 1be1d854a8 first draft of memory allocation exercise 2 years ago
Chris Boesch 101151f3f1 exercise for new for-loops 2 years ago
Sean Aubin 20a0fcdd9a fix typos/grammar in 093_hello_c.zig
- output a text -> output text
- In Zig -> add comma
- result ist -> result is
- remove extra whitespace
2 years ago
Chris Boesch e7326dc5f9 dev.1711 - switched to multi-object-for-loops 2 years ago
Chris Boesch 1d10a062e2 check for dev1650 and some minor polish 2 years ago
Chris Boesch 23f2cc88d2 added C math exercise 2 years ago
Chris Boesch dc187889c1 some improvements in the description 2 years ago
Chris Boesch dce731a0ec Merge branch 'main' into hello_c 2 years ago
Chris Boesch abdcc77984 Merge pull request #181 from chrboesch/interfaces
Interfaces
2 years ago
Dave Gauer 662086cb89 Added story/explanation to new ex. 092 2 years ago
Chris Boesch 4cf3bd63a2 added the first C exercise 2 years ago
Chris Boesch 561484280c update to version 1636 2 years ago
Chris Boesch 5007e7330f updated to version 011.0-dev.1602 2 years ago
Chris Boesch 35c5d6b976 added 092_interfaces to build 2 years ago
Chris Boesch 763ee7955d Merge pull request #177 from DameonSmith/patch-1
Updating build.zig to support new API change.
2 years ago
Chris Boesch 7ed121ee12 new build number added 2 years ago
Chris Boesch 4056f0cb21 Merge pull request #178 from chrboesch/issue176
removed trim of trailing spaces
2 years ago
Chris Boesch 45aa554046 removed trim of trailing spaces 2 years ago
Dameon Smith 48ee92a9a5 Updating build.zig to support new API change.
I updated zig today and the addExecutable API appears to have changed with it. I was able to get the build to run again with this change.
2 years ago
Chris Boesch 894456a3cc update to zig dev release 1501 2 years ago
Chris Boesch 9d9dc1dacf changed 'the_end' to '999_the_end' 2 years ago
Chris Boesch 007f4d655b the_end function added 2 years ago
Chris Boesch 7fb9b199a3 trim of leading spaces added 2 years ago
Chris Boesch 68af87518f Merge branch 'main' into check_output_len 2 years ago
Chris Boesch 22289d6ad1 disable the async excercises because of temporary not available in zig
compiler
2 years ago
Tobias Simetsreiter e978b09a0a output fixes to 16 and 19 2 years ago
Tobias Simetsreiter eb24c6291a exit non zero on error 2 years ago
Tobias Simetsreiter ae193c08c3 exclude trailing newlines and spaces 2 years ago
Tobias Simetsreiter 980a278ccc add check for trailing output characters 2 years ago
Dave Gauer 5a920ac48c README tweaks and another ver bump 2 years ago
Sebastian Aigner 74ce482711 Remove parameter in call to NativeTargetInfo.detect
Compatibility with ziglang/zig@3ee01c14ee
2 years ago
Dave Gauer f59e07b303 Bump version for Ex 074 fix from upstream :-) 2 years ago
Dave Gauer 2656b26c83 Update Zig development build minimum version 2 years ago
Jan Brauer 6cb0cb11ff Use stage 1 compiler for async exercises 2 years ago