summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Boesch <chrboesch@noreply.codeberg.org>2026-06-21 17:29:19 +0200
committerChris Boesch <chrboesch@noreply.codeberg.org>2026-06-21 17:29:19 +0200
commitfe1c9fb9bd1ba88b2b37ffa62dd454bfbe521d4a (patch)
tree586d05343f5c53a994f1535f60a875b4a24b9a33
parent935d26828036da962f5c22738d86e8530a3819a2 (diff)
parent151450cc7ddc188ec69d066bdc5f4a85c4210fbe (diff)
Merge branch 'main' into fix_typo
-rw-r--r--CONTRIBUTING.md4
-rw-r--r--exercises/043_pointers5.zig2
-rw-r--r--exercises/047_methods.zig18
-rw-r--r--exercises/107_threading.zig2
-rw-r--r--exercises/108_threading2.zig2
-rw-r--r--exercises/113_quiz9.zig2
-rw-r--r--exercises/114_packed.zig4
-rw-r--r--exercises/115_packed2.zig6
-rw-r--r--patches/patches/047_methods.patch6
9 files changed, 32 insertions, 14 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 3d162c2..56446b0 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -8,11 +8,11 @@ of Ziglings Maintenance!
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
+the current Zig snapshot, set up a copy of Ziglings, and knows
common language building blocks (if/then/else, loops, and
functions) is ready for Ziglings.
-Zigling's excercises are self-contained. If you can't solve
+Zigling's exercises are self-contained. If you can't solve
an exercise from the information you've gleaned so far from
Ziglings, then the exercise probably needs some additional work.
Please file an issue!
diff --git a/exercises/043_pointers5.zig b/exercises/043_pointers5.zig
index 9e2fa6f..3117639 100644
--- a/exercises/043_pointers5.zig
+++ b/exercises/043_pointers5.zig
@@ -1,6 +1,6 @@
//
// As with integers, you can pass a pointer to a struct when you
-// will wish to modify that struct. Pointers are also useful when
+// wish to modify that struct. Pointers are also useful when
// you need to store a reference to a struct (a "link" to it).
//
// const Vertex = struct{ x: u32, y: u32, z: u32 };
diff --git a/exercises/047_methods.zig b/exercises/047_methods.zig
index 3221ca2..3e88719 100644
--- a/exercises/047_methods.zig
+++ b/exercises/047_methods.zig
@@ -37,6 +37,24 @@
// self, others use a lowercase version of the type name, but feel
// free to use whatever is most appropriate.
//
+// "But hold on," you say, eyeing a() and b() suspiciously, "why
+// does one take 'self' and another take '*self'?" Sharp eye!
+//
+// It all comes down to a single question: does the function need
+// to CHANGE the struct?
+//
+// * Needs to change it? Take a pointer (*Bar). Without it you'd
+// be scribbling on a COPY, and your changes would evaporate the
+// instant the function returns. Poof.
+// * Only reads it? Plain Bar is just fine.
+// (For a big, bulky struct you might still write *const Bar to
+// avoid copying it around, but for small ones a copy is cheap.)
+//
+// You'll see this below: zap() takes 'self: HeatRay' by value
+// because it only reads the ray's damage, but it takes the alien
+// as '*Alien' because zapping is supposed to HURT - and that means
+// changing the alien's health for real, not on a throwaway copy.
+//
// Okay, you're armed.
//
// Now, please zap the alien structs until they're all gone or
diff --git a/exercises/107_threading.zig b/exercises/107_threading.zig
index 3c3fa21..2b7d4c0 100644
--- a/exercises/107_threading.zig
+++ b/exercises/107_threading.zig
@@ -1,5 +1,5 @@
//
-// In Exercises 84-91, we learned about Zig's Io interface for
+// In Exercises 85-94 and quiz 95, we learned about Zig's Io interface for
// concurrent execution: io.async(), Group, Select, and Futures.
// Under the hood, the Threaded backend manages a pool of real
// OS threads for you - including scheduling, cancellation, and
diff --git a/exercises/108_threading2.zig b/exercises/108_threading2.zig
index bbf8d78..e1b35ac 100644
--- a/exercises/108_threading2.zig
+++ b/exercises/108_threading2.zig
@@ -46,7 +46,7 @@
// 1,000,000,000 partial values. And for each additional digit we have to
// add a zero.
// Even fast computers - and I mean really fast computers - get a bit warmer
-// on the CPU when it comes to really many digits. But the 8 digits are
+// on the CPU when it comes to a large number of digits. But 8 digits are
// enough for us for now, because we want to understand the principle and
// nothing more, right?
//
diff --git a/exercises/113_quiz9.zig b/exercises/113_quiz9.zig
index 8f5cb61..8d1da9c 100644
--- a/exercises/113_quiz9.zig
+++ b/exercises/113_quiz9.zig
@@ -14,7 +14,7 @@
//
// A common activity in microcontroller programming is setting and clearing
// bits on input and output pins. This lets you control LEDs, sensors, motors
-// and more! In a previous exercise (097_bit_manipulation.zig) you learned how
+// and more! In a previous exercise (100_bit_manipulation.zig) you learned how
// to swap two bytes using the ^ (XOR - exclusive or) operator. This quiz will
// test your knowledge of bit manipulation in Zig while giving you a taste of
// what it's like to control registers in a real microcontroller. Included at
diff --git a/exercises/114_packed.zig b/exercises/114_packed.zig
index 933ae0a..74ec7a1 100644
--- a/exercises/114_packed.zig
+++ b/exercises/114_packed.zig
@@ -1,6 +1,6 @@
//
// We've already learned plenty about bit manipulation using bitwise operations
-// in exercises 097 and 098 and in quiz 110. The techniques we already know work
+// in exercises 100 and 101 and in quiz 113. The techniques we already know work
// just fine, but creating masks and shifting individual bits around can become
// quite tedious and unwieldy pretty quickly.
// What if there was a better, a more convenient way to control individual bits?
@@ -78,7 +78,7 @@ const FLG = packed struct(u8) {
content_checksum: bool,
content_size: bool,
block_checksum: bool,
- block_indepencence: bool,
+ block_independence: bool,
version: u2,
};
diff --git a/exercises/115_packed2.zig b/exercises/115_packed2.zig
index 2b6b558..2a772d7 100644
--- a/exercises/115_packed2.zig
+++ b/exercises/115_packed2.zig
@@ -1,5 +1,5 @@
//
-// We've already learned about switch statements in exercises 030, 031 and 108.
+// We've already learned about switch statements in exercises 030, 031 and 111.
// They also work with packed containers:
const S = packed struct(u2) {
@@ -51,11 +51,11 @@ comptime {
//
// Try to make the float below negative:
-/// IEEE 754 half precision float
+// IEEE 754 binary16 floating-point format
const Float = packed union(u16) {
value: f16,
bits: packed struct(u16) {
- mantissa: u10,
+ significand: u10,
exponent: u5,
sign: u1,
},
diff --git a/patches/patches/047_methods.patch b/patches/patches/047_methods.patch
index a7e8a26..4755ecb 100644
--- a/patches/patches/047_methods.patch
+++ b/patches/patches/047_methods.patch
@@ -1,6 +1,6 @@
---- exercises/047_methods.zig 2023-10-03 22:15:22.122241138 +0200
-+++ answers/047_methods.zig 2023-10-05 20:04:07.056100214 +0200
-@@ -88,7 +88,7 @@
+--- exercises/047_methods.zig 2026-06-21 16:11:59.110876971 +0200
++++ answers/047_methods.zig 2026-06-21 16:13:07.066363558 +0200
+@@ -106,7 +106,7 @@
for (&aliens) |*alien| {
// *** Zap the alien with the heat ray here! ***