Skip to content

Commit 1be0f80

Browse files
committed
retract 0.15.0
1 parent 1a8885d commit 1be0f80

File tree

7 files changed

+11
-17
lines changed

7 files changed

+11
-17
lines changed

build.zig

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ const releases = [_][]const u8{
2525
"0.13.0",
2626
"0.14.0",
2727
"0.14.1",
28-
"0.15.0",
28+
"0.15.1",
2929
};
3030

3131
pub fn build(b: *std.Build) void {
@@ -191,7 +191,7 @@ fn installReleaseNotes(
191191
doctest_exe: *std.Build.Step.Compile,
192192
docgen_exe: *std.Build.Step.Compile,
193193
) void {
194-
const release = "0.15.0";
194+
const release = "0.15.1";
195195
const dirname = b.fmt("src/download/{s}/release-notes", .{release});
196196
const input = b.fmt("src/download/{s}/release-notes.html", .{release});
197197
const output = b.fmt("download/{s}/release-notes.html", .{release});
Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<html lang="en">
33
<head>
44
<meta charset="utf-8">
5-
<title>0.15.0 Release Notes ⚡ The Zig Programming Language</title>
5+
<title>0.15.1 Release Notes ⚡ The Zig Programming Language</title>
66
<link rel="icon" href="/favicon.png">
77
<link rel="icon" href="/favicon.svg">
88
<style>
@@ -334,10 +334,10 @@
334334
<body>
335335
<div id="contents">
336336
<a href="https://ziglang.org/"><span id="logo"></span></a>
337-
<h1>0.15.0 Release Notes</h1>
337+
<h1>0.15.1 Release Notes</h1>
338338
<img alt="Carmen the Allocgator" src="https://ziglang.org/img/Carmen_3.svg" style="height: 18em; float: right">
339339
<p>
340-
<a href="https://ziglang.org/download/#release-0.15.0">Download &amp; Documentation</a>
340+
<a href="https://ziglang.org/download/#release-0.15.1">Download &amp; Documentation</a>
341341
</p>
342342
<p>
343343
Zig is a general-purpose programming language and toolchain for maintaining
@@ -529,7 +529,7 @@ <h1>0.15.0 Release Notes</h1>
529529
{#header_close#}
530530

531531
{#header_open|New Rules for Arithmetic on <code>undefined</code>#}
532-
<p>Zig 0.15.0 begins to standardise the rules around how {#syntax#}undefined{#endsyntax#} behaves in different contexts&mdash;in particular, how it behaves as an operand to arithmetic operators. In summary, only operators which can never trigger Illegal Behavior permit {#syntax#}undefined{#endsyntax#} as an operand. Any other operator will trigger Illegal Behavior (or a compile error if evaluated at {#syntax#}comptime{#endsyntax#}) if any operand is {#syntax#}undefined{#endsyntax#}.</p>
532+
<p>Zig 0.15.x begins to standardise the rules around how {#syntax#}undefined{#endsyntax#} behaves in different contexts&mdash;in particular, how it behaves as an operand to arithmetic operators. In summary, only operators which can never trigger Illegal Behavior permit {#syntax#}undefined{#endsyntax#} as an operand. Any other operator will trigger Illegal Behavior (or a compile error if evaluated at {#syntax#}comptime{#endsyntax#}) if any operand is {#syntax#}undefined{#endsyntax#}.</p>
533533
<p>Generally, it is always best practice to avoid any operation on {#syntax#}undefined{#endsyntax#}. If you do that, this language change, and any that follow, are unlikely to affect you. If you are affected by this language change, you might see a compile error on code which previously worked:</p>
534534
{#code|arith-on-undefined.zig#}
535535
{#header_close#}
@@ -549,9 +549,6 @@ <h1>0.15.0 Release Notes</h1>
549549
{#header_close#}
550550

551551
{#header_open|Standard Library#}
552-
<p>Warning: Zig 0.15.0 was tagged with an HTTPS regression:
553-
<a href="https://github.com/ziglang/zig/issues/24911">HTTPS doesn't work on Windows</a>. If this
554-
affects you, we recommend to wait until 0.15.1 before upgrading.</p>
555552
<p>Uncategorized changes:</p>
556553
<ul>
557554
<li>TODO</li>
@@ -759,16 +756,13 @@ <h1>0.15.0 Release Notes</h1>
759756
{#header_close#}
760757

761758
{#header_open|Build System#}
762-
<p>Warning: Zig 0.15.0 was tagged with a package fetching regression:
763-
<a href="https://github.com/ziglang/zig/issues/24911">HTTPS doesn't work on Windows</a>. If this
764-
affects you, we recommend to wait until 0.15.1 is released before upgrading.</p>
765759
<p>Uncategorized changes:</p>
766760
<ul>
767761
<li>TODO</li>
768762
</ul>
769763

770764
{#header_open|macOS File System Watching#}
771-
<p>The <code>--watch</code> flag to <code>zig build</code> is now supported on macOS. In Zig 0.14.0, the flag was accepted, but unfortunately behaved incorrectly with most editors. In Zig 0.15.0, this functionality has been <a href="https://github.com/ziglang/zig/pull/24649">rewritten on macOS</a> to use the File System Events API for fast and reliable file system update watching.</p>
765+
<p>The <code>--watch</code> flag to <code>zig build</code> is now supported on macOS. In Zig 0.14.0, the flag was accepted, but unfortunately behaved incorrectly with most editors. In Zig 0.15.x, this functionality has been <a href="https://github.com/ziglang/zig/pull/24649">rewritten on macOS</a> to use the File System Events API for fast and reliable file system update watching.</p>
772766
<p>So, if you were avoiding <code>--watch</code> in previous Zig versions due to the macOS bug, you can now use it safely. This is particularly useful if you are interested in trying {#link|Incremental Compilation#}, since the typical way to use that feature today involves passing the flags <code>--watch -fincremental</code> to <code>zig build</code>.</p>
773767
{#header_close#}
774768

@@ -799,13 +793,13 @@ <h1>0.15.0 Release Notes</h1>
799793
{#header_close#}
800794

801795
{#header_open|Incremental Compilation#}
802-
<p>Zig 0.15.0 makes further progress on the work-in-progress Incremental Compilation functionality, which allows the compiler to perform very fast rebuilds by only re-compiling code which has changed. Various bugs have been fixed, particularly relating to changing file imports.</p>
796+
<p>Zig 0.15.x makes further progress on the work-in-progress Incremental Compilation functionality, which allows the compiler to perform very fast rebuilds by only re-compiling code which has changed. Various bugs have been fixed, particularly relating to changing file imports.</p>
803797
<p>This feature is still experimental&mdash;it has known bugs and can lead to miscompilations or incorrect compile errors. However, it is now stable enough in some contexts that much of the Zig core team have incorporated it into certain workflows; in particular, fixing large amounts of compile errors using incremental compilation with <code>-fno-emit-bin</code> usually works very well.</p>
804798
<p>The next release cycle will continue to make progress towards enabling Incremental Compilation by default. In the meantime, if you are interested in trying this experimental feature, take a look at <a href="https://github.com/ziglang/zig/issues/21165">#21165</a>.</p>
805799
{#header_close#}
806800

807801
{#header_open|Threaded Codegen#}
808-
<p>The Zig compiler is designed to be parallelized, so that different pieces of compilation work can run in parallel with one another to improve compiler performance. In the past the Zig compiler was largely single-threaded, but 0.14.0 introduced the ability for certain compiler backends to run in parallel with the frontend (Semantic Analysis). Zig 0.15.0 continues down this path by allowing Semantic Analysis, Code Generation, and Linking to <em>all</em> happen in parallel with one another. Code Generation in particular can itself be split across arbitrarily many threads.</p>
802+
<p>The Zig compiler is designed to be parallelized, so that different pieces of compilation work can run in parallel with one another to improve compiler performance. In the past the Zig compiler was largely single-threaded, but 0.14.0 introduced the ability for certain compiler backends to run in parallel with the frontend (Semantic Analysis). Zig 0.15.x continues down this path by allowing Semantic Analysis, Code Generation, and Linking to <em>all</em> happen in parallel with one another. Code Generation in particular can itself be split across arbitrarily many threads.</p>
809803
<p>Compared to 0.14.0, this typically leads to another performance boost when using self-hosted backends such as the {#link|x86 Backend#}. The improvement in wall-clock time varies from relatively insignificant to upwards of 50% depending on the specific code being compiled. However, as one real-world data point, building the Zig compiler using its own x86_64 backend got 27% faster on one system from this change, with the wall-clock time going from 13.8s to 10.0s.</p>
810804
<p><a href="https://ziglang.org/devlog/2025/#2025-06-14">This devlog</a> looks a little more closely at this change, but in short, you can expect better compiler performance when using self-hosted backends thanks to this parallelization. <a href="https://asciinema.org/a/bgDEbDt4AkZWORDX1YBMuKBD3">Oh, and you get more detailed progress information too.</a></p>
811805
{#header_close#}
@@ -822,7 +816,7 @@ <h1>0.15.0 Release Notes</h1>
822816
{#header_close#}
823817

824818
{#header_open|Compile Tests to Object File#}
825-
<p>Typically, Zig's testing functionality is used to build an executable directly. However, there are situations in which you may want to build tests without linking them into a final executable, such as for integration with external code which loads your application as a shared library. Zig 0.15.0 facilitates such use cases by allowing an object file to be emitted instead of a binary, and this object can then be linked however is necessary.</p>
819+
<p>Typically, Zig's testing functionality is used to build an executable directly. However, there are situations in which you may want to build tests without linking them into a final executable, such as for integration with external code which loads your application as a shared library. Zig 0.15.x facilitates such use cases by allowing an object file to be emitted instead of a binary, and this object can then be linked however is necessary.</p>
826820
<p>On the CLI, this is represented by running <code>zig test-obj</code> instead of <code>zig test</code>.
827821
<p>When using the build system, it is represented through a new <code>std.Build</code> API. By passing the <code>emit_object</code> option to <code>std.Build.addTest</code>, you get a <code>Step.Compile</code> which emits an object file, which you can then use that as you would any other object. For instance, it can be installed for external use, or it can be directly linked into another step. However, note that when using this feature, the build runner does not communicate with the test runner, falling back to the default <code>zig test</code> behavior of reporting failed tests over stderr. Users of this feature will likely want to override the test runner for the compilation as well, replacing it with a custom one which communicates with some external test harness.</p>
828822
{#header_close#}
@@ -879,7 +873,7 @@ <h1>0.15.0 Release Notes</h1>
879873
<a href="https://github.com/ziglang/zig/issues?q=is%3Aopen+is%3Aissue+label%3Amiscompilation">miscompilations</a>, and
880874
<a href="https://github.com/ziglang/zig/issues?q=is%3Aopen+is%3Aissue+label%3Aregression">regressions</a>.
881875
</p>
882-
<p>Even with Zig 0.15.0, working on a non-trivial project using Zig may
876+
<p>Even with Zig 0.15.x, working on a non-trivial project using Zig may
883877
require participating in the development process.</p>
884878
<p>When Zig reaches 1.0.0, Tier 1 support will gain a bug policy as an additional
885879
requirement.</p>

src/download/0.15.0/release-notes/arith-on-undefined.zig renamed to src/download/0.15.1/release-notes/arith-on-undefined.zig

File renamed without changes.

src/download/0.15.0/release-notes/lossy_int_to_float_coercion.zig renamed to src/download/0.15.1/release-notes/lossy_int_to_float_coercion.zig

File renamed without changes.

src/download/0.15.0/release-notes/lossy_int_to_float_coercion_new.zig renamed to src/download/0.15.1/release-notes/lossy_int_to_float_coercion_new.zig

File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)