aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2023-04-23Ex 099 format instructions to 65 columns, wording, examplesDave Gauer2-65/+89
2023-04-19Update 099_formatting.zigChris Boesch1-1/+1
typo fixed
2023-04-19Merge pull request #247 from chrboesch/formattingChris Boesch4-1/+125
added first formatting exercise
2023-04-19added first formatting exerciseChris Boesch4-1/+125
2023-04-19Merge pull request #234 from perillo/improve-ciChris Boesch27-101/+290
Improve CI
2023-04-18Ensure the patches are up-to-date and consistentManlio Perillo14-71/+110
Add the update-patches.py tool. Update all the patches, so that the files are up-to-date and use the same patch file format.
2023-04-18eowyn: run `zig fmt --check` before `zig build`Manlio Perillo1-0/+3
Update the eowyn.sh script to check the healed exercises formatting, before running `zig build`.
2023-04-18Ensure the exercises use the canonical formatManlio Perillo10-30/+127
Add the check-exercises.py tool in the new tools directory. It is used to check that the exercises are correctly formatted, printing on stderr the invalid ones and the diff in the unified format. Update the exercises that don't use the canonical zig fmt format. Update some patches that cause the generated zig file to be incorrectly formatted.
2023-04-18ci: add a CI workflowManlio Perillo2-0/+50
Add a new github workflow named CI. Add a job named compat, checking that and old Zig compiler will not fail with a compiler error, but instead will print an useful error message.
2023-04-18Merge pull request #246 from perillo/build-restore-compatibility-2Chris Boesch2-43/+113
build: restore compatibility with old Zig compilers
2023-04-18build: avoid intermixed messages on the same lineManlio Perillo1-0/+9
In same cases, the progress messages from the compiler are intermixed with the messages printed by ZiglingStep. This intermixing appears in two cases: - when printing, e.g., the message "Checking 0_arrays2.zig..." - when printing the compiler errors Closes #230
2023-04-18build: don't print errors in ZiglingStep.evalManlio Perillo1-14/+33
Move the code for printing compiler errors and messages to the new ZiglingStep.printErrors method. Call printErrors in the Zigling.doCompile method, both in the normal and error flow. When handling an error from the Zig IPC, add the case when the compiler was unable to return the executable path. Before using the IPC, the error was "The following command exited with error code 1" now it is "The following command failed to communicate the compilation result"
2023-04-18build: restore compatibility support againManlio Perillo2-32/+74
Commit e214c44 (build: update ZiglingStep to the new API) broke again the compatibility support for old compilers, due to the use of the multi-object for loop syntax. Move the Zig IPC support code to src/ipc.zig. Use the while statement, instead of the for statement.
2023-04-13Merge pull request #238 from perillo/update-zigling-stepChris Boesch1-24/+148
Update ZiglingStep
2023-04-13build: update ZiglingStep to the new APIManlio Perillo1-23/+147
Update the code to the breaking change in ziglang commit c96cb98ad (CLI: remove --enable-cache option). Replace the --enable-cache option with the --listen=- option and use the Zig IPC to get the path to the executable. Closes #236
2023-04-13build: disable special case for `zig build -Dhealed`Manlio Perillo1-1/+1
The special case was added because it was used by the Eowyn github workflow. As a side effect, however, it prevents testing the normal case used by users. Disable it, until a better solution is found.
2023-04-13Update README.mdChris Boesch1-8/+8
2023-04-13Merge pull request #237 from chrboesch/mainChris Boesch1-0/+1
added cname
2023-04-12Update CNAMEChris Boesch1-1/+1
2023-04-12Update CNAMEChris Boesch1-1/+1
2023-04-12Create CNAMEChris Boesch1-0/+1
2023-04-12Update README.mdChris Boesch1-1/+1
url fixed
2023-04-12Merge pull request #235 from perillo/update-to-version-0.11.0-dev.2560Chris Boesch3-8/+9
Update the code to the new zig version
2023-04-12Update the code to the new zig versionManlio Perillo3-8/+9
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-12Update 096_memory_allocation.zigChris Boesch1-0/+1
formatting
2023-04-12Update 097_bit_manipulation.zigChris Boesch1-0/+1
formatting
2023-04-12Update 098_bit_manipulation2.zigChris Boesch1-0/+1
formatting
2023-04-12Update README.mdChris Boesch1-1/+1
set check for 'bit manipulation'
2023-04-12Merge pull request #233 from chrboesch/bit_manipulationChris Boesch3-0/+71
added the second exercise for bit manipulation
2023-04-12added the second exercise for bit manipulationChris Boesch3-0/+71
2023-04-12Merge pull request #232 from chrboesch/bit_manipulationChris Boesch3-0/+102
Bit manipulation
2023-04-12added first exercise for bit manipulationChris Boesch2-0/+98
2023-04-12added first exercise for bit manipulationChris Boesch1-0/+4
2023-04-12Merge pull request #224 from perillo/improve-build-moreChris Boesch2-71/+338
build: enable full parallelism when -Dhealed is set
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 Perillo2-3/+3
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 Perillo2-7/+196
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-09Update README.mdChris Boesch1-1/+1
2023-04-09Merge pull request #226 from chrboesch/adjust_advanceChris Boesch1-4/+16
Adjustment of the 'Advanced usage' in the README
2023-04-09closes https://github.com/ratfactor/ziglings/issues/223Chris Boesch1-4/+16
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-07Update README.mdChris Boesch1-2/+2
changed zig version number
2023-04-07Merge pull request #212 from perillo/improve-buildChris Boesch3-82/+174
build: make the logo a build step
2023-04-07Insert current zig version for compatiblity!Chris Boesch1-1/+1
This is primarily to make users aware that there has been a change in the call for individual exercises.
2023-04-07help text for parameters adaptedChris Boesch1-1/+1
2023-04-07build: restore the exercise chainManlio Perillo2-32/+67
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