1
0
Fork 0
mirror of https://github.com/ratfactor/ziglings synced 2024-05-23 00:46:05 +02:00
Commit Graph

558 Commits

Author SHA1 Message Date
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
Chris Boesch d608f481e6
Update 096_memory_allocation.zig
formatting
2023-04-12 17:14:18 +02:00
Chris Boesch 336106d396
Update 097_bit_manipulation.zig
formatting
2023-04-12 17:13:51 +02:00
Chris Boesch bcbf373bcd
Update 098_bit_manipulation2.zig
formatting
2023-04-12 17:10:54 +02:00
Chris Boesch 132e87d5bb
Update README.md
set check for 'bit manipulation'
2023-04-12 17:09:03 +02:00
Chris Boesch 311248356b
Merge pull request #233 from chrboesch/bit_manipulation
added the second exercise for bit manipulation
2023-04-12 17:08:06 +02:00
Chris Boesch 0293629a6c added the second exercise for bit manipulation 2023-04-12 17:00:26 +02:00
Chris Boesch 29d56c6c40
Merge pull request #232 from chrboesch/bit_manipulation
Bit manipulation
2023-04-12 15:52:27 +02:00
Chris Boesch 0c9147dba2 added first exercise for bit manipulation 2023-04-12 15:47:20 +02:00
Chris Boesch 6c08d03905 added first exercise for bit manipulation 2023-04-12 15:44:12 +02:00
Chris Boesch 87c9c29ffc
Merge pull request #224 from perillo/improve-build-more
build: enable full parallelism when -Dhealed is set
2023-04-12 15:27:48 +02:00
Manlio Perillo 96d3678ad1 build: make PrintStep thread safe
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-11 12:52:48 +02:00
Manlio Perillo 7bf0b9b7fd build: simplify the code when solving all the exercises
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-11 12:45:55 +02:00
Manlio Perillo 0c995677c7 build: restore compatibility support
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-11 12:45:55 +02:00
Manlio Perillo edcb74a52b build: improve PrintStep, SkipStep and PatchStep names
Use lover case for the step names.

Add the exercise name for the SkipStep and PatchStep step name.
2023-04-11 12:45:55 +02:00
Manlio Perillo a16d16bfd6 build: simplify code and add tests
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-11 12:45:55 +02:00
Manlio Perillo 60b8e481cf build: add support for skipping exercises
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-11 12:45:55 +02:00
Manlio Perillo 33fbfd637a build: ensure the exercise links libc, when needed
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-11 12:45:27 +02:00
Chris Boesch 90db09e17c
Update README.md 2023-04-09 19:40:39 +02:00
Chris Boesch 3b6a80f6f9
Merge pull request #226 from chrboesch/adjust_advance
Adjustment of the 'Advanced usage' in the README
2023-04-09 19:39:24 +02:00
Chris Boesch 4f9a290564 closes https://github.com/ratfactor/ziglings/issues/223 2023-04-09 19:25:04 +02:00
Manlio Perillo b56bb7bace build: enable full parallelism when -Dhealed is set
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-08 09:31:03 +02:00
Chris Boesch 718e7274d5
Update README.md
changed zig version number
2023-04-07 18:28:33 +02:00
Chris Boesch 0f54e2e515
Merge pull request #212 from perillo/improve-build
build: make the logo a build step
2023-04-07 18:24:42 +02:00
Chris Boesch 45ccfa7d3e Insert current zig version for compatiblity!
This is primarily to make users aware that there has been a change in the call for individual exercises.
2023-04-07 18:18:15 +02:00
Chris Boesch f4408f9eb9 help text for parameters adapted 2023-04-07 18:06:13 +02:00