Merge branch 'main' into exercise_060_f80

This commit is contained in:
Chris Boesch 2023-01-14 13:36:33 +01:00 committed by GitHub
commit 9d3b2b822f
5 changed files with 12 additions and 11 deletions

View file

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

View file

@ -41,7 +41,7 @@ Verify the installation and build number of `zig` like so:
```bash ```bash
$ zig version $ zig version
0.10.0-dev.3978+xxxxxxxxx 0.11.0-dev.1302+xxxxxxxxx
``` ```
Clone this repository with Git: Clone this repository with Git:
@ -61,8 +61,8 @@ $ zig build
The Zig language is under very active development. In order to be current, The Zig language is under very active development. In order to be current,
Ziglings tracks **development** builds of the Zig compiler rather than Ziglings tracks **development** builds of the Zig compiler rather than
versioned **release** builds. The last stable release was `0.9.1`, but Ziglings versioned **release** builds. The last stable release was `0.10.0`, but Ziglings
needs a dev build with pre-release version "0.10.0" and a build number at least 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. 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. It is likely that you'll download a build which is _greater_ than the minimum.
@ -81,6 +81,8 @@ about input:
### Version Changes ### Version Changes
Version-0.11.0-dev.1302+d813cef42
* *2023-01-14* zig 0.11.0-dev.1302 - changes in `@addWithOverflow` in builtin functions
* *2022-09-09* zig 0.10.0-dev.3978 - change in `NativeTargetInfo.detect` in build * *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-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 * *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] Quoted identifiers @""
* [x] Anonymous structs/tuples/lists * [x] Anonymous structs/tuples/lists
* [ ] Async <--- IN PROGRESS! * [ ] Async <--- IN PROGRESS!
* [ ] Interfaces
## Contributing ## Contributing

View file

@ -17,7 +17,7 @@ pub fn main() void {
var num: u8 = 1; var num: u8 = 1;
var more_nums = [_]u8{ 1, 1, 1, 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); makeFive(&num);
std.debug.print("num: {}, ", .{num}); std.debug.print("num: {}, ", .{num});

View file

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

View file

@ -4,8 +4,8 @@
// //
// .{ // .{
// false, // false,
// @as(u32, 15); // @as(u32, 15),
// @as(i64, 67.12); // @as(f64, 67.12)
// } // }
// //
// We call these "tuples", which is a term used by many // We call these "tuples", which is a term used by many