aboutsummaryrefslogtreecommitdiff
path: root/build.zig
AgeCommit message (Collapse)AuthorFilesLines
2023-04-12Merge pull request #235 from perillo/update-to-version-0.11.0-dev.2560Chris Boesch1-5/+5
Update the code to the new zig version
2023-04-12Update the code to the new zig versionManlio Perillo1-5/+5
Update the code to the breaking change in ziglang commit 60eabc0ec (std.Build.CompileStep: remove run() and install()) Update the zig version in the README.md file.
2023-04-12added the second exercise for bit manipulationChris Boesch1-0/+4
2023-04-12added first exercise for bit manipulationChris Boesch1-0/+4
2023-04-11build: make PrintStep thread safeManlio Perillo1-6/+4
Update PrintStep to always printing to stderr, using std.debug.print, so that the message is written atomically. Note that currently it is not an issue, since PrintStep prints the message before everything else.
2023-04-11build: simplify the code when solving all the exercisesManlio Perillo1-9/+3
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.
2023-04-11build: restore compatibility supportManlio Perillo1-8/+11
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
2023-04-11build: improve PrintStep, SkipStep and PatchStep namesManlio Perillo1-2/+2
Use lover case for the step names. Add the exercise name for the SkipStep and PatchStep step name.
2023-04-11build: simplify code and add testsManlio Perillo1-7/+29
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.
2023-04-11build: add support for skipping exercisesManlio Perillo1-45/+103
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.
2023-04-11build: ensure the exercise links libc, when neededManlio Perillo1-0/+3
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
2023-04-08build: enable full parallelism when -Dhealed is setManlio Perillo1-1/+23
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%.
2023-04-07help text for parameters adaptedChris Boesch1-1/+1
2023-04-07build: restore the exercise chainManlio Perillo1-23/+65
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
2023-04-05build: fix the description of the named_install stepManlio Perillo1-2/+2
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
2023-04-04build: replace the logo step with the header stepManlio Perillo1-5/+3
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`.
2023-04-03build: restore support for Zig 0.6.0Manlio Perillo1-48/+10
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.
2023-04-02build: make the logo a build stepManlio Perillo1-1/+33
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
2023-03-19workaround for parallel processing of the build stepsChris Boesch1-32/+26
2023-03-19first test for new build systemChris Boesch1-61/+59
2023-03-08move memory allocation example to 095Sean Aubin1-4/+4
2023-03-08first draft of memory allocation exerciseSean Aubin1-0/+4
2023-03-04exercise for new for-loopsChris Boesch1-1/+5
2023-02-28fix typos/grammar in 093_hello_c.zigSean Aubin1-1/+1
- output a text -> output text - In Zig -> add comma - result ist -> result is - remove extra whitespace
2023-02-21dev.1711 - switched to multi-object-for-loopsChris Boesch1-1/+1
2023-02-19check for dev1650 and some minor polishChris Boesch1-1/+1
2023-02-18added C math exerciseChris Boesch1-1/+6
2023-02-16some improvements in the descriptionChris Boesch1-4/+4
2023-02-16Merge branch 'main' into hello_cChris Boesch1-0/+4
2023-02-16Merge pull request #181 from chrboesch/interfacesChris Boesch1-0/+4
Interfaces
2023-02-15Added story/explanation to new ex. 092Dave Gauer1-1/+1
2023-02-15added the first C exerciseChris Boesch1-0/+14
2023-02-15update to version 1636Chris Boesch1-3/+3
2023-02-12updated to version 011.0-dev.1602Chris Boesch1-5/+3
2023-02-11added 092_interfaces to buildChris Boesch1-4/+5
2023-02-04Merge pull request #177 from DameonSmith/patch-1Chris Boesch1-2/+6
Updating build.zig to support new API change.
2023-02-04new build number addedChris Boesch1-1/+1
2023-02-02Merge pull request #178 from chrboesch/issue176Chris Boesch1-3/+3
removed trim of trailing spaces
2023-02-02removed trim of trailing spacesChris Boesch1-3/+3
2023-02-01Updating build.zig to support new API change.Dameon Smith1-1/+5
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.
2023-01-31update to zig dev release 1501Chris Boesch1-1/+1
2023-01-22changed 'the_end' to '999_the_end'Chris Boesch1-1/+1
2023-01-21the_end function addedChris Boesch1-0/+4
2023-01-21trim of leading spaces addedChris Boesch1-3/+3
2023-01-21Merge branch 'main' into check_output_lenChris Boesch1-44/+46
2023-01-21disable the async excercises because of temporary not available in zigChris Boesch1-44/+46
compiler
2022-11-16output fixes to 16 and 19Tobias Simetsreiter1-3/+3
2022-11-16exit non zero on errorTobias Simetsreiter1-1/+1
2022-11-16exclude trailing newlines and spacesTobias Simetsreiter1-7/+9
2022-11-16add check for trailing output charactersTobias Simetsreiter1-1/+1