## ziglang/zig — 0.13.0…0.14.0

_3473+ commits._

### Features
- **compiler: Don't consider powerpc to have red zone support yet.** (4fad60f)
- **add parentheses in std.heap.page_size_min** (0367d68)
- **x86_64: add behavior tests for saturating shift left** (1da909a)
- **x86_64: rewrite wrapping add/sub** (50b40c9)
- **CLI: add unit test and improve sanitizeExampleName** (a70307e)
- **Package: update unit tests to new API** (eff1716)
- **update zig's own manifest file to conform to new rules** (512bb9a)
- **introduce package id and redo hash format again** (d6a88ed)
- **Package: new hash format** (12355cf)
- **`@deprecated`: add suggested changes to langref entry** (e3da285)
- **`@deprecated`: add tests** (c75fdd9)
- **`@deprecated`: add langref entry** (06a6674)
- **`@deprecated`: add build system support** (ba7cd81)
- **main: add `-f{no-}ubsan-rt` to the usage text** (1417847)
- **mem: add `@branchHint` to `indexOfSentinel`** (fc77678)
- **ubsan: add a basic runtime** (5e0073c)
- **compiler-rt: Add tests from llvm/llvm-project#119449.** (ad5515b)
- **std.zig.target: Support new wiaguid library name for MinGW-w64.** (51b44be)
- **update_mingw: Add update logic for winpthreads files.** (2404e7f)
- **std.math.big.int: Support strings up to base 36** (c44f450)
- **cbe: Implement support for -fno-builtin and @disableIntrinsics().** (e11ac02)
- **zig rc: Add COFF object file creation for CMake cross-compilation use case** (a502301)
- **update to new pop API** (ed55b2e)
- **std/zig/render: Add doc comments to AutoIndentingStream** (87172ee)
- **std/zig/parser: Add indentation tests** (fdf68c2)
- **std.DynLib: add support for DT_GNU_HASH sections in elf files** (6ef2384)
- **Add rapidhash (#22085)** (b7512c3)
- **std.zig.system.NativePaths: Add Homebrew paths (#22738)** (33ffbb3)

### Fixes
- **std.zig.llvm.bitcode_writer: Fix word byte order on big endian systems.** (3c924ab)
- **Fix "dependency path outside project" error for nested local path dependencies** (8363b95)
- **std.Build.Step: fix missing path sep in error message** (1e2b3b1)
- **std.DynLib: fix proper type of chain_ptr on GnuHashSection32** (edabcf6)
- **std.os.uefi: Fix two padding mistakes in the Time struct** (1a03b8c)
- **std.os.uefi: Fix integer overflow in Time.toEpoch()** (6378295)
- **fix generated hash of by-path dependencies** (a57b0a0)
- **fix regressed build system unit test** (43a949e)
- **langref: fix whitespace** (7c2649f)
- **llvm: Fix C ABI integer promotion for loongarch64.** (76558f8)
- **std.net: Fix IPv6 address format compression for long zero runs (#22441)** (7700744)
- **Dwarf: fix lowering of comptime-only optional pointer `null` values** (220f80e)
- **std.crypto.tlcsprng: Fix hardcoded use of defaultRandomSeed()** (4b0f77c)
- **std.crypto.asn1: fix merge conflicts** (dd54c48)
- **zig fmt: fix invalid alignment on frees** (c0c911b)
- **arch/sparc64/CodeGen: Fix indentation in realStackOffset** (855445f)
- **std/zig/render: Implement space mode to fix comment indentation** (9b2677c)
- **Merge pull request #22659 from ifreund/linker-script-fix** (61b69a4)

### Backend
- **Release 0.14.0** (5ad91a6)
- **init: Substitute invalid package names with `foo`** (711b0fe)
- **update .mailmap** (13757aa)
- **Merge pull request #22979 from mlugg/remove-legacy-coercions** (c76f451)
- **incremental: invalidate namespace dependencies when a name changes visibility** (501e84a)
- **Merge pull request #23046 from linusg/uefi-time** (6d29ef0)
- **Merge pull request #22982 from mlugg/cache-mode** (00a8742)
- **std.time: Make Instant.since() work on UEFI** (3bea478)
- **link: fixed bugs uncovered by changing the cache mode** (d741be5)
- **link: make sure MachO closes the damn files** (725c825)
- **compiler: default to `.whole` cache mode for self-hosted backends** (c2983a3)
- **crypto.pcurves.common: generalize invert() (#23039)** (d8d2aa9)
- **Merge pull request #22529 from xtexx/x86-64/shl-sat-int** (a6525c1)
- **x86_64: implement integer saturating left shifting codegen** (4e32193)
- **zig init template: remove outdated comments** (235001a)
- **Merge pull request #22994 from ziglang/newhash** (6c3cbb0)
- **Revert "Merge pull request #22898 from kristoff-it/deprecated-proposal"** (6b6c1b1)
- **Move the compiler's LLVM bitcode builder to std.zig.llvm.** (5c44934)
- **Merge pull request #22898 from kristoff-it/deprecated-proposal** (dea72d1)
- **compiler.build_runner: only build Fuzz on 64-bit platforms** (c031b62)
- **rename "nonce" to "fingerprint"** (de43f5e)
- **zig init: adjust template lang to allow zig fmt passthrough** (67904e9)
- **bump package id component to 32 bits** (ea516f0)
- **switch from "id" to "nonce"** (0fc7c9f)
- **zig init: sanitize generated name** (7cedc01)
- **Package.Manifest: enforce maximum version string length of 32** (9763dd2)
- **Package.Manifest: enforce name limit of 32** (76e8b29)
- **require package names to be valid zig identifiers** (e03bc7a)
- **std.ArrayList: delete unit test** (e0129b3)
- **reword deprecated error slightly** (f74a856)
- **don't inherit allowed deprecation from parent modules** (c5aa680)
- **langref: update deprecated section** (4ddb134)
- **`@deprecated`: remove per-module flag in Build** (25790e9)
- **`@deprecated`: optimize sema implementation** (466fa31)
- **initial implementation of `@deprecated`** (fff8eff)
- **Compilation: disable ubsan_rt for spirv target** (8957b27)
- **Merge pull request #22488 from Rexicon226/ubsan-rt** (c45dcd0)
- **std: remove dependencies on legacy coercion** (8e074f1)
- **Sema: remove legacy coercion** (84da520)
- **x86_64: use ZON for encodings** (e0a955a)
- **Zcu: correctly resolve references to test bodies** (de8a121)
- **AstGen: improve 'file cannot be a tuple' source location** (3fcb440)
- **std.Target: Update known max OS versions.** (055969b)
- **Merge pull request #22937 from alichraghi/ali_spv** (d856763)
- **ubsan: update wording** (ca83f52)
- **std.heap.page_size_min: relax freestanding restriction** (2447b87)
- **std.mem.indexOfSentinel: don't ask the OS the page size** (faf256e)
- **ubsan: don't create ubsan in every static lib by default** (e18c7f9)
- **ubsan: avoid depending on `@returnAddress` combined with `inline`** (d4413e3)
- **correct some bugs** (35b9db3)
- **Compilation: correct when to include ubsan** (9311784)
- **ubsan: clean-up a bit more** (d669b95)
- **Compilation: always import ubsan if a ZCU exists** (2d4574a)
- **ubsan: resolve the last of the TODOs** (a468929)
- **ubsan: clean-up and remove the unused handlers** (50b9556)
- **ubsan: extend `ptr` before adding to avoid overflow** (658fba9)
- **ubsan: implement more checks** (590c613)
- **move libubsan to `lib/` and integrate it into `-fubsan-rt`** (95720f0)
- **ubsan: implement some more checks** (babee5f)
- **Compilation: use the minimal runtime in `ReleaseSafe`** (c27b797)
- **ubsan: switch to using `std.builtin.panicExtra` to log errors** (eef8d4f)
- **Merge pull request #23011 from alexrp/macho-cu-intcast** (e902c23)
- **link.MachO.UnwindInfo: reproduce lld's comment** (466ce48)
- **link.MachO.UnwindInfo: Handle u24 overflow for CU records pointing to DWARF.** (743623b)
- **Revert "skip regressed LLVM 17 std lib test on powerpc"** (c7e99b9)
- **Merge pull request #22999 from alexrp/mingw-update** (bedf806)
- **libc: Update Linux headers to 6.13.4.** (37706cc)
- **spirv: get rid of function_types cache** (fe5a786)
- **spirv: do not generate unnecessary forward pointer** (94af47d)
- **spirv: replace some unreachables with compile errors** (a0eec9c)
- **mingw: Update MinGW-w64 sources to 3839e21b08807479a31d5a9764666f82ae2f0356.** (8afe928)
- **mingw: Update MinGW-w64 headers to 3839e21b08807479a31d5a9764666f82ae2f0356.** (ed10a5d)
- **stdlib: handle EEXIST in mmap with FIXED_NOREPLACE. Fixes #21475** (1cc388d)
- **Merge pull request #22154 from alexrp/disable-intrinsics** (ecc7634)
- **std.posix: Handle USER_MAPPED_FILE in windows ftruncate() impl** (68bd82d)
- **std.Build.Step.ConfigHeader: follow deprecation policy** (e47f340)
- **Merge pull request #22794 from cbilz/autoconf_at** (86f3547)
- **Sema: allow `@ptrCast` of slices changing the length** (5e20e9b)
- **zig fmt** (d6f8200)
- **std.Build: Allow ConfigHeader values to be added at build.zig runtime** (75b0538)
- **Type: resolve union tag type before checking for runtime bits** (84aac8b)
- **compiler: Implement @disableIntrinsics() builtin function.** (6ba7855)
- **std.heap.DebugAllocator: default wasm to 64K page size** (8683f25)
- **Merge pull request #19976 from clickingbuttons/asn1** (ed7004a)
- **Merge pull request #21727 from 87flowers/fmt-render2** (6769806)
- **zig build fmt** (eb3c7f5)
- **std/http/Client: Remove TODO comments on indentation** (8469a44)
- **std/zig/render: implement fixes for unit tests** (c724e15)
- **std/zig/render: assigns are .after_equals** (a702dc3)
- **std/zig/render: Collapse one level of indentation in binop after equals sign** (6013b53)
- **std/zig/render: Initial implementation of indentation** (ec3e4cc)
- **std/zig/render: Implement AutoIndentingStream.init** (1b0584f)
- **tests: disable failing tests** (b6a1fdd)
- **cases: remove old incremental case system** (a3b3a33)
- **Merge pull request #22903 from alexrp/llvm-nobuiltin-memcpy-inline** (5e203e1)
- **Merge pull request #22714 from mlugg/langref** (813312f)
- **stage2-wasm: implement switch_dispatch + handle > 32 bit integers in switches** (b25d93e)
- **AstGen: make layout specifiers on opaque containers a compile error** (36fc2d2)

### Tests
- **test: remove dependencies on legacy coercion** (3aaf394)
- **test: skip failing tests with spirv-vulkan** (aec0f9b)

### Chore
- **CI: bump timeout on windows to 7h** (ab38193)
- **build: add comments explaining why we disable ubsan** (44d3b5a)
- **build: add `bundle_ubsan_rt`** (9432a9b)
- **build: add spirv to test matrix** (181a89e)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/ziglang/zig?utm_source=github-action)._