Commit Graph

24722 Commits

Author SHA1 Message Date
mlugg f26dda2117 all: migrate code to new cast builtin syntax
Most of this migration was performed automatically with `zig fmt`. There
were a few exceptions which I had to manually fix:

* `@alignCast` and `@addrSpaceCast` cannot be automatically rewritten
* `@truncate`'s fixup is incorrect for vectors
* Test cases are not formatted, and their error locations change
2023-06-24 16:56:39 -07:00
mlugg 447ca4e3ff translate-c: update to new cast builtin syntax 2023-06-24 16:47:49 -07:00
mlugg 283d650973 fmt: add rewrite for cast builtin type parameters 2023-06-24 16:47:49 -07:00
mlugg be0c69957e compiler: remove destination type from cast builtins
Resolves: #5909
2023-06-24 16:47:49 -07:00
Jakub Konka 13853bef0d cmake: fix typo in flag value for single threaded build 2023-06-24 13:51:42 -07:00
Matteo Briani 8ced903d61 Add support for the "--version" linker argument (#16154)
closes #15549

Co-authored-by: Matteo Briani <matteo.briani@icvox.com>
2023-06-24 16:24:50 -04:00
David CARLIER 72dd22f262 std.c: fix few capcisum api calls, following-up on 6ae19fa.
only variadic calls are prefixed with underscores.

ref: https://github.com/freebsd/freebsd-src/blob/59833b089e78463a561706fc03777249766aea01/sys/sys/capsicum.h#L326
2023-06-24 13:05:45 -07:00
Andrew Kelley 7ad1042279 Revert "fix parseInt failing when a correct base is given"
This reverts commit fa6cea22bf.

Apologies for the merge. I thought this was a bug fix, but I see that it
is implementing a proposal that I intended to reject.
2023-06-24 13:03:51 -07:00
Mikko Kaihlavirta fa6cea22bf fix parseInt failing when a correct base is given 2023-06-24 13:02:45 -07:00
David CARLIER ea1d64dae4 std.c: fix host_basic_info definition for darwin.
follow-up on ff59c45.

ref: https://github.com/ziglang/zig/blob/a5e15eced0e9cb00871966ede74eed9b3a07183c/lib/libc/include/any-macos-any/mach/host_info.h#L116
2023-06-24 13:00:14 -07:00
David CARLIER e9dd0a22f0 std.c: freebsd fix typo for PROC.PROCCTL_MD_MIN constant.
follow-up on 2e2d379.
2023-06-24 12:59:18 -07:00
Xavier Bouchoux f10b9e8fd7 update Liveness to detect that safety checks do not modify memory
followup to [25d3713b07]
Resolves #12215

Previous code didn't account for the extra unreach() that now exists in the air:

```
 %29!= block(void, {
    %30!= cond_br(%22!, {
      %31!= br(%29, @Air.Inst.Ref.void_value)
    }, {
      %2! %15!
      %27!= call(%26, [%19!, %21])
      %28!= unreach()
    })
  } %22!)
```
2023-06-24 12:57:46 -07:00
Andrew Kelley a5e15eced0 LLVM: move many DeclGen methods to Object
DeclGen/FuncGen methods are for things that pertain to a particular
declaration or function, while Object methods are for things that
pertain to the entire LLVM Module. Many methods were in the wrong
category, such as type and value lowering.

This is a prerequisite commit for a local branch I am working on, which
needs to be able to call lowerValue() without the context of any
particular function or declaration.
2023-06-24 02:29:49 -07:00
r00ster91 d82ab4fd8a ErrorBundle: fix integer overflow printing caret 2023-06-23 23:58:21 -07:00
Andrew Kelley b129f1b046 Merge pull request #16037 from Jan200101/PR/cmakedefine-fix
Correct cmakedefine implementation
2023-06-23 23:56:18 -07:00
Ali Chraghi ff0a88b133 spirv: fix a few conflicts caused by intern-pool 2023-06-23 23:52:45 -07:00
Michael Dusan 1cf06706be openbsd: fix NativeTargetInfo semver
- supply ".0" as .Z component and satisfy semver X.Y.Z requirement
- previously only X.Y was supplied and semver parse failed
2023-06-23 23:41:29 -07:00
Zachary Raineri 148e2a5a89 Removed unnecessary return switch on void method
Removed an unnecessary "return switch" on the Atomic.store method
2023-06-24 05:12:07 +00:00
Andrew Kelley 5288929ffd sema.addConstant: remove type parameter
Now that InternPool migration is finished, all values have types. So
only the value parameter is required.
2023-06-23 21:59:42 -07:00
kcbanner 5fc5e4fbe0 sema: Fix overflow when analyzing an inline switch prong range that ends on the maximum value of the switched type 2023-06-23 18:28:33 -07:00
kcbanner 9d66481e3d llvm: fixup elem_count argument of ZigLLVMCreateDebugArrayType to be i64
The signature is `getOrCreateSubrange(int64_t  Lo, int64_t  Count)`, so this updates the bindings to match.

This fixes a crash in `lowerDebugTypeImpl` when analyzing slices that have a length of 2^32 or
larger (up to `2^64 >> 3`, which still crashes, because above that the array size in bits overflows u64).
2023-06-23 14:53:17 -07:00
Ed Yu 8dcb4a3dc4 std.http: fix the http.Client.wait() hanging when there is 1 more byte left 2023-06-23 20:18:24 +02:00
Jacob Young 30ea714274 build.zig: bump maxrss upper bound for std lib tests 2023-06-23 12:13:42 -04:00
Sebastian Bensusan 64faaa7d8f Langref: Add example for catching some errors and narrowing the error set 2023-06-23 01:09:04 +03:00
Jacob Young 6aa88ecc54 Type/Value: garbage collect some methods 2023-06-22 11:45:33 -07:00
Niles Salter 7d511d6428 [heapsort] Protect against integer overflow
(Firstly, I changed `n` to `b`, as that is less confusing. It's not a length, it's a right boundary.)

The invariant maintained is `cur < b`. In the worst case `2*cur + 1` results in a maximum of `2b`. Since `2b` is not guaranteed to be lower than `maxInt`, we have to add one overflow check to `siftDown` to make sure we avoid undefined behavior.

LLVM also seems to have a nicer time compiling this version of the function. It is about 2x faster in my tests (I think LLVM was stumped by the `child += @intFromBool` line), and adding/removing the overflow check has a negligible performance difference on my machine. Of course, we could check `2b <= maxInt` in the parent function, and dispatch to a version of the function without the overflow check in the common case, but that probably is not worth the code size just to eliminate a single instruction.
2023-06-22 17:32:28 +00:00
Jacob Young c60896743d Value: handle more legacy tags when writing extern struct to memory
Closes #16130
2023-06-22 08:07:02 -07:00
Andrew Kelley 93e54f2354 Merge pull request #16110 from dweiller/force-tty-color
std.io.tty: cleanup detectConfig
2023-06-22 06:54:15 -07:00
David CARLIER 64f0059cd3 std.c: update netbsd/openbsd mman constants 2023-06-22 10:21:48 +00:00
Niles Salter 82470d4f89 [priority_dequeue] Fix out-of-bounds access
This makes it so `first_child_index` will not be accessed when it is equal to `self.len`. (i.e. `self.items[self.len]` will not happen) The access itself was "safe" (as in, `self.len < self.items.len`) because we were only calling `doSiftDown` in the case where there was a stale value at `self.items[self.len]`. However, it is still technically a bug, and can manifest by an unnecessary comparison of a value to a copy of itself.
2023-06-22 02:03:53 -07:00
Niles Salter ff5850183e [priority_deque] simplify & optimize isMinLayer
LLVM has trouble compiling the old implementation, (presumably) because `leading_zeros` is thought to be a `u7` rather than a `u6`, which means `63 - clz` is not equivalent to `63 ^ clz`, which means it can't deduce that the final condition can simply be flipped. (I am assuming `usize` is a `u64` here for ease of understanding, but it's the same for any power of 2)

https://zig.godbolt.org/z/Pbj4P7ob3

The new version is slightly better too because `isMinLayer(maxInt(usize))` is now well-defined behavior.
2023-06-22 01:57:28 -07:00
d18g 991e00c270 objcopy.zig allow outputting zero length sections (#16121)
Co-authored-by: Andrew Kelley <andrew@ziglang.org>
2023-06-22 01:55:34 -07:00
Piotr Sarna 438d680913 http: fix getting Transfer-Encoding value
The 'Content-Length' header was inspected by mistake,
which makes it effectively impossible to use chunked
Transfer-Encoding when using the http client.

Tested locally with a HTTP server - data is properly sent
with POST method and the proper encoding declared, after the fix.
2023-06-22 11:44:46 +03:00
Jacob Young 1d38817f5d cbe: key lifetime? 2023-06-22 00:24:26 -04:00
dweiller e45d24c0de rename ZIG_DEBUG_COLOR env variable to YES_COLOR 2023-06-22 10:29:45 +10:00
dweiller e05412669c std.io.tty: add detectTtyConfigForce for forcing color 2023-06-22 10:29:45 +10:00
Jan200101 f74285b3be test: add standalone test for cmakedefine 2023-06-21 21:51:07 +02:00
Jan200101 1864ba2ccc std.Build: implement variable substitution 2023-06-21 21:51:07 +02:00
Jan200101 5177068c88 std.Build: correctly implement cmakedefine and cmakedefine01 2023-06-21 21:51:06 +02:00
Andrew Kelley 128fd7dd02 CI: -x86_64-macos-debug, +aarch64-macos-debug
It's easier to get M1 hardware for testing than x86_64-macos. This
addresses the current bottleneck in our CI pipeline.
2023-06-21 00:37:58 -07:00
Andrew Kelley 12813d5912 Merge pull request #16105 from jacobly0/intern-pool-opt
InternPool: various optimizations
2023-06-21 00:07:49 -07:00
Jacob Young a257e33fff Type: remove arbitrary restrictions on param and return types
Opaque and `noreturn` makes sense since they don't represent real
values, but `null` and `undefined` are perfectly normal
comptime-only values.

Closes #16088
2023-06-20 21:51:01 -07:00
jacobly0 e2eabbbc51 Merge pull request #16098 from ziglang/musl-v1.2.4
update musl from v1.2.3 to v1.2.4
2023-06-20 23:14:22 -04:00
Jacob Young 8875efe548 Sema: fix auto-numbered enums with signed tag types
Closes #16095
2023-06-20 20:09:28 -07:00
IntegratedQuantum 3267eb3a28 Fix @enumToInt and @tagName for auto-numbered enums with signed tag type. 2023-06-20 20:09:28 -07:00
Andrew Kelley b77679039f Merge pull request #15415 from ehaas/c-char-signedness
Set `c_char` signedness based on the target
2023-06-20 16:41:58 -07:00
Josh Wolfe 0f2339f55b std: json.parseFromValue() (#15981) 2023-06-20 19:01:34 -04:00
Jakub Konka d2b2567119 macho: do not skip scanning relocs if the sym is non-extern 2023-06-21 00:31:01 +02:00
Jakub Konka 7b5bd3a93f Merge pull request #16097 from ziglang/macho-faster-uuid
macho: parallelize UUID hash calculation at the expense of full compatibility with ld64
2023-06-21 00:03:52 +02:00
d18g 939e4d81e1 Update objcopy.zig
Fix `--only-section=` handling
2023-06-20 13:12:19 -07:00