authorgravatar for mlugg@mlugg.co.ukMatthew Lugg <mlugg@mlugg.co.uk> 2026-05-02 11:26:58+01:00
committergravatar for mlugg@mlugg.co.ukMatthew Lugg <mlugg@mlugg.co.uk> 2026-05-03 12:23:30+01:00
loge393962bc2348a03ee53fd0a6e4dec6250842600
tree29554b98e98d6df7c9d13696d8a7652986ca1cd2
parent4c330e053ba45f383a7642da53482dfbce1b50cf
signaturelock-open Commit is signed but in an unrecognized format.

langref: use 'std.lang' instead of 'std.builtin'


4 files changed, 67 insertions(+), 70 deletions(-)

doc/langref.html.in+34-34
...@@ -3763,7 +3763,7 @@ void do_a_thing(struct Foo *foo) {...@@ -3763,7 +3763,7 @@ void do_a_thing(struct Foo *foo) {
3763 <tr>3763 <tr>
3764 <th scope="row">{#syntax#}@Int(x, y){#endsyntax#}</th>3764 <th scope="row">{#syntax#}@Int(x, y){#endsyntax#}</th>
3765 <td>-</td>3765 <td>-</td>
3766 <td>{#syntax#}x{#endsyntax#} is a {#syntax#}std.builtin.Signedness{#endsyntax#}, {#syntax#}y{#endsyntax#} is a {#syntax#}u16{#endsyntax#}</td>3766 <td>{#syntax#}x{#endsyntax#} is a {#syntax#}std.lang.Signedness{#endsyntax#}, {#syntax#}y{#endsyntax#} is a {#syntax#}u16{#endsyntax#}</td>
3767 </tr>3767 </tr>
3768 <tr>3768 <tr>
3769 <th scope="row">{#syntax#}@typeInfo(x){#endsyntax#}</th>3769 <th scope="row">{#syntax#}@typeInfo(x){#endsyntax#}</th>
...@@ -4373,7 +4373,7 @@ comptime {...@@ -4373,7 +4373,7 @@ comptime {
4373 {#syntax#}T{#endsyntax#} must be a pointer, a {#syntax#}bool{#endsyntax#}, a float,4373 {#syntax#}T{#endsyntax#} must be a pointer, a {#syntax#}bool{#endsyntax#}, a float,
4374 an integer, an enum, or a packed struct.4374 an integer, an enum, or a packed struct.
4375 </p>4375 </p>
4376 <p>{#syntax#}AtomicOrder{#endsyntax#} can be found with {#syntax#}@import("std").builtin.AtomicOrder{#endsyntax#}.</p>4376 <p>{#syntax#}AtomicOrder{#endsyntax#} can be found with {#syntax#}@import("std").lang.AtomicOrder{#endsyntax#}.</p>
4377 {#see_also|@atomicStore|@atomicRmw||@cmpxchgWeak|@cmpxchgStrong#}4377 {#see_also|@atomicStore|@atomicRmw||@cmpxchgWeak|@cmpxchgStrong#}
4378 {#header_close#}4378 {#header_close#}
43794379
...@@ -4387,8 +4387,8 @@ comptime {...@@ -4387,8 +4387,8 @@ comptime {
4387 {#syntax#}T{#endsyntax#} must be a pointer, a {#syntax#}bool{#endsyntax#}, a float,4387 {#syntax#}T{#endsyntax#} must be a pointer, a {#syntax#}bool{#endsyntax#}, a float,
4388 an integer, an enum, or a packed struct.4388 an integer, an enum, or a packed struct.
4389 </p>4389 </p>
4390 <p>{#syntax#}AtomicOrder{#endsyntax#} can be found with {#syntax#}@import("std").builtin.AtomicOrder{#endsyntax#}.</p>4390 <p>{#syntax#}AtomicOrder{#endsyntax#} can be found with {#syntax#}@import("std").lang.AtomicOrder{#endsyntax#}.</p>
4391 <p>{#syntax#}AtomicRmwOp{#endsyntax#} can be found with {#syntax#}@import("std").builtin.AtomicRmwOp{#endsyntax#}.</p>4391 <p>{#syntax#}AtomicRmwOp{#endsyntax#} can be found with {#syntax#}@import("std").lang.AtomicRmwOp{#endsyntax#}.</p>
4392 {#see_also|@atomicStore|@atomicLoad|@cmpxchgWeak|@cmpxchgStrong#}4392 {#see_also|@atomicStore|@atomicLoad|@cmpxchgWeak|@cmpxchgStrong#}
4393 {#header_close#}4393 {#header_close#}
43944394
...@@ -4401,7 +4401,7 @@ comptime {...@@ -4401,7 +4401,7 @@ comptime {
4401 {#syntax#}T{#endsyntax#} must be a pointer, a {#syntax#}bool{#endsyntax#}, a float,4401 {#syntax#}T{#endsyntax#} must be a pointer, a {#syntax#}bool{#endsyntax#}, a float,
4402 an integer, an enum, or a packed struct.4402 an integer, an enum, or a packed struct.
4403 </p>4403 </p>
4404 <p>{#syntax#}AtomicOrder{#endsyntax#} can be found with {#syntax#}@import("std").builtin.AtomicOrder{#endsyntax#}.</p>4404 <p>{#syntax#}AtomicOrder{#endsyntax#} can be found with {#syntax#}@import("std").lang.AtomicOrder{#endsyntax#}.</p>
4405 {#see_also|@atomicLoad|@atomicRmw|@cmpxchgWeak|@cmpxchgStrong#}4405 {#see_also|@atomicLoad|@atomicRmw|@cmpxchgWeak|@cmpxchgStrong#}
4406 {#header_close#}4406 {#header_close#}
44074407
...@@ -4459,7 +4459,7 @@ comptime {...@@ -4459,7 +4459,7 @@ comptime {
4459 {#header_open|@branchHint#}4459 {#header_open|@branchHint#}
4460 <pre>{#syntax#}@branchHint(hint: BranchHint) void{#endsyntax#}</pre>4460 <pre>{#syntax#}@branchHint(hint: BranchHint) void{#endsyntax#}</pre>
4461 <p>Hints to the optimizer how likely a given branch of control flow is to be reached.</p>4461 <p>Hints to the optimizer how likely a given branch of control flow is to be reached.</p>
4462 <p>{#syntax#}BranchHint{#endsyntax#} can be found with {#syntax#}@import("std").builtin.BranchHint{#endsyntax#}.</p>4462 <p>{#syntax#}BranchHint{#endsyntax#} can be found with {#syntax#}@import("std").lang.BranchHint{#endsyntax#}.</p>
4463 <p>This function is only valid as the first statement in a control flow branch, or the first statement in a function.</p>4463 <p>This function is only valid as the first statement in a control flow branch, or the first statement in a function.</p>
4464 {#header_close#}4464 {#header_close#}
44654465
...@@ -4526,7 +4526,7 @@ comptime {...@@ -4526,7 +4526,7 @@ comptime {
4526 {#header_close#}4526 {#header_close#}
45274527
4528 {#header_open|@call#}4528 {#header_open|@call#}
4529 <pre>{#syntax#}@call(modifier: std.builtin.CallModifier, function: anytype, args: anytype) anytype{#endsyntax#}</pre>4529 <pre>{#syntax#}@call(modifier: std.lang.CallModifier, function: anytype, args: anytype) anytype{#endsyntax#}</pre>
4530 <p>4530 <p>
4531 Calls a function, in the same way that invoking an expression with parentheses does:4531 Calls a function, in the same way that invoking an expression with parentheses does:
4532 </p>4532 </p>
...@@ -4536,7 +4536,7 @@ comptime {...@@ -4536,7 +4536,7 @@ comptime {
4536 {#syntax#}@call{#endsyntax#} allows more flexibility than normal function call syntax does. The4536 {#syntax#}@call{#endsyntax#} allows more flexibility than normal function call syntax does. The
4537 {#syntax#}CallModifier{#endsyntax#} enum is reproduced here:4537 {#syntax#}CallModifier{#endsyntax#} enum is reproduced here:
4538 </p>4538 </p>
4539 {#code|builtin.CallModifier struct.zig#}4539 {#code|lang.CallModifier struct.zig#}
45404540
4541 {#header_close#}4541 {#header_close#}
45424542
...@@ -4576,7 +4576,7 @@ comptime {...@@ -4576,7 +4576,7 @@ comptime {
4576 an integer, an enum, or a packed struct.4576 an integer, an enum, or a packed struct.
4577 </p>4577 </p>
4578 <p>{#syntax#}@typeInfo(@TypeOf(ptr)).pointer.alignment{#endsyntax#} must be {#syntax#}>= @sizeOf(T).{#endsyntax#}</p>4578 <p>{#syntax#}@typeInfo(@TypeOf(ptr)).pointer.alignment{#endsyntax#} must be {#syntax#}>= @sizeOf(T).{#endsyntax#}</p>
4579 <p>{#syntax#}AtomicOrder{#endsyntax#} can be found with {#syntax#}@import("std").builtin.AtomicOrder{#endsyntax#}.</p>4579 <p>{#syntax#}AtomicOrder{#endsyntax#} can be found with {#syntax#}@import("std").lang.AtomicOrder{#endsyntax#}.</p>
4580 {#see_also|@atomicStore|@atomicLoad|@atomicRmw|@cmpxchgWeak#}4580 {#see_also|@atomicStore|@atomicLoad|@atomicRmw|@cmpxchgWeak#}
4581 {#header_close#}4581 {#header_close#}
45824582
...@@ -4608,7 +4608,7 @@ fn cmpxchgWeakButNotAtomic(comptime T: type, ptr: *T, expected_value: T, new_val...@@ -4608,7 +4608,7 @@ fn cmpxchgWeakButNotAtomic(comptime T: type, ptr: *T, expected_value: T, new_val
4608 an integer, an enum, or a packed struct.4608 an integer, an enum, or a packed struct.
4609 </p>4609 </p>
4610 <p>{#syntax#}@typeInfo(@TypeOf(ptr)).pointer.alignment{#endsyntax#} must be {#syntax#}>= @sizeOf(T).{#endsyntax#}</p>4610 <p>{#syntax#}@typeInfo(@TypeOf(ptr)).pointer.alignment{#endsyntax#} must be {#syntax#}>= @sizeOf(T).{#endsyntax#}</p>
4611 <p>{#syntax#}AtomicOrder{#endsyntax#} can be found with {#syntax#}@import("std").builtin.AtomicOrder{#endsyntax#}.</p>4611 <p>{#syntax#}AtomicOrder{#endsyntax#} can be found with {#syntax#}@import("std").lang.AtomicOrder{#endsyntax#}.</p>
4612 {#see_also|@atomicStore|@atomicLoad|@atomicRmw|@cmpxchgStrong#}4612 {#see_also|@atomicStore|@atomicLoad|@atomicRmw|@cmpxchgStrong#}
4613 {#header_close#}4613 {#header_close#}
46144614
...@@ -4670,28 +4670,28 @@ fn cmpxchgWeakButNotAtomic(comptime T: type, ptr: *T, expected_value: T, new_val...@@ -4670,28 +4670,28 @@ fn cmpxchgWeakButNotAtomic(comptime T: type, ptr: *T, expected_value: T, new_val
4670 {#header_close#}4670 {#header_close#}
46714671
4672 {#header_open|@cVaArg#}4672 {#header_open|@cVaArg#}
4673 <pre>{#syntax#}@cVaArg(operand: *std.builtin.VaList, comptime T: type) T{#endsyntax#}</pre>4673 <pre>{#syntax#}@cVaArg(operand: *std.lang.VaList, comptime T: type) T{#endsyntax#}</pre>
4674 <p>4674 <p>
4675 Implements the C macro {#syntax#}va_arg{#endsyntax#}.4675 Implements the C macro {#syntax#}va_arg{#endsyntax#}.
4676 </p>4676 </p>
4677 {#see_also|@cVaCopy|@cVaEnd|@cVaStart#}4677 {#see_also|@cVaCopy|@cVaEnd|@cVaStart#}
4678 {#header_close#}4678 {#header_close#}
4679 {#header_open|@cVaCopy#}4679 {#header_open|@cVaCopy#}
4680 <pre>{#syntax#}@cVaCopy(src: *std.builtin.VaList) std.builtin.VaList{#endsyntax#}</pre>4680 <pre>{#syntax#}@cVaCopy(src: *std.lang.VaList) std.lang.VaList{#endsyntax#}</pre>
4681 <p>4681 <p>
4682 Implements the C macro {#syntax#}va_copy{#endsyntax#}.4682 Implements the C macro {#syntax#}va_copy{#endsyntax#}.
4683 </p>4683 </p>
4684 {#see_also|@cVaArg|@cVaEnd|@cVaStart#}4684 {#see_also|@cVaArg|@cVaEnd|@cVaStart#}
4685 {#header_close#}4685 {#header_close#}
4686 {#header_open|@cVaEnd#}4686 {#header_open|@cVaEnd#}
4687 <pre>{#syntax#}@cVaEnd(src: *std.builtin.VaList) void{#endsyntax#}</pre>4687 <pre>{#syntax#}@cVaEnd(src: *std.lang.VaList) void{#endsyntax#}</pre>
4688 <p>4688 <p>
4689 Implements the C macro {#syntax#}va_end{#endsyntax#}.4689 Implements the C macro {#syntax#}va_end{#endsyntax#}.
4690 </p>4690 </p>
4691 {#see_also|@cVaArg|@cVaCopy|@cVaStart#}4691 {#see_also|@cVaArg|@cVaCopy|@cVaStart#}
4692 {#header_close#}4692 {#header_close#}
4693 {#header_open|@cVaStart#}4693 {#header_open|@cVaStart#}
4694 <pre>{#syntax#}@cVaStart() std.builtin.VaList{#endsyntax#}</pre>4694 <pre>{#syntax#}@cVaStart() std.lang.VaList{#endsyntax#}</pre>
4695 <p>4695 <p>
4696 Implements the C macro {#syntax#}va_start{#endsyntax#}. Only valid inside a variadic function.4696 Implements the C macro {#syntax#}va_start{#endsyntax#}. Only valid inside a variadic function.
4697 </p>4697 </p>
...@@ -4800,7 +4800,7 @@ fn cmpxchgWeakButNotAtomic(comptime T: type, ptr: *T, expected_value: T, new_val...@@ -4800,7 +4800,7 @@ fn cmpxchgWeakButNotAtomic(comptime T: type, ptr: *T, expected_value: T, new_val
4800 {#header_close#}4800 {#header_close#}
48014801
4802 {#header_open|@errorReturnTrace#}4802 {#header_open|@errorReturnTrace#}
4803 <pre>{#syntax#}@errorReturnTrace() ?*builtin.StackTrace{#endsyntax#}</pre>4803 <pre>{#syntax#}@errorReturnTrace() ?*std.lang.StackTrace{#endsyntax#}</pre>
4804 <p>4804 <p>
4805 If the binary is built with error return tracing, and this function is invoked in a4805 If the binary is built with error return tracing, and this function is invoked in a
4806 function that calls a function with an error or error union return type, returns a4806 function that calls a function with an error or error union return type, returns a
...@@ -4818,7 +4818,7 @@ fn cmpxchgWeakButNotAtomic(comptime T: type, ptr: *T, expected_value: T, new_val...@@ -4818,7 +4818,7 @@ fn cmpxchgWeakButNotAtomic(comptime T: type, ptr: *T, expected_value: T, new_val
4818 {#header_close#}4818 {#header_close#}
48194819
4820 {#header_open|@export#}4820 {#header_open|@export#}
4821 <pre>{#syntax#}@export(comptime ptr: *const anyopaque, comptime options: std.builtin.ExportOptions) void{#endsyntax#}</pre>4821 <pre>{#syntax#}@export(comptime ptr: *const anyopaque, comptime options: std.lang.ExportOptions) void{#endsyntax#}</pre>
4822 <p>Creates a symbol in the output object file which refers to the target of <code>ptr</code>.</p>4822 <p>Creates a symbol in the output object file which refers to the target of <code>ptr</code>.</p>
4823 <p><code>ptr</code> must point to a global variable or a comptime-known constant.</p>4823 <p><code>ptr</code> must point to a global variable or a comptime-known constant.</p>
4824 <p>4824 <p>
...@@ -4844,7 +4844,7 @@ fn cmpxchgWeakButNotAtomic(comptime T: type, ptr: *T, expected_value: T, new_val...@@ -4844,7 +4844,7 @@ fn cmpxchgWeakButNotAtomic(comptime T: type, ptr: *T, expected_value: T, new_val
4844 {#header_close#}4844 {#header_close#}
48454845
4846 {#header_open|@extern#}4846 {#header_open|@extern#}
4847 <pre>{#syntax#}@extern(T: type, comptime options: std.builtin.ExternOptions) T{#endsyntax#}</pre>4847 <pre>{#syntax#}@extern(T: type, comptime options: std.lang.ExternOptions) T{#endsyntax#}</pre>
4848 <p>4848 <p>
4849 Creates a reference to an external symbol in the output object file.4849 Creates a reference to an external symbol in the output object file.
4850 T must be a pointer type.4850 T must be a pointer type.
...@@ -5165,8 +5165,8 @@ fn cmpxchgWeakButNotAtomic(comptime T: type, ptr: *T, expected_value: T, new_val...@@ -5165,8 +5165,8 @@ fn cmpxchgWeakButNotAtomic(comptime T: type, ptr: *T, expected_value: T, new_val
5165 <p>5165 <p>
5166 Invokes the panic handler function. By default the panic handler function5166 Invokes the panic handler function. By default the panic handler function
5167 calls the public {#syntax#}panic{#endsyntax#} function exposed in the root source file, or5167 calls the public {#syntax#}panic{#endsyntax#} function exposed in the root source file, or
5168 if there is not one specified, the {#syntax#}std.builtin.default_panic{#endsyntax#}5168 if there is not one specified, the {#syntax#}std.lang.default_panic{#endsyntax#}
5169 function from {#syntax#}std/builtin.zig{#endsyntax#}.5169 function from {#syntax#}std/lang.zig{#endsyntax#}.
5170 </p>5170 </p>
5171 <p>Generally it is better to use {#syntax#}@import("std").debug.panic{#endsyntax#}.5171 <p>Generally it is better to use {#syntax#}@import("std").debug.panic{#endsyntax#}.
5172 However, {#syntax#}@panic{#endsyntax#} can be useful for 2 scenarios:5172 However, {#syntax#}@panic{#endsyntax#} can be useful for 2 scenarios:
...@@ -5205,7 +5205,7 @@ fn cmpxchgWeakButNotAtomic(comptime T: type, ptr: *T, expected_value: T, new_val...@@ -5205,7 +5205,7 @@ fn cmpxchgWeakButNotAtomic(comptime T: type, ptr: *T, expected_value: T, new_val
5205 address to prefetch. This function does not dereference the pointer, it is perfectly legal5205 address to prefetch. This function does not dereference the pointer, it is perfectly legal
5206 to pass a pointer to invalid memory to this function and no Illegal Behavior will result.5206 to pass a pointer to invalid memory to this function and no Illegal Behavior will result.
5207 </p>5207 </p>
5208 <p>{#syntax#}PrefetchOptions{#endsyntax#} can be found with {#syntax#}@import("std").builtin.PrefetchOptions{#endsyntax#}.</p>5208 <p>{#syntax#}PrefetchOptions{#endsyntax#} can be found with {#syntax#}@import("std").lang.PrefetchOptions{#endsyntax#}.</p>
5209 {#header_close#}5209 {#header_close#}
52105210
5211 {#header_open|@ptrCast#}5211 {#header_open|@ptrCast#}
...@@ -5328,7 +5328,7 @@ fn cmpxchgWeakButNotAtomic(comptime T: type, ptr: *T, expected_value: T, new_val...@@ -5328,7 +5328,7 @@ fn cmpxchgWeakButNotAtomic(comptime T: type, ptr: *T, expected_value: T, new_val
5328 The floating point mode is inherited by child scopes, and can be overridden in any scope.5328 The floating point mode is inherited by child scopes, and can be overridden in any scope.
5329 You can set the floating point mode in a struct or module scope by using a comptime block.5329 You can set the floating point mode in a struct or module scope by using a comptime block.
5330 </p>5330 </p>
5331 <p>{#syntax#}FloatMode{#endsyntax#} can be found with {#syntax#}@import("std").builtin.FloatMode{#endsyntax#}.</p>5331 <p>{#syntax#}FloatMode{#endsyntax#} can be found with {#syntax#}@import("std").lang.FloatMode{#endsyntax#}.</p>
5332 {#see_also|Floating Point Operations#}5332 {#see_also|Floating Point Operations#}
5333 {#header_close#}5333 {#header_close#}
53345334
...@@ -5464,7 +5464,7 @@ fn cmpxchgWeakButNotAtomic(comptime T: type, ptr: *T, expected_value: T, new_val...@@ -5464,7 +5464,7 @@ fn cmpxchgWeakButNotAtomic(comptime T: type, ptr: *T, expected_value: T, new_val
5464 {#header_close#}5464 {#header_close#}
54655465
5466 {#header_open|@reduce#}5466 {#header_open|@reduce#}
5467 <pre>{#syntax#}@reduce(comptime op: std.builtin.ReduceOp, value: anytype) E{#endsyntax#}</pre>5467 <pre>{#syntax#}@reduce(comptime op: std.lang.ReduceOp, value: anytype) E{#endsyntax#}</pre>
5468 <p>5468 <p>
5469 Transforms a {#link|vector|Vectors#} into a scalar value (of type <code>E</code>)5469 Transforms a {#link|vector|Vectors#} into a scalar value (of type <code>E</code>)
5470 by performing a sequential horizontal reduction of its elements using the5470 by performing a sequential horizontal reduction of its elements using the
...@@ -5494,7 +5494,7 @@ fn cmpxchgWeakButNotAtomic(comptime T: type, ptr: *T, expected_value: T, new_val...@@ -5494,7 +5494,7 @@ fn cmpxchgWeakButNotAtomic(comptime T: type, ptr: *T, expected_value: T, new_val
5494 {#header_close#}5494 {#header_close#}
54955495
5496 {#header_open|@src#}5496 {#header_open|@src#}
5497 <pre>{#syntax#}@src() std.builtin.SourceLocation{#endsyntax#}</pre>5497 <pre>{#syntax#}@src() std.lang.SourceLocation{#endsyntax#}</pre>
5498 <p>5498 <p>
5499 Returns a {#syntax#}SourceLocation{#endsyntax#} struct representing the function's name and location in the source code. This must be called in a function.5499 Returns a {#syntax#}SourceLocation{#endsyntax#} struct representing the function's name and location in the source code. This must be called in a function.
5500 </p>5500 </p>
...@@ -5721,7 +5721,7 @@ fn cmpxchgWeakButNotAtomic(comptime T: type, ptr: *T, expected_value: T, new_val...@@ -5721,7 +5721,7 @@ fn cmpxchgWeakButNotAtomic(comptime T: type, ptr: *T, expected_value: T, new_val
5721 {#header_close#}5721 {#header_close#}
57225722
5723 {#header_open|@Int#}5723 {#header_open|@Int#}
5724 <pre>{#syntax#}@Int(comptime signedness: std.builtin.Signedness, comptime bits: u16) type{#endsyntax#}</pre>5724 <pre>{#syntax#}@Int(comptime signedness: std.lang.Signedness, comptime bits: u16) type{#endsyntax#}</pre>
5725 <p>Returns an integer type with the given signedness and bit width.</p>5725 <p>Returns an integer type with the given signedness and bit width.</p>
5726 <p>For instance, {#syntax#}@Int(.unsigned, 18){#endsyntax#} returns the type {#syntax#}u18{#endsyntax#}.</p>5726 <p>For instance, {#syntax#}@Int(.unsigned, 18){#endsyntax#} returns the type {#syntax#}u18{#endsyntax#}.</p>
5727 {#header_close#}5727 {#header_close#}
...@@ -5733,8 +5733,8 @@ fn cmpxchgWeakButNotAtomic(comptime T: type, ptr: *T, expected_value: T, new_val...@@ -5733,8 +5733,8 @@ fn cmpxchgWeakButNotAtomic(comptime T: type, ptr: *T, expected_value: T, new_val
57335733
5734 {#header_open|@Pointer#}5734 {#header_open|@Pointer#}
5735 <pre>{#syntax#}@Pointer(5735 <pre>{#syntax#}@Pointer(
5736 comptime size: std.builtin.Type.Pointer.Size,5736 comptime size: std.lang.Type.Pointer.Size,
5737 comptime attrs: std.builtin.Type.Pointer.Attributes,5737 comptime attrs: std.lang.Type.Pointer.Attributes,
5738 comptime Element: type,5738 comptime Element: type,
5739 comptime sentinel: ?Element,5739 comptime sentinel: ?Element,
5740) type{#endsyntax#}</pre>5740) type{#endsyntax#}</pre>
...@@ -5744,32 +5744,32 @@ fn cmpxchgWeakButNotAtomic(comptime T: type, ptr: *T, expected_value: T, new_val...@@ -5744,32 +5744,32 @@ fn cmpxchgWeakButNotAtomic(comptime T: type, ptr: *T, expected_value: T, new_val
5744 {#header_open|@Fn#}5744 {#header_open|@Fn#}
5745 <pre>{#syntax#}@Fn(5745 <pre>{#syntax#}@Fn(
5746 comptime param_types: []const type,5746 comptime param_types: []const type,
5747 comptime param_attrs: *const [param_types.len]std.builtin.Type.Fn.Param.Attributes,5747 comptime param_attrs: *const [param_types.len]std.lang.Type.Fn.Param.Attributes,
5748 comptime ReturnType: type,5748 comptime ReturnType: type,
5749 comptime attrs: std.builtin.Type.Fn.Attributes,5749 comptime attrs: std.lang.Type.Fn.Attributes,
5750) type{#endsyntax#}</pre>5750) type{#endsyntax#}</pre>
5751 <p>Returns a {#link|function|Functions#} type with the properties specified by the arguments.</p>5751 <p>Returns a {#link|function|Functions#} type with the properties specified by the arguments.</p>
5752 {#header_close#}5752 {#header_close#}
57535753
5754 {#header_open|@Struct#}5754 {#header_open|@Struct#}
5755 <pre>{#syntax#}@Struct(5755 <pre>{#syntax#}@Struct(
5756 comptime layout: std.builtin.Type.ContainerLayout,5756 comptime layout: std.lang.Type.ContainerLayout,
5757 comptime BackingInt: ?type,5757 comptime BackingInt: ?type,
5758 comptime field_names: []const []const u8,5758 comptime field_names: []const []const u8,
5759 comptime field_types: *const [field_names.len]type,5759 comptime field_types: *const [field_names.len]type,
5760 comptime field_attrs: *const [field_names.len]std.builtin.Type.StructField.Attributes,5760 comptime field_attrs: *const [field_names.len]std.lang.Type.StructField.Attributes,
5761) type{#endsyntax#}</pre>5761) type{#endsyntax#}</pre>
5762 <p>Returns a {#link|struct#} type with the properties specified by the arguments.</p>5762 <p>Returns a {#link|struct#} type with the properties specified by the arguments.</p>
5763 {#header_close#}5763 {#header_close#}
57645764
5765 {#header_open|@Union#}5765 {#header_open|@Union#}
5766 <pre>{#syntax#}@Union(5766 <pre>{#syntax#}@Union(
5767 comptime layout: std.builtin.Type.ContainerLayout,5767 comptime layout: std.lang.Type.ContainerLayout,
5768 /// Either the integer tag type, or the integer backing type, depending on `layout`.5768 /// Either the integer tag type, or the integer backing type, depending on `layout`.
5769 comptime ArgType: ?type,5769 comptime ArgType: ?type,
5770 comptime field_names: []const []const u8,5770 comptime field_names: []const []const u8,
5771 comptime field_types: *const [field_names.len]type,5771 comptime field_types: *const [field_names.len]type,
5772 comptime field_attrs: *const [field_names.len]std.builtin.Type.UnionField.Attributes,5772 comptime field_attrs: *const [field_names.len]std.lang.Type.UnionField.Attributes,
5773) type{#endsyntax#}</pre>5773) type{#endsyntax#}</pre>
5774 <p>Returns a {#link|union#} type with the properties specified by the arguments.</p>5774 <p>Returns a {#link|union#} type with the properties specified by the arguments.</p>
5775 {#header_close#}5775 {#header_close#}
...@@ -5777,7 +5777,7 @@ fn cmpxchgWeakButNotAtomic(comptime T: type, ptr: *T, expected_value: T, new_val...@@ -5777,7 +5777,7 @@ fn cmpxchgWeakButNotAtomic(comptime T: type, ptr: *T, expected_value: T, new_val
5777 {#header_open|@Enum#}5777 {#header_open|@Enum#}
5778 <pre>{#syntax#}@Enum(5778 <pre>{#syntax#}@Enum(
5779 comptime TagInt: type,5779 comptime TagInt: type,
5780 comptime mode: std.builtin.Type.Enum.Mode,5780 comptime mode: std.lang.Type.Enum.Mode,
5781 comptime field_names: []const []const u8,5781 comptime field_names: []const []const u8,
5782 comptime field_values: *const [field_names.len]TagInt,5782 comptime field_values: *const [field_names.len]TagInt,
5783) type{#endsyntax#}</pre>5783) type{#endsyntax#}</pre>
...@@ -5785,7 +5785,7 @@ fn cmpxchgWeakButNotAtomic(comptime T: type, ptr: *T, expected_value: T, new_val...@@ -5785,7 +5785,7 @@ fn cmpxchgWeakButNotAtomic(comptime T: type, ptr: *T, expected_value: T, new_val
5785 {#header_close#}5785 {#header_close#}
57865786
5787 {#header_open|@typeInfo#}5787 {#header_open|@typeInfo#}
5788 <pre>{#syntax#}@typeInfo(comptime T: type) std.builtin.Type{#endsyntax#}</pre>5788 <pre>{#syntax#}@typeInfo(comptime T: type) std.lang.Type{#endsyntax#}</pre>
5789 <p>5789 <p>
5790 Provides type reflection.5790 Provides type reflection.
5791 </p>5791 </p>
doc/langref/builtin.CallModifier struct.zig deleted-32
...@@ -1,32 +0,0 @@
1pub const CallModifier = enum {
2 /// Equivalent to function call syntax.
3 auto,
4
5 /// Prevents tail call optimization. This guarantees that the return
6 /// address will point to the callsite, as opposed to the callsite's
7 /// callsite. If the call is otherwise required to be tail-called
8 /// or inlined, a compile error is emitted instead.
9 never_tail,
10
11 /// Guarantees that the call will not be inlined. If the call is
12 /// otherwise required to be inlined, a compile error is emitted instead.
13 never_inline,
14
15 /// Asserts that the function call will not suspend. This allows a
16 /// non-async function to call an async function.
17 no_suspend,
18
19 /// Guarantees that the call will be generated with tail call optimization.
20 /// If this is not possible, a compile error is emitted instead.
21 always_tail,
22
23 /// Guarantees that the call will be inlined at the callsite.
24 /// If this is not possible, a compile error is emitted instead.
25 always_inline,
26
27 /// Evaluates the call at compile-time. If the call cannot be completed at
28 /// compile-time, a compile error is emitted instead.
29 compile_time,
30};
31
32// syntax
doc/langref/lang.CallModifier struct.zig created+32
...@@ -0,0 +1,32 @@
1pub const CallModifier = enum {
2 /// Equivalent to function call syntax.
3 auto,
4
5 /// Prevents tail call optimization. This guarantees that the return
6 /// address will point to the callsite, as opposed to the callsite's
7 /// callsite. If the call is otherwise required to be tail-called
8 /// or inlined, a compile error is emitted instead.
9 never_tail,
10
11 /// Guarantees that the call will not be inlined. If the call is
12 /// otherwise required to be inlined, a compile error is emitted instead.
13 never_inline,
14
15 /// Asserts that the function call will not suspend. This allows a
16 /// non-async function to call an async function.
17 no_suspend,
18
19 /// Guarantees that the call will be generated with tail call optimization.
20 /// If this is not possible, a compile error is emitted instead.
21 always_tail,
22
23 /// Guarantees that the call will be inlined at the callsite.
24 /// If this is not possible, a compile error is emitted instead.
25 always_inline,
26
27 /// Evaluates the call at compile-time. If the call cannot be completed at
28 /// compile-time, a compile error is emitted instead.
29 compile_time,
30};
31
32// syntax
doc/langref/test_noreturn_from_exit.zig+1-4
...@@ -1,10 +1,7 @@...@@ -1,10 +1,7 @@
1const std = @import("std");1const std = @import("std");
2const builtin = @import("builtin");
3const native_arch = builtin.cpu.arch;
4const expectEqual = std.testing.expectEqual;2const expectEqual = std.testing.expectEqual;
53
6const WINAPI: std.builtin.CallingConvention = if (native_arch == .x86) .{ .x86_stdcall = .{} } else .c;4extern "kernel32" fn ExitProcess(exit_code: c_uint) callconv(.winapi) noreturn;
7extern "kernel32" fn ExitProcess(exit_code: c_uint) callconv(WINAPI) noreturn;
85
9test "foo" {6test "foo" {
10 const value = bar() catch ExitProcess(1);7 const value = bar() catch ExitProcess(1);