Browse Source

Merge branch 'main' into check_output_len

Chris Boesch 2 years ago
parent
commit
68af87518f

+ 1 - 1
CONTRIBUTING.md

@@ -10,7 +10,7 @@ Ziglings is intended for programmers of all experience levels. No
 specific language knowledge is expected. Anyone who can install
 the current Zig snapshot, setup a copy of Ziglings, and knows
 common language building blocks (if/then/else, loops, and
-functions) is ready or Ziglings.
+functions) is ready for Ziglings.
 
 Ziglings is intended to be completely self-contained. If you
 can't solve an exercise from the information you've gleaned so

+ 6 - 3
README.md

@@ -41,7 +41,7 @@ Verify the installation and build number of `zig` like so:
 
 ```bash
 $ zig version
-0.10.0-dev.3978+xxxxxxxxx
+0.11.0-dev.1302+xxxxxxxxx
 ```
 
 Clone this repository with Git:
@@ -61,8 +61,8 @@ $ zig build
 
 The Zig language is under very active development. In order to be current,
 Ziglings tracks **development** builds of the Zig compiler rather than
-versioned **release** builds. The last stable release was `0.9.1`, but Ziglings
-needs a dev build with pre-release version "0.10.0" and a build number at least
+versioned **release** builds. The last stable release was `0.10.0`, but Ziglings
+needs a dev build with pre-release version "0.11.0" and a build number at least
 as high as that shown in the example version check above.
 
 It is likely that you'll download a build which is _greater_ than the minimum.
@@ -81,6 +81,8 @@ about input:
 
 ### Version Changes
 
+Version-0.11.0-dev.1302+d813cef42
+* *2023-01-14* zig 0.11.0-dev.1302 - changes in `@addWithOverflow` (now returns a tuple) and `@typeInfo`; temporary disabled async functionality
 * *2022-09-09* zig 0.10.0-dev.3978 - change in `NativeTargetInfo.detect` in build
 * *2022-09-06* zig 0.10.0-dev.3880 - Ex 074 correctly fails again: comptime array len
 * *2022-08-29* zig 0.10.0-dev.3685 - `@typeName()` output change, stage1 req. for async
@@ -160,6 +162,7 @@ Core Language
 * [x] Quoted identifiers @""
 * [x] Anonymous structs/tuples/lists
 * [ ] Async <--- IN PROGRESS!
+* [ ] Interfaces
 
 ## Contributing
 

+ 46 - 44
build.zig

@@ -418,47 +418,48 @@ const exercises = [_]Exercise{
         .main_file = "083_anonymous_lists.zig",
         .output = "I say hello!",
     },
-    .{
-        .main_file = "084_async.zig",
-        .output = "foo() A\nfoo() B",
-        .hint = "Read the facts. Use the facts.",
-        .@"async" = true,
-    },
-    .{
-        .main_file = "085_async2.zig",
-        .output = "Hello async!",
-        .@"async" = true,
-    },
-    .{
-        .main_file = "086_async3.zig",
-        .output = "5 4 3 2 1",
-        .@"async" = true,
-    },
-    .{
-        .main_file = "087_async4.zig",
-        .output = "1 2 3 4 5",
-        .@"async" = true,
-    },
-    .{
-        .main_file = "088_async5.zig",
-        .output = "Example Title.",
-        .@"async" = true,
-    },
-    .{
-        .main_file = "089_async6.zig",
-        .output = ".com: Example Title, .org: Example Title.",
-        .@"async" = true,
-    },
-    .{
-        .main_file = "090_async7.zig",
-        .output = "beef? BEEF!",
-        .@"async" = true,
-    },
-    .{
-        .main_file = "091_async8.zig",
-        .output = "ABCDEF",
-        .@"async" = true,
-    },
+    // disabled because of https://github.com/ratfactor/ziglings/issues/163
+    // .{
+    //     .main_file = "084_async.zig",
+    //     .output = "foo() A",
+    //     .hint = "Read the facts. Use the facts.",
+    //     .@"async" = true,
+    // },
+    // .{
+    //     .main_file = "085_async2.zig",
+    //     .output = "Hello async!",
+    //     .@"async" = true,
+    // },
+    // .{
+    //     .main_file = "086_async3.zig",
+    //     .output = "5 4 3 2 1",
+    //     .@"async" = true,
+    // },
+    // .{
+    //     .main_file = "087_async4.zig",
+    //     .output = "1 2 3 4 5",
+    //     .@"async" = true,
+    // },
+    // .{
+    //     .main_file = "088_async5.zig",
+    //     .output = "Example Title.",
+    //     .@"async" = true,
+    // },
+    // .{
+    //     .main_file = "089_async6.zig",
+    //     .output = ".com: Example Title, .org: Example Title.",
+    //     .@"async" = true,
+    // },
+    // .{
+    //     .main_file = "090_async7.zig",
+    //     .output = "beef? BEEF!",
+    //     .@"async" = true,
+    // },
+    // .{
+    //     .main_file = "091_async8.zig",
+    //     .output = "ABCDEF",
+    //     .@"async" = true,
+    // },
 };
 
 /// Check the zig version to make sure it can compile the examples properly.
@@ -713,9 +714,10 @@ const ZiglingStep = struct {
         zig_args.append("build-exe") catch unreachable;
 
         // Enable the stage 1 compiler if using the async feature
-        if (self.exercise.@"async") {
-            zig_args.append("-fstage1") catch unreachable;
-        }
+        // disabled because of https://github.com/ratfactor/ziglings/issues/163
+        // if (self.exercise.@"async") {
+        //     zig_args.append("-fstage1") catch unreachable;
+        // }
 
         if (builder.color != .auto) {
             zig_args.append("--color") catch unreachable;

+ 1 - 1
exercises/042_pointers4.zig

@@ -17,7 +17,7 @@ pub fn main() void {
     var num: u8 = 1;
     var more_nums = [_]u8{ 1, 1, 1, 1 };
 
-    // Let's pass a reference to num to our function and print it:
+    // Let's pass the num reference to our function and print it:
     makeFive(&num);
     std.debug.print("num: {}, ", .{num});
 

+ 2 - 2
exercises/060_floats.zig

@@ -1,7 +1,7 @@
 //
 // Zig has support for IEEE-754 floating-point numbers in these
-// specific sizes: f16, f32, f64, f128. Floating point literals
-// may be writen in scientific notation:
+// specific sizes: f16, f32, f64, f80, and f128. Floating point
+// literals may be written in scientific notation:
 //
 //     const a1: f32 = 1200.0;     // 1,200
 //     const a2: f32 = 1.2e+3;     // 1,200

+ 2 - 4
exercises/064_builtins.zig

@@ -38,14 +38,12 @@ pub fn main() void {
     // Let's try it with a tiny 4-bit integer size to make it clear:
     const a: u4 = 0b1101;
     const b: u4 = 0b0101;
-    var my_result: u4 = undefined;
-    var overflowed: bool = undefined;
-    overflowed = @addWithOverflow(u4, a, b, &my_result);
+    const my_result = @addWithOverflow(a, b);
 
     // Check out our fancy formatting! b:0>4 means, "print
     // as a binary number, zero-pad right-aligned four digits."
     // The print() below will produce: "1101 + 0101 = 0010 (true)".
-    print("{b:0>4} + {b:0>4} = {b:0>4} ({})", .{ a, b, my_result, overflowed });
+    print("{b:0>4} + {b:0>4} = {b:0>4} ({s})", .{ a, b, my_result[0], if (my_result[1] == 1) "true" else "false" });
 
     // Let's make sense of this answer. The value of 'b' in decimal is 5.
     // Let's add 5 to 'a' but go one by one and see where it overflows:

+ 1 - 1
exercises/065_builtins2.zig

@@ -100,7 +100,7 @@ pub fn main() void {
     //
     //     pub const StructField = struct {
     //         name: []const u8,
-    //         field_type: type,
+    //         type: type,
     //         default_value: anytype,
     //         is_comptime: bool,
     //         alignment: comptime_int,

+ 1 - 1
exercises/071_comptime6.zig

@@ -41,7 +41,7 @@ pub fn main() void {
     const fields = @typeInfo(Narcissus).Struct.fields;
 
     ??? {
-        if (field.field_type != void) {
+        if (field.type != void) {
             print(" {s}", .{field.name});
         }
     }

+ 3 - 3
exercises/082_anonymous_structs3.zig

@@ -4,8 +4,8 @@
 //
 //     .{
 //         false,
-//         @as(u32, 15);
-//         @as(i64, 67.12);
+//         @as(u32, 15),
+//         @as(f64, 67.12)
 //     }
 //
 // We call these "tuples", which is a term used by many
@@ -96,7 +96,7 @@ fn printTuple(tuple: anytype) void {
         //
         //         pub const StructField = struct {
         //             name: []const u8,
-        //             field_type: type,
+        //             type: type,
         //             default_value: anytype,
         //             is_comptime: bool,
         //             alignment: comptime_int,