From 9947f42867574f24889a7b43be9da18d3921eea9 Mon Sep 17 00:00:00 2001 From: Paul Kuruvilla Date: Wed, 13 Nov 2024 22:21:06 +0530 Subject: [PATCH] update zig --- compiled_starters/zig/.codecrafters/run.sh | 2 +- compiled_starters/zig/.gitignore | 1 + compiled_starters/zig/README.md | 2 +- compiled_starters/zig/build.zig | 2 +- compiled_starters/zig/build.zig.zon | 3 ++- compiled_starters/zig/codecrafters.yml | 4 +-- compiled_starters/zig/your_program.sh | 2 +- dockerfiles/zig-0.13.Dockerfile | 27 +++++++++++++++++++ .../zig/01-jm1/code/.codecrafters/run.sh | 2 +- solutions/zig/01-jm1/code/.gitignore | 1 + solutions/zig/01-jm1/code/README.md | 2 +- solutions/zig/01-jm1/code/build.zig | 2 +- solutions/zig/01-jm1/code/build.zig.zon | 3 ++- solutions/zig/01-jm1/code/codecrafters.yml | 4 +-- solutions/zig/01-jm1/code/your_program.sh | 2 +- .../zig/code/.codecrafters/run.sh | 2 +- starter_templates/zig/code/.gitignore | 1 + starter_templates/zig/code/build.zig | 2 +- starter_templates/zig/code/build.zig.zon | 3 ++- starter_templates/zig/config.yml | 2 +- 20 files changed, 51 insertions(+), 18 deletions(-) create mode 100644 dockerfiles/zig-0.13.Dockerfile diff --git a/compiled_starters/zig/.codecrafters/run.sh b/compiled_starters/zig/.codecrafters/run.sh index b246c16c..7c25eb9e 100755 --- a/compiled_starters/zig/.codecrafters/run.sh +++ b/compiled_starters/zig/.codecrafters/run.sh @@ -8,4 +8,4 @@ set -e # Exit on failure -exec zig-out/bin/zig "$@" +exec zig-out/bin/main "$@" diff --git a/compiled_starters/zig/.gitignore b/compiled_starters/zig/.gitignore index e564653f..b7bb740c 100644 --- a/compiled_starters/zig/.gitignore +++ b/compiled_starters/zig/.gitignore @@ -1,6 +1,7 @@ # Zig build artifacts main zig-cache/ +.zig-cache/ zig-out/ # Compiled binary output diff --git a/compiled_starters/zig/README.md b/compiled_starters/zig/README.md index 9618f2f9..8a5ac351 100644 --- a/compiled_starters/zig/README.md +++ b/compiled_starters/zig/README.md @@ -26,7 +26,7 @@ That's all! Note: This section is for stages 2 and beyond. -1. Ensure you have `zig (0.12)` installed locally +1. Ensure you have `zig (0.13+)` installed locally 1. Run `./your_program.sh` to run your Redis server, which is implemented in `src/main.zig`. 1. Commit your changes and run `git push origin master` to submit your solution diff --git a/compiled_starters/zig/build.zig b/compiled_starters/zig/build.zig index c6727a85..d211b570 100644 --- a/compiled_starters/zig/build.zig +++ b/compiled_starters/zig/build.zig @@ -3,7 +3,7 @@ const std = @import("std"); // Learn more about this file here: https://ziglang.org/learn/build-system pub fn build(b: *std.Build) void { const exe = b.addExecutable(.{ - .name = "zig", + .name = "main", .root_source_file = b.path("src/main.zig"), .target = b.standardTargetOptions(.{}), .optimize = b.standardOptimizeOption(.{}), diff --git a/compiled_starters/zig/build.zig.zon b/compiled_starters/zig/build.zig.zon index 3f76c136..1baccdc7 100644 --- a/compiled_starters/zig/build.zig.zon +++ b/compiled_starters/zig/build.zig.zon @@ -1,5 +1,6 @@ .{ - .name = "zig", + .name = "codecrafters-redis", + // This is a [Semantic Version](https://semver.org/). // In a future version of Zig it will be used for package deduplication. .version = "0.0.0", diff --git a/compiled_starters/zig/codecrafters.yml b/compiled_starters/zig/codecrafters.yml index 8c3bf9c5..be2c6fc4 100644 --- a/compiled_starters/zig/codecrafters.yml +++ b/compiled_starters/zig/codecrafters.yml @@ -7,5 +7,5 @@ debug: false # Use this to change the Zig version used to run your code # on Codecrafters. # -# Available versions: zig-0.12 -language_pack: zig-0.12 +# Available versions: zig-0.13 +language_pack: zig-0.13 diff --git a/compiled_starters/zig/your_program.sh b/compiled_starters/zig/your_program.sh index e29d2eb0..5098df73 100755 --- a/compiled_starters/zig/your_program.sh +++ b/compiled_starters/zig/your_program.sh @@ -21,4 +21,4 @@ set -e # Exit early if any commands fail # # - Edit this to change how your program runs locally # - Edit .codecrafters/run.sh to change how your program runs remotely -exec zig-out/bin/zig "$@" +exec zig-out/bin/main "$@" diff --git a/dockerfiles/zig-0.13.Dockerfile b/dockerfiles/zig-0.13.Dockerfile new file mode 100644 index 00000000..0fa2dd97 --- /dev/null +++ b/dockerfiles/zig-0.13.Dockerfile @@ -0,0 +1,27 @@ +# syntax=docker/dockerfile:1.7-labs +FROM alpine:3.20 + +RUN apk add --no-cache 'xz>=5.6' 'curl>=8.9' + +# Download and install Zig +RUN curl -O https://ziglang.org/download/0.13.0/zig-linux-x86_64-0.13.0.tar.xz \ + && tar -xf zig-linux-x86_64-0.13.0.tar.xz \ + && mv zig-linux-x86_64-0.13.0 /usr/local/zig \ + && rm zig-linux-x86_64-0.13.0.tar.xz + +# Add Zig to PATH +ENV PATH="/usr/local/zig:${PATH}" + +ENV CODECRAFTERS_DEPENDENCY_FILE_PATHS="build.zig,build.zig.zon" + +WORKDIR /app + +# .git & README.md are unique per-repository. We ignore them on first copy to prevent cache misses +COPY --exclude=.git --exclude=README.md . /app + +# This runs zig build +RUN .codecrafters/compile.sh + +# Cache build directory +RUN mkdir -p /app-cached +RUN mv /app/.zig-cache /app-cached/.zig-cache || true diff --git a/solutions/zig/01-jm1/code/.codecrafters/run.sh b/solutions/zig/01-jm1/code/.codecrafters/run.sh index b246c16c..7c25eb9e 100755 --- a/solutions/zig/01-jm1/code/.codecrafters/run.sh +++ b/solutions/zig/01-jm1/code/.codecrafters/run.sh @@ -8,4 +8,4 @@ set -e # Exit on failure -exec zig-out/bin/zig "$@" +exec zig-out/bin/main "$@" diff --git a/solutions/zig/01-jm1/code/.gitignore b/solutions/zig/01-jm1/code/.gitignore index e564653f..b7bb740c 100644 --- a/solutions/zig/01-jm1/code/.gitignore +++ b/solutions/zig/01-jm1/code/.gitignore @@ -1,6 +1,7 @@ # Zig build artifacts main zig-cache/ +.zig-cache/ zig-out/ # Compiled binary output diff --git a/solutions/zig/01-jm1/code/README.md b/solutions/zig/01-jm1/code/README.md index 9618f2f9..8a5ac351 100644 --- a/solutions/zig/01-jm1/code/README.md +++ b/solutions/zig/01-jm1/code/README.md @@ -26,7 +26,7 @@ That's all! Note: This section is for stages 2 and beyond. -1. Ensure you have `zig (0.12)` installed locally +1. Ensure you have `zig (0.13+)` installed locally 1. Run `./your_program.sh` to run your Redis server, which is implemented in `src/main.zig`. 1. Commit your changes and run `git push origin master` to submit your solution diff --git a/solutions/zig/01-jm1/code/build.zig b/solutions/zig/01-jm1/code/build.zig index c6727a85..d211b570 100644 --- a/solutions/zig/01-jm1/code/build.zig +++ b/solutions/zig/01-jm1/code/build.zig @@ -3,7 +3,7 @@ const std = @import("std"); // Learn more about this file here: https://ziglang.org/learn/build-system pub fn build(b: *std.Build) void { const exe = b.addExecutable(.{ - .name = "zig", + .name = "main", .root_source_file = b.path("src/main.zig"), .target = b.standardTargetOptions(.{}), .optimize = b.standardOptimizeOption(.{}), diff --git a/solutions/zig/01-jm1/code/build.zig.zon b/solutions/zig/01-jm1/code/build.zig.zon index 3f76c136..1baccdc7 100644 --- a/solutions/zig/01-jm1/code/build.zig.zon +++ b/solutions/zig/01-jm1/code/build.zig.zon @@ -1,5 +1,6 @@ .{ - .name = "zig", + .name = "codecrafters-redis", + // This is a [Semantic Version](https://semver.org/). // In a future version of Zig it will be used for package deduplication. .version = "0.0.0", diff --git a/solutions/zig/01-jm1/code/codecrafters.yml b/solutions/zig/01-jm1/code/codecrafters.yml index 8c3bf9c5..be2c6fc4 100644 --- a/solutions/zig/01-jm1/code/codecrafters.yml +++ b/solutions/zig/01-jm1/code/codecrafters.yml @@ -7,5 +7,5 @@ debug: false # Use this to change the Zig version used to run your code # on Codecrafters. # -# Available versions: zig-0.12 -language_pack: zig-0.12 +# Available versions: zig-0.13 +language_pack: zig-0.13 diff --git a/solutions/zig/01-jm1/code/your_program.sh b/solutions/zig/01-jm1/code/your_program.sh index e29d2eb0..5098df73 100755 --- a/solutions/zig/01-jm1/code/your_program.sh +++ b/solutions/zig/01-jm1/code/your_program.sh @@ -21,4 +21,4 @@ set -e # Exit early if any commands fail # # - Edit this to change how your program runs locally # - Edit .codecrafters/run.sh to change how your program runs remotely -exec zig-out/bin/zig "$@" +exec zig-out/bin/main "$@" diff --git a/starter_templates/zig/code/.codecrafters/run.sh b/starter_templates/zig/code/.codecrafters/run.sh index b246c16c..7c25eb9e 100755 --- a/starter_templates/zig/code/.codecrafters/run.sh +++ b/starter_templates/zig/code/.codecrafters/run.sh @@ -8,4 +8,4 @@ set -e # Exit on failure -exec zig-out/bin/zig "$@" +exec zig-out/bin/main "$@" diff --git a/starter_templates/zig/code/.gitignore b/starter_templates/zig/code/.gitignore index e564653f..b7bb740c 100644 --- a/starter_templates/zig/code/.gitignore +++ b/starter_templates/zig/code/.gitignore @@ -1,6 +1,7 @@ # Zig build artifacts main zig-cache/ +.zig-cache/ zig-out/ # Compiled binary output diff --git a/starter_templates/zig/code/build.zig b/starter_templates/zig/code/build.zig index c6727a85..d211b570 100644 --- a/starter_templates/zig/code/build.zig +++ b/starter_templates/zig/code/build.zig @@ -3,7 +3,7 @@ const std = @import("std"); // Learn more about this file here: https://ziglang.org/learn/build-system pub fn build(b: *std.Build) void { const exe = b.addExecutable(.{ - .name = "zig", + .name = "main", .root_source_file = b.path("src/main.zig"), .target = b.standardTargetOptions(.{}), .optimize = b.standardOptimizeOption(.{}), diff --git a/starter_templates/zig/code/build.zig.zon b/starter_templates/zig/code/build.zig.zon index 3f76c136..1baccdc7 100644 --- a/starter_templates/zig/code/build.zig.zon +++ b/starter_templates/zig/code/build.zig.zon @@ -1,5 +1,6 @@ .{ - .name = "zig", + .name = "codecrafters-redis", + // This is a [Semantic Version](https://semver.org/). // In a future version of Zig it will be used for package deduplication. .version = "0.0.0", diff --git a/starter_templates/zig/config.yml b/starter_templates/zig/config.yml index 4a898afd..36066dfb 100644 --- a/starter_templates/zig/config.yml +++ b/starter_templates/zig/config.yml @@ -1,3 +1,3 @@ attributes: - required_executable: zig (0.12) + required_executable: zig (0.13+) user_editable_file: src/main.zig