Commit graph

708 commits

Author SHA1 Message Date
Manlio Perillo
d78b51ce3c build: remove unused declarations
Remove the `Exercise.addExecutable` method and the `SkipStep` struct, since
they are no longer used.
2023-05-14 17:22:03 +02:00
Manlio Perillo
f2c4d168a0 build: show the logo in named mode
When running `zig build -Dn=n`, ensure that the logo is printed.

Update the tests.

Closes #214
2023-05-14 17:22:03 +02:00
Manlio Perillo
5bb9def802 build: simplify the named build mode
Remove the following steps, since they are rarely (if never) used and
only increase the complexity of the `build.zig` file:

 - install step (zig build -Dn=n install)
 - test step (zig build -Dn=n test)
 - start step (zig build -Dn=n start)

The only remaining step is the default zigling step (zig build -Dn=n),
where the user can choose the exercise to solve.

Update the tests.  Additionally, update CheckNamedStep and CheckStep so
that they can share the same functions.

Closes #299
2023-05-14 17:22:03 +02:00
Manlio Perillo
7bd0a10bc0 build: remove the install step in the normal build mode
Removing the install step will simplify the current code.

Copying the exercise executable to the zig-out directory can be done in
`ZiglingStep.

Closes #298
2023-05-14 17:21:59 +02:00
Manlio Perillo
a64d4d5fe1 build: remove the special eowyn build mode
The special eowyn mode was added in order to improve the performance of
the Eowyn Github workflow.

Remove it, since it adds unnecessary complexity to the `build.zig` file.

Closes #297
2023-05-14 17:20:47 +02:00
Chris Boesch
c39ede20dc
Merge pull request #278 from chrboesch/testing
Added new flag 'run_test' to support test steps for test exercises
2023-05-13 23:31:28 +02:00
Chris Boesch
879eeb64dd Execution of test exercises added. 2023-05-13 21:42:48 +02:00
Chris Boesch
f1e6bd5a8e
Merge branch 'ratfactor:main' into testing 2023-05-13 19:30:33 +02:00
Chris Boesch
41f2755d6f
Merge pull request #293 from perillo/improve-build-even-more
More improvements to build.zig and test/tests.zig
2023-05-11 18:50:20 +02:00
Manlio Perillo
6d7a4bbe2b Restore unit tests
Commit dbd42bb (Cleaning up zig build output) broke the unit test.

Always use exit code 2, instead of 0.  This is the exit code used by the
build runner to notify the compiler to not report any further
diagnostics.

Move the Ziglings logo from the `build` function scope to the global
scope, and make it public so that tests.zig can use it to find the
number of lines to skip, instead of using an hard coded value.

Fixes #295
2023-05-09 17:28:41 +02:00
Manlio Perillo
ac3c2b565b build: make literal paths portable
Use fs.path.sep_str instead of a slash, in literal paths.
2023-05-09 11:11:11 +02:00
Manlio Perillo
7cf6506727 tests: remove the missing functions from RunStep
Use directly the RunStep.addCheck method, instead.
2023-05-09 11:11:11 +02:00
Manlio Perillo
7b9d3ec3df build: improve code formatting
Avoid too long lines or too many line breaks.
2023-05-09 11:11:11 +02:00
Manlio Perillo
6f2ffbbdbc 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
daac879aae 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
7cd439b889 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
9c3ea769dc 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
1ed58a1128 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
fb5b04f374 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
Chris Boesch
307757a765
Merge branch 'ratfactor:main' into testing 2023-05-09 10:02:03 +02:00
Dave Gauer
dbd42bb648 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
05aaa12975
Merge branch 'ratfactor:main' into testing 2023-05-07 17:59:28 +02:00
Chris Boesch
13dd265b32
Merge pull request #292 from kimshrier/exercise_099_typo
Add missing word "a"
2023-05-07 17:45:13 +02:00
Chris Boesch
a7f0f07075
Merge pull request #291 from kimshrier/exercise_098_typo
Improve wording in some comments
2023-05-07 17:44:07 +02:00
Chris Boesch
7a53cb5601
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
70738e8acd
Merge pull request #289 from kimshrier/exercise_092_typo
Remove repeated word "with"
2023-05-07 17:39:21 +02:00
Chris Boesch
82a0dca3c2
Merge pull request #288 from kimshrier/exercise_076_typo
Add missing word "of"
2023-05-07 17:38:11 +02:00
Chris Boesch
5d301fc0f4
Merge pull request #287 from kimshrier/exercise_072_typo
Add missing word "to"
2023-05-07 17:37:33 +02:00
Chris Boesch
4e4b7f4c03
Merge pull request #286 from kimshrier/exercise_001_typo
fix typo well -> will
2023-05-07 17:36:34 +02:00
Kim SHrier
69141d5ecd Add missing word "a" 2023-05-07 03:33:55 -06:00
Kim SHrier
3e0208ef66 Improve wording in some comments 2023-05-07 03:24:10 -06:00
Kim SHrier
0069801ee3 Fix reference to slice_ptr in example code 2023-05-07 03:08:03 -06:00
Kim SHrier
ef8883997d Remove repeated word "with" 2023-05-07 02:46:07 -06:00
Kim SHrier
14629176f6 Add missing word "of" 2023-05-07 02:04:30 -06:00
Kim SHrier
d1ad60c95b add missing word "to" 2023-05-07 01:38:28 -06:00
Kim SHrier
5dc9a97fdc fix typo well -> will 2023-05-06 15:38:13 -06:00
Chris Boesch
0b84c8ae05
Merge branch 'ratfactor:main' into testing 2023-05-06 20:53:28 +02:00
Chris Boesch
669cde0723
Merge pull request #285 from chrboesch/improve_instruction
Improve instructions.
2023-05-06 20:50:20 +02:00
Chris Boesch
1dc2d1db04
Merge branch 'main' into improve_instruction 2023-05-06 20:22:20 +02:00
Chris Boesch
6a29b92c60 Improve instructions. 2023-05-06 20:14:30 +02:00
Chris Boesch
5b232abd8c
Merge branch 'ratfactor:main' into testing 2023-05-06 19:15:49 +02:00
Chris Boesch
490cbb9048
Merge pull request #284 from perillo/improve-exercise-type-more
Improve Exercise type more
2023-05-06 19:15:14 +02:00
Manlio Perillo
8335f88001 build: improve Exercise.addExecutable
Replace the file_path variable with path.
2023-05-06 18:18:08 +02:00
Manlio Perillo
1a2a1e6f2a 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
Chris Boesch
f83f0c74db
Merge branch 'ratfactor:main' into testing 2023-05-06 15:29:22 +02:00
Manlio Perillo
0ac9a00dfa 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
4001168d2b 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
9b17bfca41 Ex 101: Magic bags better than buckets for metaphors 2023-05-05 18:34:36 -04:00
Chris Boesch
e537873abc
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
f14f4e95a4 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