1
0
mirror of https://github.com/ratfactor/ziglings synced 2024-09-26 19:40:47 +02:00
Commit Graph

733 Commits

Author SHA1 Message Date
Chris Boesch
c659ac077f Version number added. 2023-04-25 23:34:56 +02:00
Chris Boesch
bd6054f3f3
Merge pull request #257 from chrboesch/eowyn
Added a loop for the formatting test, so we can see where errors happen.
2023-04-25 21:23:02 +00:00
Chris Boesch
a7d42a4f57 Added a loop for the formatting test, so we can see where errors happen. 2023-04-25 23:21:01 +02:00
Chris Boesch
d29d12273b replaced update-patches.py with update-patches.zig 2023-04-25 21:35:18 +02:00
Chris Boesch
badf1981cd
Merge pull request #255 from perillo/improve-ci-more
Improve ci more
2023-04-25 18:32:48 +00:00
Chris Boesch
00104c763b
Merge pull request #256 from perillo/improve-more-2
More improvements
2023-04-25 18:31:12 +00:00
Chris Boesch
353498d4d8
Python isn't necessary 2023-04-25 20:23:27 +02:00
Manlio Perillo
dd08ac23bf .gitattributes: remove support for old files, add python
Remove support for old .h, .cpp and .bat files.

Set eol mode to lf for Python scripts.

Closes #252
2023-04-25 16:13:59 +02:00
Manlio Perillo
266ed84082 .gitignore: add zig-out, remove vim backup and swap files
Add the zig-out directory, since the install step is available.

Remove the vim backup and swap files, since it is possible to configure
vim to use a custom directory.

Ensure all the directories are anchored to the root directory.

Closes #251
2023-04-25 16:13:38 +02:00
Manlio Perillo
33ba83036f workflow: add a test job to ci.yml
Add a job to run the ziglings unit tests, using `zig build test`.
2023-04-25 15:35:42 +02:00
Manlio Perillo
67ecf9a6af workflows: use actions/checkout@v3
Use the new version of actions/checkout, since all Github Actions will
begin running on Node16 instead of Node12.

See https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/.
2023-04-25 15:13:38 +02:00
Manlio Perillo
e13a450706 Fix formatting in exercise 99
The non-conforming formatting was not detected by the eowyn.sh script,
due to a bug.
2023-04-25 14:56:07 +02:00
Manlio Perillo
c76ec7ecf6 eowyn.sh: set the -e option
Currently, `zig fmt` exit status is ignored, making it useless.
Ensure that the script terminates early if there is an error.

Print a message to stdout before executing `zig fmt`, in order to make
the possible error more visible.
2023-04-25 14:52:05 +02:00
Manlio Perillo
888e030693 eowyn: always quote variables
Quote all the variables, even though we know that it is safe.

Fix coding style.
2023-04-25 12:58:46 +02:00
Chris Boesch
7ddd0a80c4 replaced check-exercises.pu with check-exercises.zig 2023-04-25 12:13:58 +02:00
Chris Boesch
71dc28d9ae
Merge pull request #250 from perillo/improve-test-coverage-2
Improve test coverage
2023-04-24 15:56:51 +00:00
Chris Boesch
96f12fd9c1
timeout to 60 minutes 2023-04-24 17:43:55 +02:00
Manlio Perillo
18dc84bd39 test: add a test for zig build -Dn=1
Add a test for `zig build -Dn=1` in order to test that a broken exercise
will print an hint.
2023-04-24 13:03:52 +02:00
Manlio Perillo
ca327993c5 test: change the order of zig build options
In test case 1 and 2, move the -Dhealed option before the -Dn option,
for consistency.

Fix a typo in cmd.setName in test case 1 and 2.

Remove a confusing comment in test case 1.
2023-04-24 12:19:00 +02:00
Manlio Perillo
ebf4e31686 test: add test for zig build and zig build -Dn=1 start
Add tests for `zig build` and `zig build -Dn=1 start`, in order to test
that the all the exercises are processed in the correct order.
2023-04-24 11:59:08 +02:00
Manlio Perillo
4c78dce877 build: make exercise output more reliable
Currently, ZiglingStep prints the raw exercise output.  This is not a
problem when executing `zig build` from the shell, but in a unit test it
is necessary to know when the exercise output ends.

Document that Exercise.output should not have trailing whitespace.
Ensure this is true by adding a check in the validate_exercises
function.

Remove trailing whitespace in exercises 68 and 99.

Simplify the output validation in ZiglingStep.makeInternal.
Checking that the length of the actual and expected output is the same
is not necessary, since trailing whitespace has been removed.  Simply do
an exact comparison.

Print the trimmed exercise output, instead of the raw output.
This will ensure that the exercise output always ends with only one LF
character.

Fix some small coding style issues.
2023-04-24 11:31:16 +02:00
Manlio Perillo
9b1826ecea test: fix incorrect cleanup code
The current cleanup code is incorrect, since it may delete the healed
directory while one test case is running.

The solution is to make each test case isolate, with its own setup and
teardown.  Unfortunately it is currently not possible, since each test
case modify the same directory.

Disable the cleanup step, until a better solution is found.
2023-04-24 10:32:08 +02:00
Manlio Perillo
d3527e3117 test: refactorize the code
Currently, if there is an error when creating the patches/healed
directory, the error message will be printed on stderr, but the build
runner will report the test as being successful.

Add the fail function and the FailStep, so that the error will be
correctly handled by the build runner.

Remove the PatchStep, and instead add the heal function so that all the
exercises are healed before starting the tests.

The heal function executes at the configuration phase, but the possible
error is handled by the build runner.
2023-04-24 10:31:06 +02:00
Dave Gauer
d1db29afd5 Another README coverage list edit
I still had C interop under stdlib, which it isn't.
2023-04-23 19:43:26 -04:00
Dave Gauer
76450bbe28 Tweaked README coverage list 2023-04-23 19:16:03 -04:00
Dave Gauer
ae8f7305a8 Updated README and CONTRIBUTING to reflect reality 2023-04-23 19:12:15 -04:00
Dave Gauer
2fe145964a Ex 099 format instructions to 65 columns, wording, examples 2023-04-23 18:54:43 -04:00
Chris Boesch
1832080daa
Update 099_formatting.zig
typo fixed
2023-04-19 22:14:06 +02:00
Chris Boesch
83d839bf49
Merge pull request #247 from chrboesch/formatting
added first formatting exercise
2023-04-19 22:09:32 +02:00
Chris Boesch
f42c390594 added first formatting exercise 2023-04-19 21:57:37 +02:00
Chris Boesch
26ecb83bcc
Merge pull request #234 from perillo/improve-ci
Improve CI
2023-04-19 15:25:12 +02:00
Manlio Perillo
8d5439601d Ensure the patches are up-to-date and consistent
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-18 18:16:19 +02:00
Manlio Perillo
bd777dcd68 eowyn: run zig fmt --check before zig build
Update the eowyn.sh script to check the healed exercises formatting,
before running `zig build`.
2023-04-18 18:16:19 +02:00
Manlio Perillo
88e9e785ef Ensure the exercises use the canonical format
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-18 18:16:19 +02:00
Manlio Perillo
9470bc1804 ci: add a CI workflow
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-18 18:16:19 +02:00
Chris Boesch
69af0cb861
Merge pull request #246 from perillo/build-restore-compatibility-2
build: restore compatibility with old Zig compilers
2023-04-18 18:06:41 +02:00
Manlio Perillo
f121695bad build: avoid intermixed messages on the same line
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-18 14:43:17 +02:00
Manlio Perillo
5d4d03f940 build: don't print errors in ZiglingStep.eval
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-18 12:57:03 +02:00
Manlio Perillo
5bf14ffa19 build: restore compatibility support again
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-18 12:22:30 +02:00
Chris Boesch
72a6d52f32
Merge pull request #238 from perillo/update-zigling-step
Update ZiglingStep
2023-04-13 18:47:36 +02:00
Manlio Perillo
e214c44eb7 build: update ZiglingStep to the new API
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-13 18:39:51 +02:00
Manlio Perillo
1e7c42d31f build: disable special case for zig build -Dhealed
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-13 17:47:17 +02:00
Chris Boesch
70472481e6
Update README.md 2023-04-13 10:41:34 +02:00
Chris Boesch
e079591620
Merge pull request #237 from chrboesch/main
added cname
2023-04-13 09:57:50 +02:00
Chris Boesch
f782a6c0b6
Update CNAME 2023-04-12 21:07:38 +02:00
Chris Boesch
83088b013f
Update CNAME 2023-04-12 21:04:18 +02:00
Chris Boesch
494c3a6b15
Create CNAME 2023-04-12 20:56:32 +02:00
Chris Boesch
77aac86a0e
Update README.md
url fixed
2023-04-12 19:32:34 +02:00
Chris Boesch
5f6762c351
Merge pull request #235 from perillo/update-to-version-0.11.0-dev.2560
Update the code to the new zig version
2023-04-12 19:02:43 +02:00
Manlio Perillo
5d254bb775 Update the code to the new zig version
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-12 18:50:30 +02:00