Commit graph

689 commits

Author SHA1 Message Date
Manlio Perillo
14545778b2 build: improve code formatting
Avoid too long lines or too many line breaks.
2023-05-09 11:11:11 +02:00
Manlio Perillo
ea4144a416 build: add the dumpArgs function
Use it in Zigling.compile, in order to reduce code duplication.
2023-05-09 11:11:03 +02:00
Manlio Perillo
9de89f6d60 build: fix doc-comments
Some functions and custom build steps incorrectly used a normal comment.
Use a doc-comment instead.

Additionally, use a present tense verb to describe the action of a
function or custom build step.
2023-05-09 11:07:22 +02:00
Manlio Perillo
dd5df9f7cc build: use the blank identifier in the parameter list
Instead of marking a parameter as unused inside the function body.
2023-05-09 11:07:22 +02:00
Manlio Perillo
bb42451b0f build: use self when using @fieldParentPtr
Update PrintStep and SkipStep to use the `self` variable when getting
the parent pointer from Step.

This convention is used in `std.Build`.
2023-05-09 11:07:22 +02:00
Manlio Perillo
4ae67ebf1b build: don't install skipped exercises
Update the code in `zig build install` and `zig build -Dn=n install`, so
that exercises that must be skipped are not installed, since it will
cause an error.  Ensure that a skip message is printed.
2023-05-09 11:07:22 +02:00
Manlio Perillo
185a40eb75 build: fix zig build -Dhealed install
The command fails because the path to the exercises directory was
incorrectly set to "exercises" instead of `work_path`.

The bug was introduced in commit b56bb7b
(build: enable full parallelism when -Dhealed is set).

Remove the comment about not using multi-object loop, since it is
confusing.
2023-05-09 11:07:22 +02:00
Dave Gauer
c4f2c62534 Cleaning up zig build output
* Only show actual Zig compiler errors, not build internals to
  confused and dismay.

* Remove advanced usage instructions not needed in normal
  operation.
2023-05-08 09:20:27 -04:00
Chris Boesch
ded01c6adf Merge pull request #292 from kimshrier/exercise_099_typo
Add missing word "a"
2023-05-07 17:45:13 +02:00
Chris Boesch
94f52b9298 Merge pull request #291 from kimshrier/exercise_098_typo
Improve wording in some comments
2023-05-07 17:44:07 +02:00
Chris Boesch
e706c4b42c Merge pull request #290 from kimshrier/exercise_096_fix_example
Fix reference to slice_ptr in example code
2023-05-07 17:40:33 +02:00
Chris Boesch
f917f50be0 Merge pull request #289 from kimshrier/exercise_092_typo
Remove repeated word "with"
2023-05-07 17:39:21 +02:00
Chris Boesch
151abb4ca1 Merge pull request #288 from kimshrier/exercise_076_typo
Add missing word "of"
2023-05-07 17:38:11 +02:00
Chris Boesch
2b17c3dc39 Merge pull request #287 from kimshrier/exercise_072_typo
Add missing word "to"
2023-05-07 17:37:33 +02:00
Chris Boesch
1fccbc439f Merge pull request #286 from kimshrier/exercise_001_typo
fix typo well -> will
2023-05-07 17:36:34 +02:00
Kim SHrier
2b2c396237 Add missing word "a" 2023-05-07 03:33:55 -06:00
Kim SHrier
b10e478398 Improve wording in some comments 2023-05-07 03:24:10 -06:00
Kim SHrier
b072c0014c Fix reference to slice_ptr in example code 2023-05-07 03:08:03 -06:00
Kim SHrier
7af542bffb Remove repeated word "with" 2023-05-07 02:46:07 -06:00
Kim SHrier
cc9f68c4e5 Add missing word "of" 2023-05-07 02:04:30 -06:00
Kim SHrier
6bdc1caaae add missing word "to" 2023-05-07 01:38:28 -06:00
Kim SHrier
d82396c174 fix typo well -> will 2023-05-06 15:38:13 -06:00
Chris Boesch
a446d67992 Merge pull request #285 from chrboesch/improve_instruction
Improve instructions.
2023-05-06 20:50:20 +02:00
Chris Boesch
b6b78c628c Merge branch 'main' into improve_instruction 2023-05-06 20:22:20 +02:00
Chris Boesch
a5485bb8a2 Improve instructions. 2023-05-06 20:14:30 +02:00
Chris Boesch
df833e61e8 Merge pull request #284 from perillo/improve-exercise-type-more
Improve Exercise type more
2023-05-06 19:15:14 +02:00
Manlio Perillo
3f81cdf3ac build: improve Exercise.addExecutable
Replace the file_path variable with path.
2023-05-06 18:18:08 +02:00
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
2023-05-06 18:12:04 +02:00
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.
2023-05-06 12:02:21 +02:00
Manlio Perillo
be43e2d010 build: make Exercise.hint optional
Use an optional type, instead of an empty string, since it is more
idiomatic.
2023-05-06 11:50:42 +02:00
Dave Gauer
e5341b91c1 Ex 101: Magic bags better than buckets for metaphors 2023-05-05 18:34:36 -04:00
Chris Boesch
1c73ad29a7 Merge pull request #281 from perillo/add-healed-path-option
Add the -Dhealed-path option
2023-05-05 17:44:05 +02:00
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.
2023-05-05 16:22:50 +02:00
Chris Boesch
e273dd298e Merge pull request #280 from arnon4/patch-1
Fixed example syntax for inline else
2023-05-05 16:03:05 +02:00
Arnon
25611b8312 Fixed example syntax for inline else 2023-05-05 13:11:20 +03:00
Dave Gauer
f2b3e93402 Merge branch 'main' of github.com:ratfactor/ziglings 2023-05-04 19:05:36 -04:00
Dave Gauer
8a3d722a33 Ex 001 remove ancient script reference + wording 2023-05-04 19:04:58 -04:00
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.
2023-05-04 19:01:48 +02:00
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.
2023-05-04 18:48:35 +02:00
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.
2023-05-04 16:34:17 +02:00
Dave Gauer
7a44e4d342 Merge pull request #265 from Arya-Elfren/methods-clarification
Clarify the methods syntax sugar & a bit more
2023-05-04 08:25:28 -04:00
Dave Gauer
8345197f54 Merge pull request #264 from Arya-Elfren/float-clarification
Clarify `f16` maths - closes #204
2023-05-04 08:22:54 -04:00
Chris Boesch
a2b7fbe3e5 Merge pull request #279 from perillo/refactor-zigling-step-2
Refactor ZiglingStep
2023-05-03 22:05:51 +02:00
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.
2023-05-03 18:13:55 +02:00
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.
2023-05-03 18:13:55 +02:00
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.
2023-05-03 18:13:55 +02:00
Manlio Perillo
feeba51940 build: don't use @This() in ZiglingStep
Use ZiglingStep, instead.

This is consistent with the coding style in std.Build.
2023-05-03 18:13:55 +02:00
Manlio Perillo
3ec978d73f build: remove ZiglingStep.builder field
It is not necessary, since the builder is available in self.step.owner.
2023-05-03 18:13:55 +02:00
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.
2023-05-03 18:13:55 +02:00
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.
2023-05-03 18:13:55 +02:00