677 Commits (e706c4b42cda7724a466538c503ce94e99aaa52c)
 

Author SHA1 Message Date
Chris Boesch e706c4b42c Merge pull request #290 from kimshrier/exercise_096_fix_example
Fix reference to slice_ptr in example code
1 year ago
Chris Boesch f917f50be0 Merge pull request #289 from kimshrier/exercise_092_typo
Remove repeated word "with"
1 year ago
Chris Boesch 151abb4ca1 Merge pull request #288 from kimshrier/exercise_076_typo
Add missing word "of"
1 year ago
Chris Boesch 2b17c3dc39 Merge pull request #287 from kimshrier/exercise_072_typo
Add missing word "to"
1 year ago
Chris Boesch 1fccbc439f Merge pull request #286 from kimshrier/exercise_001_typo
fix typo well -> will
1 year ago
Kim SHrier b072c0014c Fix reference to slice_ptr in example code 1 year ago
Kim SHrier 7af542bffb Remove repeated word "with" 1 year ago
Kim SHrier cc9f68c4e5 Add missing word "of" 1 year ago
Kim SHrier 6bdc1caaae add missing word "to" 1 year ago
Kim SHrier d82396c174 fix typo well -> will 1 year ago
Chris Boesch a446d67992 Merge pull request #285 from chrboesch/improve_instruction
Improve instructions.
1 year ago
Chris Boesch b6b78c628c Merge branch 'main' into improve_instruction 1 year ago
Chris Boesch a5485bb8a2 Improve instructions. 1 year ago
Chris Boesch df833e61e8 Merge pull request #284 from perillo/improve-exercise-type-more
Improve Exercise type more
1 year ago
Manlio Perillo 3f81cdf3ac build: improve Exercise.addExecutable
Replace the file_path variable with path.
1 year ago
Manlio Perillo 1dd5852bec build: use multiline string literals when necessary
Update the output and hint fields in the `exercises` slice to use a
multiline string literal when the string have multiple lines or use the
`"` character.  This will greatly improve readability.
Additionally, remove the trailing whitespace on each line and check it
in the validate_exercises function.

Update the output comparison logic in ZiglingStep, since the current
code assumes that the string has only one line.

Update test/tests.zig to use the new `CheckNamedStep` in test case 1,
since RunStep.StdIo.Check is no longer able to correctly check the
output.

Fixes #283
1 year ago
Manlio Perillo 397c6671c0 build: remove assertion in `Exercise.key`
Use `orelse unreachable` instead, in order to simplify the code.

Fix doc-comments in the Exercise type.
1 year ago
Manlio Perillo be43e2d010 build: make `Exercise.hint` optional
Use an optional type, instead of an empty string, since it is more
idiomatic.
1 year ago
Dave Gauer e5341b91c1 Ex 101: Magic bags better than buckets for metaphors 1 year ago
Chris Boesch 1c73ad29a7 Merge pull request #281 from perillo/add-healed-path-option
Add the -Dhealed-path option
1 year ago
Manlio Perillo 0cd86d2f9b build: add the healed-path option
This is necessary in the unit tests, to ensure each test case use a
different exercises directory.

Update test/tests.zig to use the new healed-path option, ensuring that
each temp directory is removed.

In test case 3, 4 and 5, move case_step as the first step in the
dependency chain.  This will improve the build summary tree.

In test case 5, remove the dependency to heal_step, since it is not
necessary.
1 year ago
Chris Boesch e273dd298e Merge pull request #280 from arnon4/patch-1
Fixed example syntax for inline else
1 year ago
Arnon 25611b8312 Fixed example syntax for inline else 1 year ago
Dave Gauer f2b3e93402 Merge branch 'main' of github.com:ratfactor/ziglings 1 year ago
Dave Gauer 8a3d722a33 Ex 001 remove ancient script reference + wording 1 year ago
Manlio Perillo eda73b2fa8 test: remove obsolete comment in the heal function
Remove the comment about using POSIX patch variant, since we now use the
-s option.
1 year ago
Manlio Perillo 277c95db7a test: fix doc-comments
CheckStep, FailStep, fail, HealStep and heal incorrectly used a normal
comment, instead of a doc-comment.

Additionally, improve the documentation for FailStep and HealStep.
1 year ago
Manlio Perillo 5c488a1402 test: improve test case 1 and 2
In test case 1 and 2, remove the `i` variable and use `ex.number()`
instead.

In test case 2, when checking the exercise output from stderr, also
check that stdout is empty and vice versa.
1 year ago
Dave Gauer 7a44e4d342 Merge pull request #265 from Arya-Elfren/methods-clarification
Clarify the methods syntax sugar & a bit more
1 year ago
Dave Gauer 8345197f54 Merge pull request #264 from Arya-Elfren/float-clarification
Clarify `f16` maths - closes #204
1 year ago
Chris Boesch a2b7fbe3e5 Merge pull request #279 from perillo/refactor-zigling-step-2
Refactor ZiglingStep
1 year ago
Manlio Perillo a5d93c0b20 build: improve coding style in ZiglingStep
- Use an anonymous struct when initializing std.Build.Step.
  - Rename the builder parameter in the create method to b
  - Avoid lines too long

Additionally:
  - In the run method, rename output to raw_output in order to make the
    next variable names shorter.
  - In the compile method, rename zig_file to path.
1 year ago
Manlio Perillo 771b499cbc build: use @panic("OOM") instead of unreachable
The code in ZiglingStep copied the error handling used in std.Build in
the past.

Use @panic("OOM") when the error is caused by the allocator failing to
allocate memory.
1 year ago
Manlio Perillo c6c6a32270 build: improve the exercise output check
Make the error message consistent with the one in std.Build.RunStep,
using the "=" character instead of "-" and correctly aligning the text.
1 year ago
Manlio Perillo feeba51940 build: don't use @This() in ZiglingStep
Use ZiglingStep, instead.

This is consistent with the coding style in std.Build.
1 year ago
Manlio Perillo 3ec978d73f build: remove ZiglingStep.builder field
It is not necessary, since the builder is available in self.step.owner.
1 year ago
Manlio Perillo 11d8468539 build: use Child.exec in ZiglingStep.run
Update the run method to use Child.exec, instead of Child.spawn followed
by Child.wait.
This simplifies the code.
1 year ago
Manlio Perillo 40cbee8fa2 build: fix incorrect error handling in ZiglingStep.compile
When handling the error from the eval method, some possible errors are
ignored.  The make method will only print the exercise hint and the
help message.

Print the unexpected error message, in the else prong.
Note that FileNotFound can also be considered unexpected.
1 year ago
Manlio Perillo 27b941fdaf build: remove the ZiglingStep.makeInternal method
Rename the doCompile method to compile and add the run method.
The two methods are now called from the make method.

Add the help method, since the error handling of compile and run methods
are now separate.

Remove the obsolete comment for the compile method.
1 year ago
Chris Boesch 72a6287a5f Merge pull request #275 from perillo/heal-only-in-test
Heal only in test
1 year ago
Dave Gauer e2f3a5e519 Added Ex 101 "for loops part 5" (Closes #271)
Also gave a shot at explaining data-oriented design, a Zig "hot
topic" ever since the red Hawaiian shirt talk(s).
1 year ago
Manlio Perillo 7a40c4584e Restore unit tests 1 year ago
Manlio Perillo 74b48192e4 test: don't run heal during configuration phase
In order to simplify the code, the heal function is called during the
configuration phase, thus resulting in the function being always called
when the build.zig file is run.

This behavior unfortunately causes a serious issue when the user fix a
broken exercise and, during the next step, the heal function tries to heal
the fixed exercise resulting in GNU patch assuming an attempt to reverse
a patch, waiting for input from the terminal.

Run the heal function from the new HealStep step, so that it is called
only during tests.

Rename the outdir constant to work_path, for consistency with build.zig.

Fixes #272
1 year ago
Chris Boesch f9aec283c8 Merge pull request #273 from chrboesch/patch_error
cli tests removed to solve 272
1 year ago
Chris Boesch f02389e925 comment for the issue added 1 year ago
Chris Boesch 371a8637b3 unit tests temporarily disabled 1 year ago
Chris Boesch 44d51eb9ed cli tests removed to solve 272 1 year ago
Chris Boesch e9d0ab3784 Merge pull request #270 from perillo/improve-exercise-type
Improve the Exercise type
1 year ago
Manlio Perillo a86d4c2795 build: don't override the top level steps
When running `zig build -Dn=n`, the install and uninstall steps where
overridden in order to improve the description.

In recent version of Zig this is no longer allowed.
1 year ago
Manlio Perillo 5c20e2b553 build: rename Exercise.baseName to name
The name "baseName" is confusing, since it refers to the UNIX basename
command, and not to the basename function in some programming languages
including Zig.

Use the std.fs.path.stem function to remove the file extension, instead
of slicing.

Remove the use of the assertion, since it is no longer necessary.
Instead, add a check to ensure that the exercise must be a Zig source
file in the validate_exercises function.

Update the validate_exercises function to check the last exercise, too.
1 year ago