27020 Commits

Author SHA1 Message Date
joadnacer
a8eb70c9d7 compress: Improve RingBuffer usage 2023-10-21 19:20:12 +01:00
joadnacer
7f9e0f1c56 std.RingBuffer: Implement more efficient read/write methods 2023-10-21 19:19:35 +01:00
Michael Bradshaw
cc56577edf Return zero for NaN-to-int lossy casts
Fixes #15038.

The goal here is to guarantee lossyCast() is panic-free and always safe.
2023-10-21 20:51:51 +03:00
Robin Voetter
6281ad91df
spirv: self-referential pointers via new fwd_ptr_type
Its a little ugly but it works.
2023-10-21 17:46:54 +02:00
Robin Voetter
6e955af8c8
spirv: make constructStruct also use self.ptrType
This completes the migration from spv.ptrType to self.ptrType.
Unfortunately this requires us to pass a list of types to
constructStruct, which also requires some extra allocations
here and there.
2023-10-21 17:46:53 +02:00
Robin Voetter
1deec09f03
spirv: improve union operations
This removes the strategy where union with different active
fields would be generated, and instead simply pointer casts
the active field type where required. This also allows removing
spv.ptrType and using self.ptrType instead, and allows caching
all union types (because there is only the canonical one).
2023-10-21 17:46:53 +02:00
Robin Voetter
5090d75e48
spirv: make load() and store() accept MemoryOptions
This struct is used to configure the load, such as to make
it volatile. Previously this was done using a single bool, but
this struct makes it shorter to write non-volatile loads (the
usual) and more clear whats going on when a volatile load is
required.
2023-10-21 17:46:52 +02:00
Robin Voetter
200bca360e
spirv: replace most use of spv.ptrType with self.ptrType
To support self-referential pointers, in the future we will
need to pass the Zig type to any pointer that is created. This
lays some ground work for that by replacing most uses of
spv.ptrType with a new ptrType function that also accepts the
Zig type. This function's contents will soon be replaced by
a version that also supports self-referential pointers.

Also fixed some bugs regarding the use of direct/indirect.
2023-10-21 17:46:50 +02:00
Jacob Young
920e9668dd x86_64: enable fixed behavior test 2023-10-21 10:55:41 -04:00
Jacob Young
70c8e7f91d x86_64: disable failing tests, enable test-compiler-rt testing 2023-10-21 10:55:41 -04:00
Jacob Young
32e85d44eb x86_64: disable failing tests, enable test-std testing 2023-10-21 10:55:41 -04:00
Jacob Young
2e6e39a700 x86_64: fix bugs and disable erroring tests 2023-10-21 10:55:41 -04:00
Jacob Young
c880644d92 x86_64: disable difficult std tests and hack around more zero-bit types 2023-10-21 10:55:41 -04:00
Jacob Young
9358a7528f x86_64: fix crashes 2023-10-21 10:55:41 -04:00
snoire
b403ca0aab std.Build: use create() instead of init() for Step.RemoveDir 2023-10-21 17:48:25 +03:00
Jakub Konka
809e7aa4fc
Merge pull request #17638 from ziglang/elf-dwarf-fixes
dwarf: decouple DWARF formats from target pointer size + misc fixes
2023-10-21 16:14:40 +02:00
Veikka Tuominen
bf61c5c065 make distinct error limit configurable
Closes #786
2023-10-21 12:36:29 +03:00
Andrew Kelley
3d6e633371
Merge pull request #16840 from e4m2/rand-int
std.rand: Support integers with >64 bits in more functions
2023-10-21 05:26:19 -04:00
LordMZTE
b3aaf854cd std.os: do nothing when calling fchdir with AT_FDCWD 2023-10-21 05:13:21 -04:00
matu3ba
f335d92b28
compiler_rt: arm frsub, drsub with tests (#17629)
Tests with +-0, numbers with accuracy 0.001, 0.000001, +-max for inf.
2023-10-21 02:12:02 -07:00
Frank Denis
a5c79c7998
crypto.ff: faster exponentiation with short/public exponents (#17617)
RSA exponents are typically 3 or 65537, and public.

For those, we don't need to use conditional moves on the exponent,
and precomputing a lookup table is not worth it. So, save a few
cpu cycles and some memory for that common case.

For safety, make `powWithEncodedExponent()` constant-time by default,
and introduce a `powWithEncodedPublicExponent()` function for exponents
that are assumed to be public.

With `powWithEncodedPublicExponent()`, short (<= 36 bits) exponents
will take the fast path.
2023-10-21 02:09:43 -07:00
Ryan Liptak
fb5f69a552 Improve Dir.makePath and Dir.makeOpenPathAccessMaskW doc comments
These are not recursive functions, so 'recursively' could be misleading.
2023-10-20 23:25:43 -07:00
Ryan Liptak
63b504219d Dir.makeOpenPathAccessMaskW: Use path.ComponentIterator
See 49053cb1b4af7ee2973cf606def398c7eef6578b for details

Also, fix leaking the intermediate directory handles.
2023-10-20 23:25:43 -07:00
Andrew Kelley
54a4f24ea7 build.zig: bump max_rss again
zig build-exe zig Debug aarch64-macos-none: error: memory usage peaked
at 6607110144 bytes, exceeding the declared upper bound of 6500000000
2023-10-20 23:01:05 -07:00
Andrew Kelley
c55a33e6d9 build.zig: it takes even more ram to build zig apparently
zig build-exe zig Debug aarch64-macos-none: error: memory usage peaked
at 6466420736 bytes, exceeding the declared upper bound of 6350000000
2023-10-20 22:41:20 -07:00
Andrew Kelley
8520aa585f build.zig: adjust max_rss again
Looks like the higher memory requirements come from building with a
clean cache, and affect all operating systems, not just macOS.
2023-10-20 21:56:37 -07:00
Andrew Kelley
5ec59f2a01 build.zig: building on macos takes more memory
Previous commit caused this error to be printed:

zig build-exe zig Debug aarch64-macos-none: error: memory usage peaked
at 6323765248 bytes, exceeding the declared upper bound of 5200000000
2023-10-20 21:54:27 -07:00
Andrew Kelley
1c48588fc8 build.zig: annotate max_rss for building the compiler
I observed some out-of-memory conditions happening on one of the CI
servers. This should make it avoid scheduling compiler builds at the
same time as other memory-intensive operations.
2023-10-20 21:31:49 -07:00
joadnacer
89aad1b89c linux.io_uring: Implement splice functions 2023-10-21 05:02:17 +03:00
Andrew Kelley
0d4d8dfc15 std.Target: update default Linux cross-compiling version
Currently, Zig uses the oldest Debian release that is still under LTS
for the default version minimum. This is now Debian 10 (Buster), with
long-term support until 2024-06-30.

Debian Buster uses Linux 4.19 and glibc 2.28.

For the default version maximum, Zig uses the newest stable Linux
version, which is currently 6.5.7.

Citations:
* https://www.debian.org/News/2019/20190706
* https://packages.debian.org/source/buster/glibc
* https://kernel.org/

Previous update commit: 1530203c804db7e5abd7d6eac05cfbe449d30aea
2023-10-20 20:12:50 -04:00
Andrew Kelley
bd1f96869e InternPool: fix incomplete hash of pointer values
There is this `common` prefix which was not getting passed in all union
tags of pointer vals, resumably making InternPool slower for pointer
values.
2023-10-20 20:02:35 -04:00
Andrew Kelley
328ec15d9c Revert "make distinct error limit configurable"
This reverts commit 78855bd21866b515018259a2194e036e4b3120df.

This commit did not replace uses of `Type.err_int` of which there are
currently 60 uses.

Re-opens #786
2023-10-20 14:03:55 -07:00
Jakub Konka
6dc45e7d31
Merge pull request #17621 from ziglang/elf-pic-pie
elf: actually check for dynamic executables
2023-10-20 22:33:44 +02:00
Andrew Kelley
7de893c085
Merge pull request #16817 from Sahnvour/shuffle-deps
std.Build: add --seed argument to randomize step dependencies spawning
2023-10-20 15:30:48 -04:00
Constantin Bilz
45d7dfa833 std.hash_map: add const attribute to StringIndexContext.bytes and ...
StringIndexAdapter.bytes

Without this change, constructing a Context/Adapter for a `const` string
table requires a `@constCast`.
2023-10-20 19:06:32 +03:00
Pat Tullmann
1631dc923d glibc headers: reallocarray added to glibc in v2.26
Here's the glibc commit that adds reallocarray to glibc:
https://sourceware.org/git/?p=glibc.git;a=commit;h=2e0bbbfbf95fc9e22692e93658a6fbdd2d4554da

The reallocarray symbol is declared in both stdlib.h and malloc.h.

Fix #17607
2023-10-20 06:45:24 -04:00
dbandstra
6822a7a123 langref: bring build.zig examples up to date
Update to match current outputs of init-exe and init-lib.
2023-10-20 04:50:29 -04:00
matu3ba
3c22cecee2
compiler_rt: add tests for arm routines (#17573)
* __aeabi_ldivmod
* __aeabi_uldivmod
* __aeabi_idivmod
* __aeabi_uidivmod
2023-10-20 00:57:11 -07:00
Andrew Kelley
a361f37b1c
Merge pull request #17608 from squeek502/resinator-fixes
resinator: Fix `INCLUDE` var handling and sync with upstream
2023-10-20 03:49:14 -04:00
dweiller
db18b562ac std.Build: do not assume custom test runners support client-server mode 2023-10-20 02:39:17 -04:00
Michael Dusan
aa76ca2931 llvm: set PIE only for executables
closes #17575
2023-10-20 01:59:55 -04:00
Andrew Kelley
5d8bc56ab6
Merge pull request #15268 from DraagrenKirneh/feature/14475-minimum-zig-version
#14475 minimal_zig_version in build.zig.zon
2023-10-20 00:51:44 -04:00
Prokop Randacek
fee09009a8 gettimeofday takes nullable pointers 2023-10-20 00:15:34 -04:00
Jacob Young
4d106076c3 link: initialize llvm before calling the llvm API 2023-10-19 16:51:11 -04:00
Jakub Konka
f4f5e9edd6 dwarf: bring back realpath resolution of include dirs 2023-10-19 22:41:59 +02:00
Jakub Konka
eb76ef58f8 dwarf: revert adding spurious and incorrect +1 to getDebugInfoEnd() 2023-10-19 21:56:47 +02:00
Jakub Konka
400faec10b dwarf: introduce Dwarf.Format to be able to select 32/64bit format at whim 2023-10-19 21:56:47 +02:00
Jakub Konka
4f66efdc7f dwarf: clean up and fix writing include dirs and files to debug line header 2023-10-19 21:56:47 +02:00
Jakub Konka
349dc05452 dwarf: remove obsolete sentinels from abbrev table 2023-10-19 21:56:47 +02:00
Andrew Kelley
10200970bb build system: fixups to --seed mechanism
* support 0x prefixed hex code for CLI seed arguments
* don't change the build summary; the printed CLI on build runner
  failure is sufficient
* use `std.crypto.random` instead of system time for entropy
2023-10-19 14:24:35 -04:00