1
0
Fork 0
mirror of https://github.com/ratfactor/ziglings synced 2024-06-09 14:26:31 +02:00

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 10e6abc1a1
Signed by: GitHub
GPG Key ID: 4AEE18F83AFDEB23
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
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

View File

@ -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` in builtin functions
* *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

View File

@ -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});

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:
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:

View File

@ -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