commit:     83584504b4af6c034813ec2bd0cc1b866a43dd66
Author:     Arnau Camprubí <arnauxabia <AT> gmail <DOT> com>
AuthorDate: Sun Aug 24 22:03:08 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Sep  1 10:31:16 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=83584504

dev-lang/zig-bin: add 0.15.1

Signed-off-by: Arnau Camprubí <arnauxabia <AT> gmail.com>
Part-of: https://github.com/gentoo/gentoo/pull/43546
Closes: https://github.com/gentoo/gentoo/pull/43546
Signed-off-by: Sam James <sam <AT> gentoo.org>

 dev-lang/zig-bin/Manifest                          |  16 ++
 .../zig-0.15.1-reduce-command-new-writer.patch     | 175 +++++++++++++++++++++
 dev-lang/zig-bin/zig-bin-0.15.1.ebuild             |  88 +++++++++++
 3 files changed, 279 insertions(+)

diff --git a/dev-lang/zig-bin/Manifest b/dev-lang/zig-bin/Manifest
index e01e0cc6c39e..61db9c89ddec 100644
--- a/dev-lang/zig-bin/Manifest
+++ b/dev-lang/zig-bin/Manifest
@@ -1,5 +1,9 @@
 DIST zig-aarch64-linux-0.14.1.tar.xz 44954692 BLAKE2B 
4d79559595517c39718d88ad7fc2a3584454f5a239c7e0e444e3137e0041b8e247bf21357f9acc6e075a128dd126832f4ff4a699f64a3dc98f6734feff6311dc
 SHA512 
0019698d9a234dcce32bf84fcc09b582d55a2149e0d6a3d7e38a0a7c22b74d501f4c6c074b3f87dc5fe8b623996059168427eef4a60dea95099e0d5e2123cfe0
 DIST zig-aarch64-linux-0.14.1.tar.xz.minisig 326 BLAKE2B 
5a9b834101c483a7879bc01c6929bf4fd7de38215fc3aa8a19629c30078f81bedeafa37781e4d2d56fe6558a149b2be93e4325698ae6d60e22a238a03d70d198
 SHA512 
81782c22658f8697b6bf7c1a762da1d05541d8e26c23d224b39d464d07ec054d9f58ca2e5526c5e0f08e52ecc7a46a518be36555c76d06eb70411984bb3d2204
+DIST zig-aarch64-linux-0.15.1.tar.xz 49493872 BLAKE2B 
b01d77024afcc00228decf1ea2af7e1a999e7d519319c8bb86ec5757ab4d7a88e4f77f86ca7bc451e76bd5167505472286ed697ad2a23d7d4a078b6ac14d4308
 SHA512 
744f1bbfd13ea003ca79f6925e5030eead9836979b930d4cc1505e1500aa318bbc29d5dcb74f0680ed0ddf04d129478b76c51d48dfb572af6b7d2015786a4013
+DIST zig-aarch64-linux-0.15.1.tar.xz.minisig 326 BLAKE2B 
b21eb25d68f70bb9a63326d5c855417877cbe168409d974d62f4de5217b941cf595414f376b3c64f1b1530e9a6bb1b35b7c5354b98aad402da184e35b7d38557
 SHA512 
81f684e947376c9838d09cb3f16405c108c23ea96bca8d622ea758f716c6e23e9ad7cfbe4c50c182e050609469cc88e8a0f2a236d8d368b3e3b60cf30baf73fa
+DIST zig-arm-linux-0.15.1.tar.xz 50477464 BLAKE2B 
264e612869d8d0d7aa420eb364b632513c127d52712f7057b838584045c98c26528417d1ed419bbb4b61c8110d3839de4ab6651afe45aa85653d2ae099b0133d
 SHA512 
cacc2ebab72663fcd4d0c5c61f8e6e894bcfaedbe86ee729aa714d0344df6462b767e89f6cdf6326954c653b18d12e3b41c387ba337cc8e8495d92d947c11d8a
+DIST zig-arm-linux-0.15.1.tar.xz.minisig 322 BLAKE2B 
354c87e81bc6bf72390e4e8c2f6397da37ed4ba47c67c39aa03140791157193a8380c5da5915fc72c3c080567dc95a6d1fc5a9c8c606b1c1c326c1b3ebeff6a8
 SHA512 
eca65431b89e3890f7e8d81294ef8dbf2a95c54dbef620028382a0885179c408fef6a421d443817be5d9283fa6b441f2e012a74944e8eec51f9ea8514ba5deef
 DIST zig-armv7a-linux-0.14.1.tar.xz 46137456 BLAKE2B 
295f3f4e029504aa7ea983ae24146a0e4a613a9822237c5a246c569e1409f138bfc5350f70426536502ef88fbad85fbcf2185822823559e18d07fd85eff7c5a2
 SHA512 
786a33ee9a2472cb35f338e84a120d122a2206b43b64877cf74dbf22eb7afd8b23ab77e04cd225e6731fda26c9acc513204d4cf562d3672d6efdee85f6221976
 DIST zig-armv7a-linux-0.14.1.tar.xz.minisig 325 BLAKE2B 
0dc940ddd44fe1a155e5aa92df8d9722a4cd20e189b0c3d136a6f95cdf79eab34810451e181c595782efe53066641c97eb0a85996cd860eafbbfaa10e0ad2d06
 SHA512 
328b265f9539eaed2fff5e29d16120c5b9f32c1658565e9c9b8f82cb19ce0bec3b8b30beb6b5339c12ad082bbf1440e03a828aa1444c168e561006a0c8e6ad82
 DIST zig-linux-aarch64-0.10.1.tar.xz 40321280 BLAKE2B 
39abefb80d540d52333ec76203893630ac5df2a784684397033e9ac766f67c4512be71513ebb80faac6c5ebaa2a737859b7bc27b82797232cf97d87d91e8492e
 SHA512 
44dd15b1b2d7bc85a4f8e8171ae5c51122be352249273091b499de5a392c72e262585f981908afd1718a41fa7e67b36f1b65c6cacbf8e9f226a687bd85b7edc6
@@ -26,13 +30,25 @@ DIST zig-linux-x86_64-0.13.0.tar.xz 47082308 BLAKE2B 
587565eaac53f0137bdfb4c58e5
 DIST zig-linux-x86_64-0.13.0.tar.xz.minisig 325 BLAKE2B 
9161b9b36c38c2b388a0850011bcc22119bb7b0333615914780fe63fb741298524be196db07277771b6f3f053079c7f95b5786dbb9059c4a627a9786752ebe4e
 SHA512 
279cf9abb3b86893a3fd4ac124e954d8f01d6823831591cf2c869538bce4b2cbfcdb67279b9875bfe3a865841ca976b9fb7b4c4c63fe2b56937d3023664e81c6
 DIST zig-loongarch64-linux-0.14.1.tar.xz 45825404 BLAKE2B 
297087d8cab208d556ab42f078af10e64347bf3be80a8a249b31d5435c8848f6549f92d14365be6dfddeb2a2f05c61da94fa6d35212cc4743ad455c7ae7fe068
 SHA512 
c8c29bbacd7a17eedd1103dc6dac15c43838df2e244f321407a540e5ec74bd06d65a02433f2a49b16033b39876398f4864f78d17069e6d41850bc4ff358e679e
 DIST zig-loongarch64-linux-0.14.1.tar.xz.minisig 330 BLAKE2B 
78d7acc98e6dbaf1f78e5068aa2780b546b737f1e852f4f670f15c3fc99a6cd99cbcabe24ede963f11c3b76d0a8c9ec326519e5964105b1a7eddce1d7ba6e25b
 SHA512 
f0f7e03d292b46d8ed3e69d7630eb659de4d9ee249d80e921d38ed7cd84f3a4dbc58ed2cdb01c554c6ae0a9cd4409b420794e3e9b90fd5b63e0ed54066888b3f
+DIST zig-loongarch64-linux-0.15.1.tar.xz 50794376 BLAKE2B 
877948595173bc07a3fb9ac1e85b557f1ea4d57183d19e0ac917764c170015509d799e79ca81fd7a1723328d3ea931642a51b4b2cc957f717aff3334748fc12e
 SHA512 
8a7ad0ee82fbb54db8cea6725af39ea0ae912dbc8d77faa6e582de8691490c923db41b09b168b3c46e8198b4cbdebba79a2176424f6dcfc142c3e1c372021d97
+DIST zig-loongarch64-linux-0.15.1.tar.xz.minisig 330 BLAKE2B 
528bf6f6d605ee12e6d07d1225280171c1fdbbfe878b25747e12e6ff9e0a9cb3b138e2b61cd6becd20addaafa5001e06afc4c67d54caf6061c54c4695e669587
 SHA512 
5f50f45b88564cd8c6616a4f9f1d68e9c1dde6ae529925098cc243e7d8361c0ee667cc5f5bf67965881d957791afc82049b2a91b568b5158f6b77c7d43dc4672
 DIST zig-powerpc64le-linux-0.14.1.tar.xz 48720956 BLAKE2B 
b70a031670af1100a282df79edebfb0c6244dee5b36f49c9d902a6c09dd4b77d38f7e69578ae51ecc913fe7e22a5339b4fe5ec33ae4c0f7011aa1d317699cfa7
 SHA512 
5497837188fe04a9617288f059c2eb2c275b647307b21ac6c4ec6ac305ce88849c7a463e4c1f56acd63e41059fa8bfaf43da4a6f5d3e2b3fe66fe6a7259dd749
 DIST zig-powerpc64le-linux-0.14.1.tar.xz.minisig 330 BLAKE2B 
3f58fcab727f953ccd29221e88ec07838a3b4afe2084cb7cbfd5140f747b3034b799c00c8b855c1ccdf831f2bcfa86cc9081531e884033602d552900d14d9dfa
 SHA512 
8433a2c06a4489e6776d0af81d7b52ba2311d3d1c94c96e331be8d155f84ce4b4967640709a741b5fd0e436e760d54ccaf9f460a223823caab413a69672402c4
+DIST zig-powerpc64le-linux-0.15.1.tar.xz 53566944 BLAKE2B 
e22bffa70b7034462386db804e11a91332251b14c45e5e6f875503af6719791ea0af939822c0547b1fb724ce85194db12830b0890d8c8932c4f2d24909bff80d
 SHA512 
67204f857f633a9740b7f4433a2eafd297ebb982905cf244c3045219e7f4cd6ecee6523f2562748bed2e7c2b8787630edf1032d61cece28203fa0f93eb2b5025
+DIST zig-powerpc64le-linux-0.15.1.tar.xz.minisig 330 BLAKE2B 
420ca48b76efdf74b338235d019994cd905f4fdbaa1e933a8465743466b771a24c6e5d6f0b86173e25bdd5ba5da0527986ae0756989b61e907acafc45ad4577e
 SHA512 
33c9f0e68a533f98175947044429202de2503cc2e1cf74f4941bfa4a92df05557c36c47b93d4dc8fbc6c845493e02e23ced1a3b08a41bb059012b1c0abbee959
 DIST zig-riscv64-linux-0.14.1.tar.xz 48094380 BLAKE2B 
927f8e4d73a0f5cfcdf8b44eb9d13711376b9c6ee2c62629867447bb64e2435f5176685ca204e875bba6d391321eadaa32e7a6095517bd1eca48e49120c9914e
 SHA512 
bd641426d3bcbc2e090ee9300dc2203a669412ed8971e127a17186d404f87130782166ca5733e01fa9918574c82c7862ec31ff7eb542bceea611c74621f80686
 DIST zig-riscv64-linux-0.14.1.tar.xz.minisig 326 BLAKE2B 
4cc71606ea310277f674051a03c524012049d5a276459bb1eb7bca05a6139bf1cc2320c7cbd33c367461dede6d21a251ba543a0bec3ad1b1468c31bc63cef23f
 SHA512 
46c9a598043863f6aa8439444453d252c5ab3e88c7ebea04ee2e2c1a12dd68a4669fde4082de6c5cb8976925330c4d1e8296240b3c033f5075f7422548d3d04a
+DIST zig-riscv64-linux-0.15.1.tar.xz 53597792 BLAKE2B 
159ee35c603523d54655c84df3d9c775552308fe73e45035095ff20077ab0ef05f64412609239c8c2f120432316fb8276f2e51e8f50cc76a9af9e9d075098e5c
 SHA512 
e95d5ee02263f9a3ffc962b871c2a4237290d608a32c654c340ebbfe473310f2acdd670e121e2aeaf256adc2f6df63eb2ae98e8975a4d7b6c094d206b3941766
+DIST zig-riscv64-linux-0.15.1.tar.xz.minisig 326 BLAKE2B 
4ccd409422ce624785f0bf4b588b4b4d58a72b864b4a7d8f93912d2f5ccc0905cd62797a55580e155877f6bade7ecb1f0c25b1def05ff9c2c74c8d44f1974ae2
 SHA512 
6e1600a8bee53f248203f05fc4b56dea7052f0ff9529dd8adecb11ba929484b8295ed948e197486385b29ea527b1f9cac599417972c0a2ea0a66527da20ca7a1
 DIST zig-s390x-linux-0.14.1.tar.xz 55602032 BLAKE2B 
6a9ec84ca4990738f999c2b751e53666f56668a648aac2762fc00fca13bb0063904eb2c28878bade58f4cafb79163f44a0e729718ed850361876d094ad41a903
 SHA512 
edf79bf57304495f952639954e5add91db54213887b75707686548b121d9e1605af1d1d8010ad3f5b54e05b74c122f16edd7708cae8611247716c0a5b37cf82d
 DIST zig-s390x-linux-0.14.1.tar.xz.minisig 324 BLAKE2B 
29175fc5a41849911bca20f2079c7cf3bf74a6954fbf0b6555503a70d9da56f9089540bfc0d1391831147019cb108b467033262174fba6818f1cc0a83472c4d0
 SHA512 
153734c9b11e56f5009b0875621e6f2444e2f68c25c9be297091483f016a597e0d226a167fff66c64ec5c8b291a026a64f53df10330c08cbc95e1f2fa263b3a2
+DIST zig-s390x-linux-0.15.1.tar.xz 53508068 BLAKE2B 
f51f32c8b716dbab830d996982d8e1f587bedf91d5fc377866bd57a5c5569a7e993cb9383209c228440b23ef5fc4f2ec0e04072c3f80fe3de89849a132d81dae
 SHA512 
d0bd692bb57c32d2e56ddaa01e33b73d48fda8b5a546c4f7148249c81395181686dbf8ddbd5154df9a8d929c902c075308978cd2df147aebe118c87811cbaab9
+DIST zig-s390x-linux-0.15.1.tar.xz.minisig 324 BLAKE2B 
a0d3b9913898c99a0199cf0a5e0bb84484e4da55da8cb3f5ac4a7cc26584342df7ea6df7d5fcc59f3b943d2a382b6664c64dde7de5bda7908cad01751373d5cb
 SHA512 
bffad324f68a5e58ff94bd182fd168e7cf5c35b7db670105a677e1152f4046d74b4a1bb4ee776b7146469a4d72d5c2187621b8c6c7e2f1079cbadccc63f98c5f
 DIST zig-x86-linux-0.14.1.tar.xz 51643520 BLAKE2B 
cd8c17720a1a0d0b7f37c54b4e2e13c10d32875783682ebdf28801801204f6cb156fdf5912379b868dbb7f44752b7b56b1e43ffd9d23dfc39e46e395ac4b5f3b
 SHA512 
a1cfed87bbcce9bfd11dceaa59c44682e6d5eee2defdbc14a9120cb282c01fa9a9a640f5c195d8d8858a9ab612d642bbc19342fcf298c02fc25696e797284bbe
 DIST zig-x86-linux-0.14.1.tar.xz.minisig 322 BLAKE2B 
cbfd887890ffe25dcd527bc04554eb7ee5dfca63d06828a93897fffc0a617cc03107bd6806b92e7f2492f2b62a9dbca2be5d81ca8f90a3f361f051b4edf61402
 SHA512 
21723b8d429b7cd79e8b76b8e69ea12eab54a6d6d636d5c8e85e4fd180080a2fe377eebd1dd626551f6af470a71943ced0bfa09ab13dfdf983d4c4bcf74d99e6
+DIST zig-x86-linux-0.15.1.tar.xz 56311228 BLAKE2B 
2f19b3b46be4eedc05a93731ffc3ac3a67cbc8f8336930a652122d5b90135896217ad37472c6b9fdda6c54408a17ce351a15cbbb78559f7a1480918a4c2e5d42
 SHA512 
67c2493420b01d41218f992ee4fa801ca6a4f1ced7a09d927a750187bff5f5af9b49ee02b0516b6e76692ae0cb518d73adc1964345c2ca80d658914af3bb5947
+DIST zig-x86-linux-0.15.1.tar.xz.minisig 322 BLAKE2B 
22337b1a7678365f3c36744b3f5e11400c34fe793dd2b9595ffa49ee78ea1eaf755ab7f342a679b18acc2b2f02db9703f18f9b6675346cbeb58deb15630f4702
 SHA512 
3d0a355d642fcc69a77e51e660f1c2d8e973555e31853b263a7f03adbb38277897f17be036f205dc835ecafc90ae0c69a95d2f66a802bb17e3cc6bc6c4f084d0
 DIST zig-x86_64-linux-0.14.1.tar.xz 49086504 BLAKE2B 
c9e50c7f6d1df3de4579671069e0d6609f81767e7a47d5c5a60e5f07b0583da1e5531c0ba7a7cc331efe87df123f2ec6bca68b34ef20f94352317810957000cd
 SHA512 
7434388df6569e8319daf974ddb564013ffa6441ddef9517d648512e3f260c7ab52ee70ab80d5d56e5b9ee15df203c8834db181752576e130c875a7414677f34
 DIST zig-x86_64-linux-0.14.1.tar.xz.minisig 325 BLAKE2B 
61820da772bbdb4f6a15908f2b39938a25595f6e247d7bd1e33f05d0b02b2fa0e865ec834eb0fa760dc25e97aa4c5f88182fcf0055c8ed0edf498300685c69ea
 SHA512 
897d40004f434dfc88223bf2d074c317ebe65289e55eb77570a0ae253dcc807f9bf5b77e3ff7e4152fb3d0179a98851c1210ff3e81410bbf24ce645d85a597e3
+DIST zig-x86_64-linux-0.15.1.tar.xz 53734456 BLAKE2B 
4e14bfe9fce7416ac398bd361c45194beae60d0e258bc01600e7c6df21a71b3b43198c9de9a26f807b4cda404541d44b1fc2d5f3b66ea78ac3a66780b4f3ee16
 SHA512 
b48538e3196638faee0756f03db195d5460ff2ea2c05c42c9cf836a90907e324083d3e4d1d4c25197c8f4fed11ebca10a7c56f19f2e108abfb411c7a0b5582ea
+DIST zig-x86_64-linux-0.15.1.tar.xz.minisig 325 BLAKE2B 
6b431b122e3b2d16f7469113a603a2fc637ddaccf4e50c0ced57ce6e4b9e6c3bd8b5e133f92c58514b4d08cddc319a6e2d4f87e4625e05392aa0bcd5def006fd
 SHA512 
e8f4dbfad9ac25df088d3030de4890d17b30e8430c1e1738c0d77e8c00d4da4801e1d2567d982fd0559a485f3d55f9eb8abebae076500d8a2092e32ccf630c9f

diff --git a/dev-lang/zig-bin/files/zig-0.15.1-reduce-command-new-writer.patch 
b/dev-lang/zig-bin/files/zig-0.15.1-reduce-command-new-writer.patch
new file mode 100644
index 000000000000..07bb44b3cfa7
--- /dev/null
+++ b/dev-lang/zig-bin/files/zig-0.15.1-reduce-command-new-writer.patch
@@ -0,0 +1,175 @@
+# https://github.com/ziglang/zig/pull/24928
+
+From: Justus Klausecker <[email protected]>
+
+zig reduce: adapt to new Writer API
+
+diff --git a/lib/compiler/reduce.zig b/lib/compiler/reduce.zig
+index d9955b9e3383..b20a2fcba318 100644
+--- a/lib/compiler/reduce.zig
++++ b/lib/compiler/reduce.zig
+@@ -114,10 +114,10 @@ pub fn main() !void {
+     interestingness_argv.appendAssumeCapacity(checker_path);
+     interestingness_argv.appendSliceAssumeCapacity(argv);
+ 
+-    var rendered = std.array_list.Managed(u8).init(gpa);
++    var rendered: std.Io.Writer.Allocating = .init(gpa);
+     defer rendered.deinit();
+ 
+-    var astgen_input = std.array_list.Managed(u8).init(gpa);
++    var astgen_input: std.Io.Writer.Allocating = .init(gpa);
+     defer astgen_input.deinit();
+ 
+     var tree = try parse(gpa, root_source_file_path);
+@@ -138,10 +138,10 @@ pub fn main() !void {
+         }
+     }
+ 
+-    var fixups: Ast.Fixups = .{};
++    var fixups: Ast.Render.Fixups = .{};
+     defer fixups.deinit(gpa);
+ 
+-    var more_fixups: Ast.Fixups = .{};
++    var more_fixups: Ast.Render.Fixups = .{};
+     defer more_fixups.deinit(gpa);
+ 
+     var rng = std.Random.DefaultPrng.init(seed);
+@@ -188,15 +188,14 @@ pub fn main() !void {
+             try transformationsToFixups(gpa, arena, root_source_file_path, 
this_set, &fixups);
+ 
+             rendered.clearRetainingCapacity();
+-            try tree.renderToArrayList(&rendered, fixups);
++            try tree.render(gpa, &rendered.writer, fixups);
+ 
+             // The transformations we applied may have resulted in unused 
locals,
+             // in which case we would like to add the respective discards.
+             {
+-                try astgen_input.resize(rendered.items.len);
+-                @memcpy(astgen_input.items, rendered.items);
+-                try astgen_input.append(0);
+-                const source_with_null = astgen_input.items[0 .. 
astgen_input.items.len - 1 :0];
++                try astgen_input.writer.writeAll(rendered.written());
++                try astgen_input.writer.writeByte(0);
++                const source_with_null = 
astgen_input.written()[0..(astgen_input.written().len - 1) :0];
+                 var astgen_tree = try Ast.parse(gpa, source_with_null, .zig);
+                 defer astgen_tree.deinit(gpa);
+                 if (astgen_tree.errors.len != 0) {
+@@ -228,12 +227,12 @@ pub fn main() !void {
+                     }
+                     if (more_fixups.count() != 0) {
+                         rendered.clearRetainingCapacity();
+-                        try astgen_tree.renderToArrayList(&rendered, 
more_fixups);
++                        try astgen_tree.render(gpa, &rendered.writer, 
more_fixups);
+                     }
+                 }
+             }
+ 
+-            try std.fs.cwd().writeFile(.{ .sub_path = root_source_file_path, 
.data = rendered.items });
++            try std.fs.cwd().writeFile(.{ .sub_path = root_source_file_path, 
.data = rendered.written() });
+             // std.debug.print("trying this code:\n{s}\n", .{rendered.items});
+ 
+             const interestingness = try runCheck(arena, 
interestingness_argv.items);
+@@ -273,8 +272,8 @@ pub fn main() !void {
+         // Revert the source back to not be transformed.
+         fixups.clearRetainingCapacity();
+         rendered.clearRetainingCapacity();
+-        try tree.renderToArrayList(&rendered, fixups);
+-        try std.fs.cwd().writeFile(.{ .sub_path = root_source_file_path, 
.data = rendered.items });
++        try tree.render(gpa, &rendered.writer, fixups);
++        try std.fs.cwd().writeFile(.{ .sub_path = root_source_file_path, 
.data = rendered.written() });
+ 
+         return std.process.cleanExit();
+     }
+@@ -318,7 +317,7 @@ fn transformationsToFixups(
+     arena: Allocator,
+     root_source_file_path: []const u8,
+     transforms: []const Walk.Transformation,
+-    fixups: *Ast.Fixups,
++    fixups: *Ast.Render.Fixups,
+ ) !void {
+     fixups.clearRetainingCapacity();
+ 
+@@ -359,7 +358,7 @@ fn transformationsToFixups(
+                 other_file_ast.deinit(gpa);
+             }
+ 
+-            var inlined_fixups: Ast.Fixups = .{};
++            var inlined_fixups: Ast.Render.Fixups = .{};
+             defer inlined_fixups.deinit(gpa);
+             if (std.fs.path.dirname(inline_imported_file.imported_string)) 
|dirname| {
+                 inlined_fixups.rebase_imported_paths = dirname;
+@@ -382,16 +381,16 @@ fn transformationsToFixups(
+                 }
+             }
+ 
+-            var other_source = std.array_list.Managed(u8).init(gpa);
++            var other_source: std.io.Writer.Allocating = .init(gpa);
+             defer other_source.deinit();
+-            try other_source.appendSlice("struct {\n");
+-            try other_file_ast.renderToArrayList(&other_source, 
inlined_fixups);
+-            try other_source.appendSlice("}");
++            try other_source.writer.writeAll("struct {\n");
++            try other_file_ast.render(gpa, &other_source.writer, 
inlined_fixups);
++            try other_source.writer.writeAll("}");
+ 
+             try fixups.replace_nodes_with_string.put(
+                 gpa,
+                 inline_imported_file.builtin_call_node,
+-                try arena.dupe(u8, other_source.items),
++                try arena.dupe(u8, other_source.written()),
+             );
+         },
+     };
+diff --git a/lib/compiler/reduce/Walk.zig b/lib/compiler/reduce/Walk.zig
+index 4e41fdf1a2a9..7a448fad2172 100644
+--- a/lib/compiler/reduce/Walk.zig
++++ b/lib/compiler/reduce/Walk.zig
+@@ -501,6 +501,10 @@ fn walkExpression(w: *Walk, node: Ast.Node.Index) 
Error!void {
+         .@"asm",
+         => return walkAsm(w, ast.fullAsm(node).?),
+ 
++        .asm_legacy => {
++            return walkAsmLegacy(w, ast.legacyAsm(node).?);
++        },
++
+         .enum_literal => {
+             return walkIdentifier(w, ast.nodeMainToken(node)); // name
+         },
+@@ -665,7 +669,7 @@ fn walkStructInit(
+ 
+ fn walkCall(w: *Walk, call: Ast.full.Call) Error!void {
+     try walkExpression(w, call.ast.fn_expr);
+-    try walkParamList(w, call.ast.params);
++    try walkExpressions(w, call.ast.params);
+ }
+ 
+ fn walkSlice(
+@@ -830,7 +834,7 @@ fn walkWhile(w: *Walk, node_index: Ast.Node.Index, 
while_node: Ast.full.While) E
+ }
+ 
+ fn walkFor(w: *Walk, for_node: Ast.full.For) Error!void {
+-    try walkParamList(w, for_node.ast.inputs);
++    try walkExpressions(w, for_node.ast.inputs);
+     try walkExpression(w, for_node.ast.then_expr);
+     if (for_node.ast.else_expr.unwrap()) |else_expr| {
+         try walkExpression(w, else_expr);
+@@ -874,15 +878,12 @@ fn walkIf(w: *Walk, node_index: Ast.Node.Index, if_node: 
Ast.full.If) Error!void
+ 
+ fn walkAsm(w: *Walk, asm_node: Ast.full.Asm) Error!void {
+     try walkExpression(w, asm_node.ast.template);
+-    for (asm_node.ast.items) |item| {
+-        try walkExpression(w, item);
+-    }
++    try walkExpressions(w, asm_node.ast.items);
+ }
+ 
+-fn walkParamList(w: *Walk, params: []const Ast.Node.Index) Error!void {
+-    for (params) |param_node| {
+-        try walkExpression(w, param_node);
+-    }
++fn walkAsmLegacy(w: *Walk, asm_node: Ast.full.AsmLegacy) Error!void {
++    try walkExpression(w, asm_node.ast.template);
++    try walkExpressions(w, asm_node.ast.items);
+ }
+ 
+ /// Check if it is already gutted (i.e. its body replaced with `@trap()`).

diff --git a/dev-lang/zig-bin/zig-bin-0.15.1.ebuild 
b/dev-lang/zig-bin/zig-bin-0.15.1.ebuild
new file mode 100644
index 000000000000..13f5f39824d3
--- /dev/null
+++ b/dev-lang/zig-bin/zig-bin-0.15.1.ebuild
@@ -0,0 +1,88 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+VERIFY_SIG_METHOD=minisig
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/minisig-keys/zig-software-foundation.pub
+inherit verify-sig
+
+DESCRIPTION="A robust, optimal, and maintainable programming language"
+HOMEPAGE="https://ziglang.org/";
+SRC_URI="
+       amd64? ( 
https://ziglang.org/download/${PV}/zig-x86_64-linux-${PV}.tar.xz )
+       arm? ( https://ziglang.org/download/${PV}/zig-arm-linux-${PV}.tar.xz )
+       arm64? ( 
https://ziglang.org/download/${PV}/zig-aarch64-linux-${PV}.tar.xz )
+       loong?  ( 
https://ziglang.org/download/${PV}/zig-loongarch64-linux-${PV}.tar.xz )
+       ppc64? ( 
https://ziglang.org/download/${PV}/zig-powerpc64le-linux-${PV}.tar.xz )
+       riscv? ( 
https://ziglang.org/download/${PV}/zig-riscv64-linux-${PV}.tar.xz )
+       s390? ( https://ziglang.org/download/${PV}/zig-s390x-linux-${PV}.tar.xz 
)
+       x86? ( https://ziglang.org/download/${PV}/zig-x86-linux-${PV}.tar.xz )
+       verify-sig? (
+               amd64? ( 
https://ziglang.org/download/${PV}/zig-x86_64-linux-${PV}.tar.xz.minisig )
+               arm? ( 
https://ziglang.org/download/${PV}/zig-arm-linux-${PV}.tar.xz.minisig )
+               arm64? ( 
https://ziglang.org/download/${PV}/zig-aarch64-linux-${PV}.tar.xz.minisig )
+               loong?  ( 
https://ziglang.org/download/${PV}/zig-loongarch64-linux-${PV}.tar.xz.minisig )
+               ppc64? ( 
https://ziglang.org/download/${PV}/zig-powerpc64le-linux-${PV}.tar.xz.minisig )
+               riscv? ( 
https://ziglang.org/download/${PV}/zig-riscv64-linux-${PV}.tar.xz.minisig )
+               s390? ( 
https://ziglang.org/download/${PV}/zig-s390x-linux-${PV}.tar.xz.minisig )
+               x86? ( 
https://ziglang.org/download/${PV}/zig-x86-linux-${PV}.tar.xz.minisig )
+       )
+"
+
+# project itself: MIT
+# There are bunch of projects under "lib/" folder that are needed for 
cross-compilation.
+# Files that are unnecessary for cross-compilation are removed by upstream
+# and therefore their licenses (if any special) are not included.
+# lib/libunwind: Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )
+# lib/libcxxabi: Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )
+# lib/libcxx: Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )
+# lib/libc/wasi: || ( Apache-2.0-with-LLVM-exceptions Apache-2.0 MIT BSD-2 ) 
public-domain
+# lib/libc/musl: MIT BSD-2
+# lib/libc/mingw: ZPL public-domain BSD-2 ISC HPND
+# lib/libc/glibc: BSD HPND ISC inner-net LGPL-2.1+
+LICENSE="MIT Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT ) || ( 
Apache-2.0-with-LLVM-exceptions Apache-2.0 MIT BSD-2 ) public-domain BSD-2 ZPL 
ISC HPND BSD inner-net LGPL-2.1+"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="-* ~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~s390 ~x86"
+
+BDEPEND="verify-sig? ( sec-keys/minisig-keys-zig-software-foundation )"
+IDEPEND="app-eselect/eselect-zig"
+
+DOCS=( "README.md" )
+HTML_DOCS=( "doc/langref.html" )
+
+# Zig provides its standard library and some compiler code in source form 
"/opt/zig-bin-{PV}/lib/".
+# Here we use this feature to fix programs that use standard library.
+# Note: Zig build system is also part of standard library, so we can fix it 
too.
+# Don't remove this comment so that other contributors won't be misleaded by 
"-bin" suffix.
+PATCHES=(
+       "${FILESDIR}/zig-${PV}-reduce-command-new-writer.patch"
+)
+
+QA_PREBUILT="opt/zig-bin-${PV}/zig"
+
+src_unpack() {
+       verify-sig_src_unpack
+
+       mv "${WORKDIR}/"* "${S}" || die
+}
+
+src_install() {
+       insinto /opt/
+
+       einstalldocs
+       rm README.md || die
+       rm -r ./doc/ || die
+
+       doins -r "${S}"
+       fperms 0755 /opt/zig-bin-${PV}/zig
+       dosym -r /opt/zig-bin-${PV}/zig /usr/bin/zig-bin-${PV}
+}
+
+pkg_postinst() {
+       eselect zig update ifunset || die
+}
+
+pkg_postrm() {
+       eselect zig update ifunset
+}

Reply via email to