From a95ff8e4ff4fc697e12270a3545751d36ae26a3c Mon Sep 17 00:00:00 2001 From: Leigh McCulloch <351529+leighmcculloch@users.noreply.github.com> Date: Fri, 20 Sep 2024 00:44:35 +1000 Subject: [PATCH 1/3] Add hello world to samples page --- assets/zig-code/samples/0-hello-world.zig | 7 +++++++ ...-windows-msgbox.zig => 1-windows-msgbox.zig} | 0 .../{1-memory-leak.zig => 2-memory-leak.zig} | 0 .../{2-c-interop.zig => 3-c-interop.zig} | 0 .../samples/{3-ziggzagg.zig => 4-ziggzagg.zig} | 0 .../{4-generic-type.zig => 5-generic-type.zig} | 0 .../zig-code/samples/{5-curl.zig => 6-curl.zig} | 0 content/en-US/learn/samples.smd | 17 +++++++++++------ 8 files changed, 18 insertions(+), 6 deletions(-) create mode 100644 assets/zig-code/samples/0-hello-world.zig rename assets/zig-code/samples/{0-windows-msgbox.zig => 1-windows-msgbox.zig} (100%) rename assets/zig-code/samples/{1-memory-leak.zig => 2-memory-leak.zig} (100%) rename assets/zig-code/samples/{2-c-interop.zig => 3-c-interop.zig} (100%) rename assets/zig-code/samples/{3-ziggzagg.zig => 4-ziggzagg.zig} (100%) rename assets/zig-code/samples/{4-generic-type.zig => 5-generic-type.zig} (100%) rename assets/zig-code/samples/{5-curl.zig => 6-curl.zig} (100%) diff --git a/assets/zig-code/samples/0-hello-world.zig b/assets/zig-code/samples/0-hello-world.zig new file mode 100644 index 000000000..f04341b12 --- /dev/null +++ b/assets/zig-code/samples/0-hello-world.zig @@ -0,0 +1,7 @@ +const std = @import("std"); + +pub fn main() void { + std.debug.print("hello world!", .{}); +} + +// exe=succeed diff --git a/assets/zig-code/samples/0-windows-msgbox.zig b/assets/zig-code/samples/1-windows-msgbox.zig similarity index 100% rename from assets/zig-code/samples/0-windows-msgbox.zig rename to assets/zig-code/samples/1-windows-msgbox.zig diff --git a/assets/zig-code/samples/1-memory-leak.zig b/assets/zig-code/samples/2-memory-leak.zig similarity index 100% rename from assets/zig-code/samples/1-memory-leak.zig rename to assets/zig-code/samples/2-memory-leak.zig diff --git a/assets/zig-code/samples/2-c-interop.zig b/assets/zig-code/samples/3-c-interop.zig similarity index 100% rename from assets/zig-code/samples/2-c-interop.zig rename to assets/zig-code/samples/3-c-interop.zig diff --git a/assets/zig-code/samples/3-ziggzagg.zig b/assets/zig-code/samples/4-ziggzagg.zig similarity index 100% rename from assets/zig-code/samples/3-ziggzagg.zig rename to assets/zig-code/samples/4-ziggzagg.zig diff --git a/assets/zig-code/samples/4-generic-type.zig b/assets/zig-code/samples/5-generic-type.zig similarity index 100% rename from assets/zig-code/samples/4-generic-type.zig rename to assets/zig-code/samples/5-generic-type.zig diff --git a/assets/zig-code/samples/5-curl.zig b/assets/zig-code/samples/6-curl.zig similarity index 100% rename from assets/zig-code/samples/5-curl.zig rename to assets/zig-code/samples/6-curl.zig diff --git a/content/en-US/learn/samples.smd b/content/en-US/learn/samples.smd index 85f9e4b92..d42109c9b 100644 --- a/content/en-US/learn/samples.smd +++ b/content/en-US/learn/samples.smd @@ -9,35 +9,40 @@ }, --- +# [Hello world]($heading.id('ext')) +A minimal example printing hello world. + +[]($code.language('=html').buildAsset("samples/0-hello-world.zig")) + # [Calling external library functions]($heading.id('ext')) All system API functions can be invoked this way, you do not need library bindings to interface them. -[]($code.language('=html').buildAsset("samples/0-windows-msgbox.zig")) +[]($code.language('=html').buildAsset("samples/1-windows-msgbox.zig")) # [Memory leak detection]($heading.id('leak')) Using `std.heap.GeneralPurposeAllocator` you can track double frees and memory leaks. -[]($code.language('=html').buildAsset("samples/1-memory-leak.zig")) +[]($code.language('=html').buildAsset("samples/2-memory-leak.zig")) # [C interoperability]($heading.id('c-interop')) Example of importing a C header file and linking to both libc and raylib. -[]($code.language('=html').buildAsset("samples/2-c-interop.zig")) +[]($code.language('=html').buildAsset("samples/3-c-interop.zig")) # [Zigg Zagg]($heading.id('zigg-zagg')) Zig is *optimized* for coding interviews (not really). -[]($code.language('=html').buildAsset("samples/3-ziggzagg.zig")) +[]($code.language('=html').buildAsset("samples/4-ziggzagg.zig")) # [Generic Types]($heading.id('generic')) In Zig types are comptime values and we use functions that return a type to implement generic algorithms and data structures. In this example we implement a simple generic queue and test its behaviour. -[]($code.language('=html').buildAsset("samples/4-generic-type.zig")) +[]($code.language('=html').buildAsset("samples/5-generic-type.zig")) # [Using cURL from Zig]($heading.id('curl')) -[]($code.language('=html').buildAsset("samples/5-curl.zig")) +[]($code.language('=html').buildAsset("samples/6-curl.zig")) From 9db4fd56d027ed5037aadc8c3d763867f1fc63e1 Mon Sep 17 00:00:00 2001 From: Leigh McCulloch <351529+leighmcculloch@users.noreply.github.com> Date: Fri, 20 Sep 2024 20:57:28 +1000 Subject: [PATCH 2/3] renamed code files --- .../samples/{3-c-interop.zig => c-interop.zig} | 0 assets/zig-code/samples/{6-curl.zig => curl.zig} | 0 .../{5-generic-type.zig => generic-type.zig} | 0 .../samples/{0-hello-world.zig => hello-world.zig} | 0 .../samples/{2-memory-leak.zig => memory-leak.zig} | 0 .../{1-windows-msgbox.zig => windows-msgbox.zig} | 0 .../samples/{4-ziggzagg.zig => ziggzagg.zig} | 0 content/en-US/learn/samples.smd | 14 +++++++------- 8 files changed, 7 insertions(+), 7 deletions(-) rename assets/zig-code/samples/{3-c-interop.zig => c-interop.zig} (100%) rename assets/zig-code/samples/{6-curl.zig => curl.zig} (100%) rename assets/zig-code/samples/{5-generic-type.zig => generic-type.zig} (100%) rename assets/zig-code/samples/{0-hello-world.zig => hello-world.zig} (100%) rename assets/zig-code/samples/{2-memory-leak.zig => memory-leak.zig} (100%) rename assets/zig-code/samples/{1-windows-msgbox.zig => windows-msgbox.zig} (100%) rename assets/zig-code/samples/{4-ziggzagg.zig => ziggzagg.zig} (100%) diff --git a/assets/zig-code/samples/3-c-interop.zig b/assets/zig-code/samples/c-interop.zig similarity index 100% rename from assets/zig-code/samples/3-c-interop.zig rename to assets/zig-code/samples/c-interop.zig diff --git a/assets/zig-code/samples/6-curl.zig b/assets/zig-code/samples/curl.zig similarity index 100% rename from assets/zig-code/samples/6-curl.zig rename to assets/zig-code/samples/curl.zig diff --git a/assets/zig-code/samples/5-generic-type.zig b/assets/zig-code/samples/generic-type.zig similarity index 100% rename from assets/zig-code/samples/5-generic-type.zig rename to assets/zig-code/samples/generic-type.zig diff --git a/assets/zig-code/samples/0-hello-world.zig b/assets/zig-code/samples/hello-world.zig similarity index 100% rename from assets/zig-code/samples/0-hello-world.zig rename to assets/zig-code/samples/hello-world.zig diff --git a/assets/zig-code/samples/2-memory-leak.zig b/assets/zig-code/samples/memory-leak.zig similarity index 100% rename from assets/zig-code/samples/2-memory-leak.zig rename to assets/zig-code/samples/memory-leak.zig diff --git a/assets/zig-code/samples/1-windows-msgbox.zig b/assets/zig-code/samples/windows-msgbox.zig similarity index 100% rename from assets/zig-code/samples/1-windows-msgbox.zig rename to assets/zig-code/samples/windows-msgbox.zig diff --git a/assets/zig-code/samples/4-ziggzagg.zig b/assets/zig-code/samples/ziggzagg.zig similarity index 100% rename from assets/zig-code/samples/4-ziggzagg.zig rename to assets/zig-code/samples/ziggzagg.zig diff --git a/content/en-US/learn/samples.smd b/content/en-US/learn/samples.smd index d42109c9b..f03ba32ef 100644 --- a/content/en-US/learn/samples.smd +++ b/content/en-US/learn/samples.smd @@ -12,37 +12,37 @@ # [Hello world]($heading.id('ext')) A minimal example printing hello world. -[]($code.language('=html').buildAsset("samples/0-hello-world.zig")) +[]($code.language('=html').buildAsset("samples/hello-world.zig")) # [Calling external library functions]($heading.id('ext')) All system API functions can be invoked this way, you do not need library bindings to interface them. -[]($code.language('=html').buildAsset("samples/1-windows-msgbox.zig")) +[]($code.language('=html').buildAsset("samples/windows-msgbox.zig")) # [Memory leak detection]($heading.id('leak')) Using `std.heap.GeneralPurposeAllocator` you can track double frees and memory leaks. -[]($code.language('=html').buildAsset("samples/2-memory-leak.zig")) +[]($code.language('=html').buildAsset("samples/memory-leak.zig")) # [C interoperability]($heading.id('c-interop')) Example of importing a C header file and linking to both libc and raylib. -[]($code.language('=html').buildAsset("samples/3-c-interop.zig")) +[]($code.language('=html').buildAsset("samples/c-interop.zig")) # [Zigg Zagg]($heading.id('zigg-zagg')) Zig is *optimized* for coding interviews (not really). -[]($code.language('=html').buildAsset("samples/4-ziggzagg.zig")) +[]($code.language('=html').buildAsset("samples/ziggzagg.zig")) # [Generic Types]($heading.id('generic')) In Zig types are comptime values and we use functions that return a type to implement generic algorithms and data structures. In this example we implement a simple generic queue and test its behaviour. -[]($code.language('=html').buildAsset("samples/5-generic-type.zig")) +[]($code.language('=html').buildAsset("samples/generic-type.zig")) # [Using cURL from Zig]($heading.id('curl')) -[]($code.language('=html').buildAsset("samples/6-curl.zig")) +[]($code.language('=html').buildAsset("samples/curl.zig")) From 348f6e23bbe181443d3908c0169664c32a4e2aac Mon Sep 17 00:00:00 2001 From: Leigh McCulloch <351529+leighmcculloch@users.noreply.github.com> Date: Fri, 20 Sep 2024 21:04:25 +1000 Subject: [PATCH 3/3] update example --- assets/zig-code/samples/hello-world.zig | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/assets/zig-code/samples/hello-world.zig b/assets/zig-code/samples/hello-world.zig index f04341b12..2dff328a0 100644 --- a/assets/zig-code/samples/hello-world.zig +++ b/assets/zig-code/samples/hello-world.zig @@ -1,7 +1,9 @@ const std = @import("std"); +const stdout = std.io.getStdOut().writer(); -pub fn main() void { - std.debug.print("hello world!", .{}); +pub fn main() !void { + try stdout.print("hello world!\n", .{}); } // exe=succeed +