├── makelinks.zig └── README.md /makelinks.zig: -------------------------------------------------------------------------------- 1 | const std = @import("std"); 2 | 3 | const Platform = struct { 4 | name: []const u8, 5 | ext: []const u8, 6 | arches: []const []const u8, 7 | }; 8 | const platforms = [_]Platform{ .{ 9 | .name = "windows", 10 | .ext = "zip", 11 | .arches = &[_][]const u8{ 12 | "x86_64", 13 | "x86", 14 | "aarch64", 15 | }, 16 | }, .{ 17 | .name = "macos", 18 | .ext = "tar.xz", 19 | .arches = &[_][]const u8{ 20 | "aarch64", 21 | "x86_64", 22 | }, 23 | }, .{ 24 | .name = "linux", 25 | .ext = "tar.xz", 26 | .arches = &[_][]const u8{ 27 | "x86_64", 28 | "x86", 29 | "aarch64", 30 | "riscv64", 31 | "powerpc64le", 32 | "powerpc", 33 | }, 34 | } }; 35 | 36 | pub fn main() !void { 37 | var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator); 38 | const al = arena.allocator(); 39 | const cmd_args = try std.process.argsAlloc(al); 40 | if (cmd_args.len != 3) { 41 | try std.io.getStdErr().writer().writeAll("Usage: zig run makelinks.zig -- VERSION ziglang|bazel\n"); 42 | std.os.exit(0xff); 43 | } 44 | const version = cmd_args[1]; 45 | const kind_str = cmd_args[2]; 46 | 47 | const kind: enum { ziglang, bazel } = blk: { 48 | if (std.mem.eql(u8, kind_str, "ziglang")) break :blk .ziglang; 49 | if (std.mem.eql(u8, kind_str, "bazel")) break :blk .bazel; 50 | std.log.err("expected 'ziglang' or 'bazel' but got '{s}'", .{kind_str}); 51 | std.os.exit(0xff); 52 | }; 53 | 54 | const stdout = std.io.getStdOut().writer(); 55 | try stdout.print("### {s} Summary\n\n", .{version}); 56 | try stdout.writeAll("| Platform | Download Link |\n"); 57 | try stdout.writeAll("|----------|---------------|\n"); 58 | for (platforms) |platform| { 59 | var links_buf = std.ArrayList(u8).init(al); 60 | defer links_buf.deinit(); 61 | const links_writer = links_buf.writer(); 62 | 63 | var prefix: []const u8 = ""; 64 | for (platform.arches) |arch| { 65 | try links_writer.writeAll(prefix); 66 | prefix = " | "; 67 | switch (kind) { 68 | .ziglang => try links_writer.print( 69 | "[{[arch]s}](https://ziglang.org/builds/zig-{[name]s}-{[arch]s}-{[version]s}.{[ext]s})", 70 | .{ 71 | .arch = arch, 72 | .name = platform.name, 73 | .version = version, 74 | .ext = platform.ext, 75 | }, 76 | ), 77 | .bazel => try links_writer.print( 78 | "[{[arch]s}](https://mirror.bazel.build/ziglang.org/builds/zig-{[name]s}-{[arch]s}-{[version]s}.{[ext]s})", 79 | .{ 80 | .arch = arch, 81 | .name = platform.name, 82 | .version = version, 83 | .ext = platform.ext, 84 | }, 85 | ), 86 | } 87 | } 88 | try stdout.print("| {s} | {s} |\n", .{ platform.name, links_buf.items }); 89 | } 90 | } 91 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Releases of Zig done every 2 weeks. 2 | 3 | Use this list if you want to use/support a newer version of Zig than the latest release. 4 | 5 | Goals: 6 | 7 | - help projects coordinate what version of Zig to support and when to update 8 | - provide a summary of what's going on with Zig development 9 | 10 | The summary for each release will prioritize "breaking" and "bigger" public facing 11 | changes at the top. 12 | 13 | # Release Table 14 | 15 | | Date | Version | The Gist | 16 | |------------|---------------------------|-------------| 17 | | 2023-06-29 | 0.11.0-dev.3886+0c1bfe271 [summary](#0110-dev38860c1bfe271-summary) | `@xToY` renamed to `@yFromX` | 18 | | 2023-05-29 | 0.11.0-dev.3312+ab37ab33c [summary](#0110-dev3312ab37ab33c-summary) | lang: strict separation of comptime from runtime | 19 | | 2023-05-15 | 0.11.0-dev.3132+465272921 [summary](#0110-dev3132465272921-summary) | `std.build.*Step` renamed to `std.Build.Step.*` | 20 | | 2023-04-30 | 0.11.0-dev.2892+fd6200eda [summary](#0110-dev2892fd6200eda-summary) | `@memcpy`/`@memset` now work with slices | 21 | | 2023-04-16 | 0.11.0-dev.2619+bd3e248c7 [summary](#0110-dev2619bd3e248c7-summary) | HTTP Server added to std | 22 | | 2023-04-02 | 0.11.0-dev.2336+5b82b4004 [summary](#0110-dev23365b82b4004-summary) | | 23 | | 2023-03-18 | 0.11.0-dev.2157+f56f3c582 [summary](#0110-dev2157f56f3c582-summary) | zig build parallelism | 24 | | 2023-03-04 | 0.11.0-dev.1862+e7f128c20 [summary](#0110-dev1862e7f128c20-summary) | new for-loop syntax | 25 | | 2023-02-18 | 0.11.0-dev.1639+438b71155 [summary](#0110-dev1639438b71155-summary) | build API refactored | 26 | | 2023-02-01 | 0.11.0-dev.1507+6f13a725a | last version before the build API was changed | 27 | 28 | ### 0.11.0-dev.3886+0c1bfe271 Summary 29 | 30 | | Platform | Download Link | 31 | |----------|---------------| 32 | | windows | [x86_64](https://mirror.bazel.build/ziglang.org/builds/zig-windows-x86_64-0.11.0-dev.3886+0c1bfe271.zip) | [x86](https://mirror.bazel.build/ziglang.org/builds/zig-windows-x86-0.11.0-dev.3886+0c1bfe271.zip) | [aarch64](https://mirror.bazel.build/ziglang.org/builds/zig-windows-aarch64-0.11.0-dev.3886+0c1bfe271.zip) | 33 | | macos | [aarch64](https://mirror.bazel.build/ziglang.org/builds/zig-macos-aarch64-0.11.0-dev.3886+0c1bfe271.tar.xz) | [x86_64](https://mirror.bazel.build/ziglang.org/builds/zig-macos-x86_64-0.11.0-dev.3886+0c1bfe271.tar.xz) | 34 | | linux | [x86_64](https://mirror.bazel.build/ziglang.org/builds/zig-linux-x86_64-0.11.0-dev.3886+0c1bfe271.tar.xz) | [x86](https://mirror.bazel.build/ziglang.org/builds/zig-linux-x86-0.11.0-dev.3886+0c1bfe271.tar.xz) | [aarch64](https://mirror.bazel.build/ziglang.org/builds/zig-linux-aarch64-0.11.0-dev.3886+0c1bfe271.tar.xz) | [riscv64](https://mirror.bazel.build/ziglang.org/builds/zig-linux-riscv64-0.11.0-dev.3886+0c1bfe271.tar.xz) | [powerpc64le](https://mirror.bazel.build/ziglang.org/builds/zig-linux-powerpc64le-0.11.0-dev.3886+0c1bfe271.tar.xz) | [powerpc](https://mirror.bazel.build/ziglang.org/builds/zig-linux-powerpc-0.11.0-dev.3886+0c1bfe271.tar.xz) | 35 | 36 | This release comes after a 3.5-week wait instead of the casual 2 weeks. 37 | 38 | - `@xToY` renamed to `@yFromX` 39 | - `zig cc` 40 | - handle `--libray :path/to/lib.so` (`-l:path/to/lib.EXT`) 41 | - handle `-Wl,--version` 42 | - handle `-Wl,-version-script` (in addition to `-Wl,--version-script`) 43 | - `compiler_rt` add a few routines for f128 44 | - `musl` upgrade from v1.2.3 to v1.2.4 45 | - `objcopy` 46 | - add `--compress-debug-sections` 47 | - support some more elf file variants 48 | - `std.c.`, `std.os.` 49 | - `windows` 50 | - use posix semantics to delete files 51 | - support UNC, rooted, drive relative, and namespaced/device paths 52 | - `*bsd` fix `std.c.getdents` 53 | - `*bsd` expose timer api 54 | - `freebsd` a few kinfo api fixes (`std.c.freebsd`) 55 | - `linux` 56 | - update kernel headers to 6.3.8 57 | - `plan9` 58 | - support lazy symbols 59 | - flesh out stdlib enough to allow not using simplified start logic 60 | - `std.mem` 61 | - split `split` to `splitScalar`, `splitSequence`, `splitAny` 62 | - split `tokenize` to `tokenizeScalar`, `tokenizeSequence`, `tokenizeAny` 63 | - rename `align(Forward|Backward)Generic` to `align(Forward|Backward)` 64 | - `std.math` 65 | - bigint: add `Sqrt` 66 | - `std.rand` 67 | - publicize `std.rand.ziggurat` 68 | - `std.crypto` 69 | - `rsa` remove usage of allocators 70 | - `bcrypt` allow very large passwords to be pre-hashed 71 | - `wyhash` reimplement v4.1. Changes the current hashes. 72 | - `Ed25519` remove ``sign`, `verify`, `key_blinding.sign`, and 73 | `key_blinding.unblindPublicKey` 74 | - `pcurves` don't assume that points with X=0 are at infinity 75 | - `std.compress` add zlib stream writer 76 | - `std.json` support user-provided jsonParse method 77 | - `std.io` 78 | - add `reader.Reader.streamUntilDelimiter` 79 | - remove `FindByteOutStream`, `findByteOutStream` 80 | - `std.Build` 81 | - `Step.Compile` remove `addSystemIncludeDir`, `addIncludeDir`, `addLibPath`, 82 | and `addFrameworkDir` 83 | - `std.builtin` 84 | - remove `TypeInfo` and `Type.FnArg` 85 | - replace `Version` with `SemanticVersion` 86 | - `std` misc 87 | - `Thread` implement `spawn`, `join`, `detach` for WASI 88 | - `cstr` deprecate namespace 89 | - `debug` remove `warn` 90 | - `fmt.formatValue` remove `e`, `E`, `z`, `Z`, `B` and `Bi` specifiers 91 | - `meta` remove `Vector`, `TagType` 92 | - `fifo.LinearFifo` remove `ensureCapacity` 93 | - `std.http` 94 | - add TlsAlert descriptions so that they can be viewed in err return traces 95 | - fix segfault while redirecting 96 | - fix getting Transfer-Encoding value 97 | - core language 98 | - Use InternPool for all types and constant values 99 | [#15569](https://github.com/ziglang/zig/pull/15569). This seems like a 100 | significant change (29k lines changed), but I have no clue on it's 101 | significance. 102 | - Simplify and compact switch ZIR, and resolve union payload captures with 103 | PTR. 104 | - more work on autodoc 105 | - work on macho linker 106 | - work on spirv backend 107 | - work on wasm backend 108 | - work on x86_64 backend 109 | 110 | ### 0.11.0-dev.3312+ab37ab33c 111 | 112 | | Platform | Download Link | 113 | |----------|---------------| 114 | | windows | [x86_64](https://mirror.bazel.build/ziglang.org/builds/zig-windows-x86_64-0.11.0-dev.3312+ab37ab33c.zip) | [x86](https://mirror.bazel.build/ziglang.org/builds/zig-windows-x86-0.11.0-dev.3312+ab37ab33c.zip) | [aarch64](https://mirror.bazel.build/ziglang.org/builds/zig-windows-aarch64-0.11.0-dev.3312+ab37ab33c.zip) | 115 | | macos | [aarch64](https://mirror.bazel.build/ziglang.org/builds/zig-macos-aarch64-0.11.0-dev.3312+ab37ab33c.tar.xz) | [x86_64](https://mirror.bazel.build/ziglang.org/builds/zig-macos-x86_64-0.11.0-dev.3312+ab37ab33c.tar.xz) | 116 | | linux | [x86_64](https://mirror.bazel.build/ziglang.org/builds/zig-linux-x86_64-0.11.0-dev.3312+ab37ab33c.tar.xz) | [x86](https://mirror.bazel.build/ziglang.org/builds/zig-linux-x86-0.11.0-dev.3312+ab37ab33c.tar.xz) | [aarch64](https://mirror.bazel.build/ziglang.org/builds/zig-linux-aarch64-0.11.0-dev.3312+ab37ab33c.tar.xz) | [riscv64](https://mirror.bazel.build/ziglang.org/builds/zig-linux-riscv64-0.11.0-dev.3312+ab37ab33c.tar.xz) | [powerpc64le](https://mirror.bazel.build/ziglang.org/builds/zig-linux-powerpc64le-0.11.0-dev.3312+ab37ab33c.tar.xz) | [powerpc](https://mirror.bazel.build/ziglang.org/builds/zig-linux-powerpc-0.11.0-dev.3312+ab37ab33c.tar.xz) | 117 | 118 | - core language changes: 119 | - more strictly separate comptime from runtime. E.g. `comptime_slice.len` 120 | will not be permitted, if `comptime_slice` is a comptime variable. Use 121 | `@typeInfo(comptime_slice).Struct.fields.len` 122 | - `zig cc` 123 | - add reading from stdin, like `cat main.c | zig cc -x c -` 124 | - add `--build-id` (also for `build.zig`) 125 | - add `-###` 126 | - `std.json` add streaming 127 | - `std.sort` add pdqsort and heapsort 128 | - `std.debug.*TTY*` move to `std.debug.tty.*` 129 | - `std.Thread` refine stack sizes 130 | - `std.crypto` 131 | - `Poly1305` speed up by 1.5-2x 132 | - `ghash` speed up by 2.5x on wasm 133 | - `chacha` performance improvements when AVX2 and AVX512 are available 134 | - add `std.crypto.ff` -- alloc-free, constant-time field arithmetic 135 | - fix RSA hacks and remove allocator requirement from RSA validator 136 | - `std.c`, `std.os` 137 | - `linux` add timer api 138 | - `linux`, `freebsd`: add `sched_setaffinity` 139 | - `freebsd` add `rfork`, `ptrace` 140 | - `netbsd` add `ptrace` 141 | - `darwin` `*copyfile*` api update 142 | - libc 143 | - `glibc` add `__dn_skipname`, `__dn_comp`, `__dn_expand` workaronds for 144 | older glibc versions 145 | - `wasi` update libc to 3189cd1ceec8771e8f27faab58ad05d4d6c369ef 146 | - `std.fs.file`, `std.fmt`, `std.event.loop` rename a bunch of enum parameter 147 | values to snake case 148 | - more work on autodoc 149 | - work on spirv backend 150 | - work on wasm backend 151 | - work on x86_64 backend 152 | 153 | ### 0.11.0-dev.3132+465272921 Summary 154 | 155 | | Platform | Download Link | 156 | |----------|---------------| 157 | | windows | [x86_64](https://mirror.bazel.build/ziglang.org/builds/zig-windows-x86_64-0.11.0-dev.3132+465272921.zip) | [x86](https://mirror.bazel.build/ziglang.org/builds/zig-windows-x86-0.11.0-dev.3132+465272921.zip) | [aarch64](https://mirror.bazel.build/ziglang.org/builds/zig-windows-aarch64-0.11.0-dev.3132+465272921.zip) | 158 | | macos | [aarch64](https://mirror.bazel.build/ziglang.org/builds/zig-macos-aarch64-0.11.0-dev.3132+465272921.tar.xz) | [x86_64](https://mirror.bazel.build/ziglang.org/builds/zig-macos-x86_64-0.11.0-dev.3132+465272921.tar.xz) | 159 | | linux | [x86_64](https://mirror.bazel.build/ziglang.org/builds/zig-linux-x86_64-0.11.0-dev.3132+465272921.tar.xz) | [x86](https://mirror.bazel.build/ziglang.org/builds/zig-linux-x86-0.11.0-dev.3132+465272921.tar.xz) | [aarch64](https://mirror.bazel.build/ziglang.org/builds/zig-linux-aarch64-0.11.0-dev.3132+465272921.tar.xz) | [riscv64](https://mirror.bazel.build/ziglang.org/builds/zig-linux-riscv64-0.11.0-dev.3132+465272921.tar.xz) | [powerpc64le](https://mirror.bazel.build/ziglang.org/builds/zig-linux-powerpc64le-0.11.0-dev.3132+465272921.tar.xz) | [powerpc](https://mirror.bazel.build/ziglang.org/builds/zig-linux-powerpc-0.11.0-dev.3132+465272921.tar.xz) | 160 | 161 | - `std.build.*Step` renamed to `std.Build.Step.*` 162 | - `@memset` and `@memcpy` fixes and wider use throughout the stdlib 163 | - build runner: fix a race condition that results in `error: FileNotFound`. 164 | - add multi-argument `@min`/`@max` 165 | - `test_runner` 166 | - log improvements on test failures 167 | - disallow named test declarations with duplicate names 168 | - `std.c.darwin`: add cpu affinity api for macOS 169 | - `std.meta` remove tagName, use `@tagName` or `@errorName` directly 170 | - `std.fmt` add `parseIntSizeSuffix` for numbers like `2G`, `2GiB` or `2Q`. 171 | - `std.mem` add `indexOfNone*` 172 | - `std.enums` add `tagName` 173 | - `std.os.linux` 174 | - add `tc{set,get}pgrp` 175 | - add some NUMA support 176 | - `std.c.darwin` add basic darwin's host_statistics data 177 | - `std.c.freebsd` 178 | - add domainset api 179 | - add `kinfo_vmobject` 180 | - add ioctl base operands 181 | - `std.c.openbsd` add sigcontext/ucontext for arm64 182 | - `std.http` 183 | - fix keepalive and buffer writes 184 | - use larger buffer to hit faster TLS code 185 | - `Server` 186 | - Response gets an allocator 187 | - use client recommendation for keepalive 188 | - use enum for reset state instead of bool 189 | - linker: support `--dynamicbase` 190 | - more work to various linkers 191 | - work on sparc64 backend 192 | - work on spirv backend 193 | - work on x86_64 backend 194 | - more work on autodoc 195 | - autodoc: updated favicon to the latest logo mark! 196 | 197 | ### 0.11.0-dev.2892+fd6200eda Summary 198 | 199 | | Platform | Download Link | 200 | |----------|---------------| 201 | | windows | [x86_64](https://mirror.bazel.build/ziglang.org/builds/zig-windows-x86_64-0.11.0-dev.2892+fd6200eda.zip) | [x86](https://mirror.bazel.build/ziglang.org/builds/zig-windows-x86-0.11.0-dev.2892+fd6200eda.zip) | [aarch64](https://mirror.bazel.build/ziglang.org/builds/zig-windows-aarch64-0.11.0-dev.2892+fd6200eda.zip) | 202 | | macos | [aarch64](https://mirror.bazel.build/ziglang.org/builds/zig-macos-aarch64-0.11.0-dev.2892+fd6200eda.tar.xz) | [x86_64](https://mirror.bazel.build/ziglang.org/builds/zig-macos-x86_64-0.11.0-dev.2892+fd6200eda.tar.xz) | 203 | | linux | [x86_64](https://mirror.bazel.build/ziglang.org/builds/zig-linux-x86_64-0.11.0-dev.2892+fd6200eda.tar.xz) | [x86](https://mirror.bazel.build/ziglang.org/builds/zig-linux-x86-0.11.0-dev.2892+fd6200eda.tar.xz) | [aarch64](https://mirror.bazel.build/ziglang.org/builds/zig-linux-aarch64-0.11.0-dev.2892+fd6200eda.tar.xz) | [riscv64](https://mirror.bazel.build/ziglang.org/builds/zig-linux-riscv64-0.11.0-dev.2892+fd6200eda.tar.xz) | [powerpc64le](https://mirror.bazel.build/ziglang.org/builds/zig-linux-powerpc64le-0.11.0-dev.2892+fd6200eda.tar.xz) | [powerpc](https://mirror.bazel.build/ziglang.org/builds/zig-linux-powerpc-0.11.0-dev.2892+fd6200eda.tar.xz) | 204 | 205 | - `@memcpy` and `@memset` now support slices 206 | - `@inComptime` builtin added 207 | - options added to CompileStep init, "link_libc", "single_threaded", "use_llvm", "use_lld" 208 | - `GeneralPuproseAllocator.deinit` now returns `Check` enum with `ok` or `leak` instead of a `bool` 209 | - `std.json.parse` now supports `@Vector` 210 | - `std.net.StreamServer.Options` added `reuse_port` 211 | - `std.Build.RunStep` return type of `captureStdOut` fixed to be `FileSource` 212 | - `std.http.Client` 213 | - added `redirect` 214 | - errors updated 215 | - basic proxy support added 216 | - `std.http.Server` 217 | - errors updated 218 | - fixed reading chunked bodies 219 | - `deinit` added to `Response` 220 | - `std.http.Field` added 221 | - `std.http.Headers`, added some `clear*` methods 222 | - `std.math` added lerp function 223 | - sigevent added to supported platforms 224 | - `std.os.linux`, new `CAP` constants added, `io_uring_{probe/restriction}` fixed 225 | - `std.c.darwin`, added subset of libproc api 226 | - `std.c.freebsd` 227 | - added `reallocf`, `getentropy`, `(cpuset/sched)_(get/set)affinity`, `mincore` and `elf_aux_info` functions 228 | - added mcontext layout for x86 229 | - `std.c.netbsd`, added pthread and cpu affinity api 230 | - Windows 231 | - use NtSetInformationFile in DeleteFile to avoid silent failures and improved error handling 232 | - leaks fixed if `LockFile` fails after opening a file handle 233 | - stack traces during crashes fixed 234 | - WASM 235 | - no longer uses simplified `start.zig` logic 236 | - `cmpxchg{weak/strong}`, `@atomicLoad`, `@atomicRmw` and `@fence` implemented 237 | - `cmp_lt_errors_len` instruction implemented 238 | - more runtime safety checks 239 | - Haiku, added `find_path` decl and implemented `selfExePath` 240 | - option exposed to produce 64-bit DWARF format 241 | - translate-c: support brace-closed string initializers 242 | - some fixes inside std.Thread implementation 243 | - more work to x86_64 backend 244 | - more work to various linkers 245 | - more work to C backend 246 | - more work to autodoc 247 | 248 | ### 0.11.0-dev.2619+bd3e248c7 Summary 249 | 250 | | Platform | Download Link | 251 | |----------|---------------| 252 | | windows | [x86_64](https://mirror.bazel.build/ziglang.org/builds/zig-windows-x86_64-0.11.0-dev.2619+bd3e248c7.zip) | [x86](https://mirror.bazel.build/ziglang.org/builds/zig-windows-x86-0.11.0-dev.2619+bd3e248c7.zip) | [aarch64](https://mirror.bazel.build/ziglang.org/builds/zig-windows-aarch64-0.11.0-dev.2619+bd3e248c7.zip) | 253 | | macos | [aarch64](https://mirror.bazel.build/ziglang.org/builds/zig-macos-aarch64-0.11.0-dev.2619+bd3e248c7.tar.xz) | [x86_64](https://mirror.bazel.build/ziglang.org/builds/zig-macos-x86_64-0.11.0-dev.2619+bd3e248c7.tar.xz) | 254 | | linux | [x86_64](https://mirror.bazel.build/ziglang.org/builds/zig-linux-x86_64-0.11.0-dev.2619+bd3e248c7.tar.xz) | [x86](https://mirror.bazel.build/ziglang.org/builds/zig-linux-x86-0.11.0-dev.2619+bd3e248c7.tar.xz) | [aarch64](https://mirror.bazel.build/ziglang.org/builds/zig-linux-aarch64-0.11.0-dev.2619+bd3e248c7.tar.xz) | [riscv64](https://mirror.bazel.build/ziglang.org/builds/zig-linux-riscv64-0.11.0-dev.2619+bd3e248c7.tar.xz) | [powerpc64le](https://mirror.bazel.build/ziglang.org/builds/zig-linux-powerpc64le-0.11.0-dev.2619+bd3e248c7.tar.xz) | [powerpc](https://mirror.bazel.build/ziglang.org/builds/zig-linux-powerpc-0.11.0-dev.2619+bd3e248c7.tar.xz) | 255 | 256 | - std.http.Server added 257 | - std.Build.CompileStep 258 | - removed run and install functions (big breaking change) 259 | - removed redundant dest_builder field (already know as step.owner) 260 | - deleted install_step field 261 | - output_dir removed, use FileSource abstraction instead 262 | - setName, setFilter and setTestRunner removed, pass as options instead 263 | - std.Build.RunStep no longer closes stdin 264 | - Update to LLVM16 265 | - GeneralPurposeAllocator: catch invalid frees 266 | - new objcopy options, --strip-debug, --strip-all, -add-gnu-debuglink, --only-keep-debug 267 | - std.MultiArrayList support for tagged unions 268 | - std.math.log10 added 269 | - some backwards compatibility added to glibc headers 270 | - now possible to use `fcntl` with glibc 2.27 or older and 271 | the `res_{,n}{search,query,querydomain}` functions with glibc 2.33 or older. 272 | - os_log/signpost/subset of Apple's QOS api added to srd.c.darwin 273 | - madvise flags and procctl added to std.c.freebsd 274 | - mincore syscall added for linux 275 | - termios constants added to std.c.netbsd 276 | - std.json.strigify now uses inferred error so it can support more error than `@TypeOf(out_stream_.Error)` 277 | - std.mem.reverseIterator: accepts pointer to array and added nextPtr 278 | - std.os.sendto now uses ws2_32 on Windows 279 | - c_char type added 280 | - support for the spirv target 281 | - zig cc handle the -r flag 282 | - linker -wrap flag added 283 | - macos libc SDK updated to 13.3 284 | - updated YAML parser (used for MacOS linker) 285 | - more work to various linkers 286 | - more work to x86_64 backend 287 | 288 | 289 | ### 0.11.0-dev.2336+5b82b4004 Summary 290 | 291 | | Platform | Download Link | 292 | |----------|---------------| 293 | | windows | [x86_64](https://ziglang.org/builds/zig-windows-x86_64-0.11.0-dev.2336+5b82b4004.zip) | [x86](https://ziglang.org/builds/zig-windows-x86-0.11.0-dev.2336+5b82b4004.zip) | [aarch64](https://ziglang.org/builds/zig-windows-aarch64-0.11.0-dev.2336+5b82b4004.zip) | 294 | | macos | [aarch64](https://ziglang.org/builds/zig-macos-aarch64-0.11.0-dev.2336+5b82b4004.tar.xz) | [x86_64](https://ziglang.org/builds/zig-macos-x86_64-0.11.0-dev.2336+5b82b4004.tar.xz) | 295 | | linux | [x86_64](https://ziglang.org/builds/zig-linux-x86_64-0.11.0-dev.2336+5b82b4004.tar.xz) | [x86](https://ziglang.org/builds/zig-linux-x86-0.11.0-dev.2336+5b82b4004.tar.xz) | [aarch64](https://ziglang.org/builds/zig-linux-aarch64-0.11.0-dev.2336+5b82b4004.tar.xz) | [riscv64](https://ziglang.org/builds/zig-linux-riscv64-0.11.0-dev.2336+5b82b4004.tar.xz) | [powerpc64le](https://ziglang.org/builds/zig-linux-powerpc64le-0.11.0-dev.2336+5b82b4004.tar.xz) | [powerpc](https://ziglang.org/builds/zig-linux-powerpc-0.11.0-dev.2336+5b82b4004.tar.xz) | 296 | 297 | - io_uring_prep_provide_buffers argument order changed 298 | - some public "wrapper stuff" moved from ntdll to `std.os.windows` 299 | - new builtins: `@workItemId`, `@workGroupId`, `@workGroupSize` 300 | - `@export` now supports arbitrary values (not just declarations) 301 | - std.MultiArrayList: set/get added to Slice 302 | - std.enums: IndexedSet added initOne and initMany 303 | - std.json: stringify supports `[*:0]const u8` 304 | - std.os: 305 | - ptrace wrapper added for darwin/linux 306 | - std.json: 307 | - support tuples 308 | - coff: 309 | - linker work 310 | - dynamicbase default is now true (matches lld) 311 | - wasm: 312 | - __wasm_init_memory implemented 313 | - atomics added 314 | - linker work 315 | - libc: 316 | - update macOS headers 317 | - mach linker work, hot code swapping PIC 318 | - lots of work to x86_64 backend 319 | - crypto: 320 | - Gimli and Xoodoo removed from std to be maintained outside it 321 | - Default to ChaCha instead of AES on CPUs without AES support 322 | 323 | 324 | ### 0.11.0-dev.2157+f56f3c582 Summary 325 | 326 | | Platform | Download Link | 327 | |----------|----- | 328 | | windows | [x86_64](https://ziglang.org/builds/zig-windows-x86_64-0.11.0-dev.2157+f56f3c582.zip) | [x86](https://ziglang.org/builds/zig-windows-x86-0.11.0-dev.2157+f56f3c582.zip) | [aarch64](https://ziglang.org/builds/zig-windows-aarch64-0.11.0-dev.2157+f56f3c582.zip) | 329 | | macos | [aarch64](https://ziglang.org/builds/zig-macos-aarch64-0.11.0-dev.2157+f56f3c582.tar.xz) | [x86_64](https://ziglang.org/builds/zig-macos-x86_64-0.11.0-dev.2157+f56f3c582.tar.xz) | 330 | | linux | [x86_64](https://ziglang.org/builds/zig-linux-x86_64-0.11.0-dev.2157+f56f3c582.tar.xz) | [x86](https://ziglang.org/builds/zig-linux-x86-0.11.0-dev.2157+f56f3c582.tar.xz) | [aarch64](https://ziglang.org/builds/zig-linux-aarch64-0.11.0-dev.2157+f56f3c582.tar.xz) | [riscv64](https://ziglang.org/builds/zig-linux-riscv64-0.11.0-dev.2157+f56f3c582.tar.xz) | [powerpc64le](https://ziglang.org/builds/zig-linux-powerpc64le-0.11.0-dev.2157+f56f3c582.tar.xz) | [powerpc](https://ziglang.org/builds/zig-linux-powerpc-0.11.0-dev.2157+f56f3c582.tar.xz) | 331 | 332 | - zig build parallelism, improved APIs and improved output 333 | - many of the Steps' API's have been reworked 334 | - compiler/build runner now communicate over a binary protocol 335 | - command-line option `-j` added for limiting concurrency 336 | - many more enhancements, see https://github.com/ziglang/zig/commit/58edefc6d1716c0731ee2fe672ec8d073651aafb 337 | - `DeviceBusy` and `InvalidArgument` added to `std.os.WriteError` 338 | - ability added to import dependencies from `build.zig` 339 | - added `std.Thread.Pool` and `std.Thread.WaitGroup` 340 | - added `std.heap.ThreadSafeAllocator`, wraps any allocator to make it thread safe 341 | - `std.fifo` added `toOwnedSlice` 342 | - Hot Code Swapping POC 343 | - C Backend, more big integer/vector support 344 | - `std.os.linux` added ptrace 345 | - posix_spawnp declaration and usage eliminated from std, it's trash 346 | - `ArrayList.insertAssumeCapacity` added 347 | - added `std.fmt.bytesToHex` 348 | - `std.http`: connection pooling/keep-alive, compression, relative redirects 349 | - Crypto: 350 | - Kyber post-quantum key encapsulation mechanism added 351 | - Configurable side-channel mitigations 352 | - `std.crypto.hash.sha3` added TurboSHAKE 353 | - lots of `x86_64` backend work 354 | 355 | ## 0.11.0-dev.1862+e7f128c20 Summary 356 | 357 | | Platform | Download Link | 358 | |----------|----- | 359 | | windows | [x86_64](https://ziglang.org/builds/zig-windows-x86_64-0.11.0-dev.1862+e7f128c20.zip) | [x86](https://ziglang.org/builds/zig-windows-x86-0.11.0-dev.1862+e7f128c20.zip) | [aarch64](https://ziglang.org/builds/zig-windows-aarch64-0.11.0-dev.1862+e7f128c20.zip) | 360 | | macos | [aarch64](https://ziglang.org/builds/zig-macos-aarch64-0.11.0-dev.1862+e7f128c20.tar.xz) | [x86_64](https://ziglang.org/builds/zig-macos-x86_64-0.11.0-dev.1862+e7f128c20.tar.xz) | 361 | | linux | [x86_64](https://ziglang.org/builds/zig-linux-x86_64-0.11.0-dev.1862+e7f128c20.tar.xz) | [x86](https://ziglang.org/builds/zig-linux-x86-0.11.0-dev.1862+e7f128c20.tar.xz) | [aarch64](https://ziglang.org/builds/zig-linux-aarch64-0.11.0-dev.1862+e7f128c20.tar.xz) | [riscv64](https://ziglang.org/builds/zig-linux-riscv64-0.11.0-dev.1862+e7f128c20.tar.xz) | [powerpc64le](https://ziglang.org/builds/zig-linux-powerpc64le-0.11.0-dev.1862+e7f128c20.tar.xz) | [powerpc](https://ziglang.org/builds/zig-linux-powerpc-0.11.0-dev.1862+e7f128c20.tar.xz) | 362 | 363 | - New for-loop syntax! (Big Breaking Change) 364 | - zig fmt will autofix the old syntax 365 | - `--pkg-begin [name] [path] [sub_packages] --pkg-end` replaced with `--mod [name]:[deps]:[src]` and `--deps [dep],[dep],...`, which define modules in a "flat" manner, i.e. 366 | 367 | ``` 368 | --pkg-begin foo foo.zig --pkg-begin bar bar.zig --pgk-end --pkg-end ` 369 | ``` 370 | Now becomes: 371 | ``` 372 | --deps foo --mod foo:bar:foo.zig --mod bar::bar.zig 373 | ``` 374 | 375 | - `@trap` builtin added 376 | - `std.compress.zstd` added 377 | - `std.io.poll` added, abstraction for reading from mulitple Files in a single thread 378 | - `std.RingBuffer` added 379 | - added `std.os.fchmodat`, use `std.fs.has_executable_bit` for conditional compilation 380 | - `std.process.Child` added an `Id` abstraction to represent a PID on posix or a HANDLE on Windows 381 | - for Zig executables, SIGPIPE will now be set to a no-op handler by default. 382 | Add `keep_sigpipe = true` to `root.std_options` to disable this. 383 | - `zig cc` will now fail hard on unsupported linker flags instead of ignoring them 384 | - support `--no-undefined, -z undefs` 385 | - support `--sort-section`, ignore `--sort-common` 386 | - detect linker color diagnostic flags 387 | - `-z` equivalent to `-z` `` 388 | - build changes 389 | - modules with the same name are now reused 390 | - `InstallRawStep` renamed to `ObjCopyStep` 391 | - `--build-runner` option added to `zig build` 392 | - `std.Build.addModule` now returns the created module 393 | - crypto 394 | - Keccak permutation is now public 395 | - crypto.hash.sha3 has added SHAKE in PR #14756 396 | 397 | 398 | ## 0.11.0-dev.1639+438b71155 Summary 399 | 400 | | Platform | Download Link | 401 | |----------|----- | 402 | | windows | [x86_64](https://ziglang.org/builds/zig-windows-x86_64-0.11.0-dev.1639+438b71155.zip) | [x86](https://ziglang.org/builds/zig-windows-x86-0.11.0-dev.1639+438b71155.zip) | [aarch64](https://ziglang.org/builds/zig-windows-aarch64-0.11.0-dev.1639+438b71155.zip) | 403 | | macos | [aarch64](https://ziglang.org/builds/zig-macos-aarch64-0.11.0-dev.1639+438b71155.tar.xz) | [x86_64](https://ziglang.org/builds/zig-macos-x86_64-0.11.0-dev.1639+438b71155.tar.xz) | 404 | | linux | [x86_64](https://ziglang.org/builds/zig-linux-x86_64-0.11.0-dev.1639+438b71155.tar.xz) | [x86](https://ziglang.org/builds/zig-linux-x86-0.11.0-dev.1639+438b71155.tar.xz) | [aarch64](https://ziglang.org/builds/zig-linux-aarch64-0.11.0-dev.1639+438b71155.tar.xz) | [riscv64](https://ziglang.org/builds/zig-linux-riscv64-0.11.0-dev.1639+438b71155.tar.xz) | [powerpc64le](https://ziglang.org/builds/zig-linux-powerpc64le-0.11.0-dev.1639+438b71155.tar.xz) | [powerpc](https://ziglang.org/builds/zig-linux-powerpc-0.11.0-dev.1639+438b71155.tar.xz) | 405 | 406 | - build API refactored 407 | - https://devlog.hexops.com/2023/zig-0-11-breaking-build-changes/ 408 | - old "package" terminology renamed to "module" 409 | - combine std.build and std.build.Builder into std.Build 410 | - new std.Build.addModule API introduced 411 | - remove setPreferredReleaseMode and standardReleaseOptions in favor of 412 | standardOptimizeOption which has a future-proof options parameter. 413 | - setting target/optimize_mode moved to create function 414 | - LibExeObjStep deprecated, renamed to CompileStep 415 | - support for generated C headers with std.Build.addConfigHeader 416 | - std.Build.Cache now available in std library 417 | - move src.type.CType to std lib, use it from std.Build, this helps with populating config.h files. 418 | - `@embedFile` now supports module-mapped names the same way as `@import` 419 | - added LZMA decoder 420 | - ZON "Zig Object Notation" introduced, use build.zig.zon instead of build.zig.ini 421 | - std.crypto: add the Ascon permutation and AES-CMAC 422 | - `@constCast` and `@volatileCast` added 423 | --------------------------------------------------------------------------------