24224 Commits

Author SHA1 Message Date
Robin Voetter
0bae2caaf3
spirv: lower air try
Implements code generation for the try air tag. This commit also adds
a utility `errorUnionLayout` function that helps keeping the layout
of a spir-v error union consistent.
2023-05-11 20:31:50 +02:00
Robin Voetter
dfecf89d06
spirv: fix OpFunctionCall parameters interleaving with insts
resolve() is now able to emit instructions. If usage of this function is
interleaved with calls to emitRaw() and writeOperand(), then an
instruction may get inserted between operands, causing an invalid module.
The solution here is to just perform a temporary allocation.
2023-05-11 20:31:50 +02:00
Robin Voetter
5d896a6cc6
spirv: fix use-after-realloc in resolveType()
The pointer to a slot in a hash map was fetched before a recursive call.
If the hash map's size changed during the recursive call, this would write
to an invalid pointer.

The solution is to use an index instead of a pointer. Note that care must be
taken that resolved types (from the type_cahce) must not be accessed, as they
might be incomplete during this operation.
2023-05-11 20:31:50 +02:00
Robin Voetter
5e62ba1347
opencl: define size of C types
Define the size of the c types according the OpenCL specification.

Note that OpenCL does not define the size of long double. Clang generates
fp128, even though there is no extension that allows such types. The
llvm-spirv translator simply crashes.
2023-05-11 20:31:50 +02:00
Gregory Mullen
aa9ea61216 Add tc{set,get}pgrp to std.os.linux 2023-05-11 19:43:06 +03:00
Andrew Kelley
7f7bd206dc
Merge pull request #15519 from dweiller/issue-15482
Optimize lowering of `s[start..][0..len]`
2023-05-11 08:59:44 -07:00
Loris Cro
5512455974
Merge pull request #15637 from der-teufel-programming/autodoc-layouts
autodoc: Add layout to Struct and Union to handle packed and extern
2023-05-11 17:46:29 +02:00
Loris Cro
8ece99083f
Merge pull request #15545 from r00ster91/autodocthing
autodoc: make help modal toggleable and allow entering "?" in search
2023-05-11 17:44:55 +02:00
Andrew Kelley
3bb3d39fb4
Merge pull request #15487 from truemedian/http-tests
std.http: more http fixes, add standalone http server test
2023-05-11 08:37:42 -07:00
Andrew Kelley
5569e6b49d
Merge pull request #15639 from jacobly0/signed-mod
llvm/cbe: fix signed `@mod`/`@divFloor` computations
2023-05-11 08:36:33 -07:00
Andrew Kelley
c857959372
Merge pull request #15640 from jacobly0/min-max
llvm: fix `@max`/`@min` of unsupported float types
2023-05-11 08:35:08 -07:00
Veikka Tuominen
0958d5d7db Sema: fix crash when generating anon name on invalid code
Closes #15615
2023-05-11 17:23:06 +03:00
Veikka Tuominen
c0102ac1c8 Sema: add error for resolving inferred error set of generic function
Closes #14991
2023-05-11 17:23:06 +03:00
Veikka Tuominen
f0fdaf32d3 fix incorrect use of mutable pointers to temporary values 2023-05-11 17:23:06 +03:00
Veikka Tuominen
d761e6cc7d fix formatting in darwin.zig 2023-05-11 14:59:19 +03:00
Veikka Tuominen
67afd2a470 Sema: make @call compile errors match regular calls
Closes #15642
2023-05-11 12:23:57 +03:00
Veikka Tuominen
73f283e3e2 Sema: fix nested call debug info
Closes #15631
2023-05-11 12:23:57 +03:00
Veikka Tuominen
0a7f8c2e01 Sema: return const pointers from ref inits
Closes #12189
2023-05-11 12:23:57 +03:00
frmdstryr
0ad692e76c
compiler_rt: fix ARM memset signatures 2023-05-11 11:33:47 +03:00
John Schmidt
2606498409 module: return null if no candidate src
Closes #15572.
2023-05-11 11:21:44 +03:00
David CARLIER
20cc69318f std.c: darwin adding more host_info api data 2023-05-11 11:21:07 +03:00
Jacob Young
6e292f66db Cache: fix unnecessary cache misses
With the old logic, it was possible for a bunch of processes to queue up
to update a cache entry, and then each to do so one at a time.  Now, it
rechecks whether there still a cache miss or another process has
completed the work in the interim.
2023-05-11 00:55:40 -04:00
Jacob Young
fae6290387 Cache: fix race condition
When checking a cache entry with no input files for a hit, if
`createFile` returned `error.WouldBlock` we would forget about the fact
that the file has been created, and all future checks will assume that a
cache hit has happened, even though one never has or does, leading to
rare `FileNotFound` errors trying the access the protected files.

This fix works by writing an extra byte to the manifest file to
distinguish hits and misses when there no input files to write.
2023-05-11 00:55:40 -04:00
Jacob Young
716d6a026f std: revert comptime_float support
Removed since I'm aware of some design considerations of `comptime_float`.
2023-05-10 15:16:50 -04:00
Jacob Young
c5b96c7447 llvm: fix @max/@min of unsupported float types
Closes #15611
2023-05-10 15:16:50 -04:00
Jacob Young
2e6a6d7564 llvm/cbe: fix signed @mod/@divFloor computations
Closes #15636
2023-05-10 15:11:52 -04:00
Jacob Young
31a13ce2e3 cbe: use Assignment in airSplat 2023-05-10 15:11:52 -04:00
Loris Cro
2d2d79a05b autodoc: fix crash when call syntax has complex callee expression 2023-05-10 21:07:40 +02:00
Meghan
ac385bd8a6 std.fmt.parseIntSizeSuffix: add R and Q
https://www.nist.gov/pml/owm/metric-si-prefixes

https://www.npl.co.uk/si-prefix
2023-05-10 20:11:18 +03:00
David CARLIER
cd7e2bf57a std.c: adding freebsd's ioctl base operands. 2023-05-10 19:14:51 +03:00
Kyle Coffey
ebc3773542
Add std.mem.indexOfNone
This introduces a parallel set of functions to the std.mem.indexOfAny
functions. They simply invert the logic, yielding the first/last index
which is *not* contained in the "values" slice.

Inverting this logic is useful when you are attempting to determine the
initial span which contains only characters in a particular set.

* Document the `indexOfNone` family.

These descriptions are somewhat brief, but the functions themselves are
also simple enough to describe in such a way.
2023-05-10 17:47:58 +03:00
Evin Yulo
6d7bb255a4 Add std.fmt.parseIntSizeSuffix and use for --maxrss
Fixes #14955
2023-05-10 16:31:51 +03:00
Bogdan Romanyuk
c4dbfd5ae1 std.enums: make Ext parameter optional
According to #8169 optional generic functions work fine in comptime so it's possible
2023-05-10 16:15:41 +03:00
Veikka Tuominen
ae69fb87eb
Merge pull request #15508 from r00ster91/semathings
Sema: fixes to error messages
2023-05-10 16:12:46 +03:00
Ali Chraghi
05ceac52c9 std.Build: support #cmakedefine01 pattern 2023-05-10 16:10:03 +03:00
Travis Staloch
5d1e69389c std.enums: add tagName()
This is safe alternative to `@tagName()` for non-exhaustive enums that
doesn't panic when given an enum value that has no tag.
2023-05-10 16:07:34 +03:00
Brett Hill
37f56a4259 Issue 15535. Normalize remainder in math.big.int.Managed.divTrunc 2023-05-10 16:01:17 +03:00
Meghan
0972196f4d std.meta: remove tagName
not used by Zig itself anywhere
2023-05-10 16:00:14 +03:00
0x5a4
11fabc4cbe fix 'zig build test' crashing with no tests
fixes #15553
2023-05-10 00:43:45 -07:00
Krzysztof Wolicki
b7ba9aa892 autodoc: Add layout to Struct and Union to properly display packed and extern;
Make rendering of types in exprName more similar to zig fmt
2023-05-10 01:53:00 +02:00
David CARLIER
5260657230 std.c: add freebsd's kinfo_vmobject 2023-05-10 01:48:35 +03:00
David CARLIER
10a7cf58c1 std.c: adding freebsd's domainset_t bitset 2023-05-10 01:13:15 +03:00
Pyry Kovanen
ffccd70671 tls: update finishRead2 for new @memcpy semantics 2023-05-09 14:47:04 -07:00
Andrew Kelley
e02a592437 Autodoc: update favicon to latest logo mark
ziglang/logo commit 6446ba8e37a0651da720d8869e1ce9264fa0c0b9
2023-05-09 14:24:21 -07:00
Loris Cro
8e9c9f6fdc
Merge pull request #15623 from der-teufel-programming/autodoc-backing-int
Autodoc: backing integer types for packed structs
2023-05-09 20:09:42 +02:00
David Carlier
e21739dd8c std.fs: selfExePath haiku using constants instead 2023-05-09 14:24:20 +03:00
David CARLIER
e8f76b452b std.c: adding freebsd's domainset api 2023-05-09 14:24:03 +03:00
David Carlier
1585ed637d std.c: openbsd sigcontext/ucontext for arm64. 2023-05-09 14:23:46 +03:00
David CARLIER
3dd0afe787 std.c: adding freebsd's kinfo_proc type. 2023-05-09 12:04:53 +03:00
r00ster91
297b5d1074 fix [x]u65529 and above overflowing
```
$ cat overflow.zig
test {
    var a: [1]u65535 = undefined;
    _ = a;
}
$ zig-out/bin/zig test overflow.zig
thread 290266 panic: integer overflow
zig/src/type.zig:3604:55: 0xada43d in intAbiAlignment (zig)
            std.math.ceilPowerOfTwoPromote(u16, (bits + 7) / 8),
                                                      ^
zig/src/type.zig:3598:42: 0xadd4ea in intAbiSize (zig)
        const alignment = intAbiAlignment(bits, target);
                                         ^
zig/src/type.zig:3500:61: 0x92be91 in abiSizeAdvanced (zig)
                return AbiSizeAdvanced{ .scalar = intAbiSize(bits, target) };
                                                            ^
zig/src/type.zig:3385:62: 0x928933 in abiSizeAdvanced (zig)
                switch (try payload.elem_type.abiSizeAdvanced(target, strat)) {
                                                             ^
zig/src/type.zig:3268:32: 0x92c012 in abiSize (zig)
        return (abiSizeAdvanced(ty, target, .eager) catch unreachable).scalar;
                               ^
```
This is only noticed in a debug build of zig and silently does the wrong
thing and overflows in release builds.

This happened to `[x]u65529` and above because of the ` + 7` on a `u16`.
2023-05-09 11:58:34 +03:00