From be782af7a30456990e7bcc58e40be3ac11e1ce17 Mon Sep 17 00:00:00 2001 From: Manlio Perillo Date: Mon, 10 Apr 2023 18:14:58 +0200 Subject: [PATCH] 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 --- build.zig | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/build.zig b/build.zig index 32ce74a..39096fe 100644 --- a/build.zig +++ b/build.zig @@ -559,13 +559,13 @@ pub fn build(b: *Build) !void { const header_step = PrintStep.create(b, logo, std.io.getStdErr()); - if (exno) |i| { - if (i == 0 or i > exercises.len - 1) { - print("unknown exercise number: {}\n", .{i}); + if (exno) |n| { + if (n == 0 or n > exercises.len - 1) { + print("unknown exercise number: {}\n", .{n}); std.os.exit(1); } - const ex = exercises[i - 1]; + const ex = exercises[n - 1]; const base_name = ex.baseName(); const file_path = std.fs.path.join(b.allocator, &[_][]const u8{ if (use_healed) "patches/healed" else "exercises", ex.main_file, @@ -603,8 +603,8 @@ pub fn build(b: *Build) !void { var prev_step = verify_step; for (exercises) |exn| { - const n = exn.number(); - if (n > i) { + const nth = exn.number(); + if (nth > n) { const verify_stepn = ZiglingStep.create(b, exn, use_healed); verify_stepn.step.dependOn(&prev_step.step); @@ -646,8 +646,11 @@ pub fn build(b: *Build) !void { ziglings_step.dependOn(&header_step.step); b.default_step = ziglings_step; + // Don't use the "multi-object for loop" syntax, in order to avoid a syntax + // error with old Zig compilers. var prev_step: *Step = undefined; - for (exercises, 0..) |ex, i| { + for (exercises) |ex| { + const n = ex.number(); const base_name = ex.baseName(); const file_path = std.fs.path.join(b.allocator, &[_][]const u8{ "exercises", ex.main_file, @@ -657,7 +660,7 @@ pub fn build(b: *Build) !void { build_step.install(); const verify_stepn = ZiglingStep.create(b, ex, use_healed); - if (i == 0) { + if (n == 1) { prev_step = &verify_stepn.step; } else { verify_stepn.step.dependOn(prev_step);