21576 Commits

Author SHA1 Message Date
Frank Denis
c49e4d534f
Improve and remove duplicate doNotOptimizeAway() implementations (#13790)
* Improve and remove duplicate doNotOptimizeAway() implementations

We currently have two doNotOptimizeAway() implementations, one in
std.math and the other one in std.mem.

Maybe we should deprecate one. In the meantime, the std.math one
now just calls the std.mem one.

In a comptime environment, just ignore the value. Previously,
std.mem.doNotOptimizeAway() did not work at comptime.

If the value fits in a CPU register, just tell the compiler we
need that value to be computed, without clobbering anything else.

Only clobber all possibly escaped memory on pointers or large arrays.

Add tests by the way since we didn't had any (we had, but only
indirect ones).
2022-12-09 18:22:50 +01:00
Manlio Perillo
65f35a76f9 langref: consistently use comptime-known and runtime-known 2022-12-09 18:24:40 +02:00
Manlio Perillo
505a21bcc5 langref: link "result location" to the "Result Location Semantics" section 2022-12-09 17:42:25 +02:00
Jakub Konka
d88eb75a69
Merge pull request #13820 from ziglang/dwarf-multiple-files
dwarf: add support for multiple source files
2022-12-09 14:11:28 +01:00
Ryan Liptak
71c82393eb std.testing: Fully absorb expectEqualBytes into expectEqualSlices
- In #13720, expectEqualBytes was added as a standalone function
- In #13723, expectEqualSlices was made to use expectEqualBytes when the type was u8
- In this commit, expectEqualSlices has fully absorbed expectEqualBytes, and expectEqualBytes itself has been removed

For non-`u8` types, expectEqualSlices will now work similarly to expectEqualBytes (highlighting diffs in red), but will use a full line for each index and therefore will only print a maximum of 16 indexes.
2022-12-09 04:36:27 -05:00
Jacob Young
6966fb8ca5 wasm2c: reuse locals
* Reduce stack usage of a -O0 build of zig1 by 33%.
 * Avoid compiler builtin calls.
2022-12-09 03:45:29 -05:00
Jakub Konka
9735953ae2 wasm: implement moving debug_line program when header too big 2022-12-09 09:24:25 +01:00
Jakub Konka
742aa94280 dsym: hint linker when file range copy is not necessary 2022-12-09 09:24:25 +01:00
Jakub Konka
9ade4f6d8c elf: hint linker when file range copy is not necessary 2022-12-09 09:24:25 +01:00
Jakub Konka
d7e42014ca elf: add growAllocSection and growNonAllocSection
Update `Dwarf.zig` to use `growNonAllocSection` for ELF and implement
routine to make space for `.debug_line` header.
2022-12-09 09:24:25 +01:00
Jakub Konka
aa2f48f013 dsym: reuse growSection where possible 2022-12-09 09:24:25 +01:00
Jakub Konka
fa44c73c1e dwarf: move any remaining section growth to dsym 2022-12-09 09:24:25 +01:00
Jakub Konka
b14e580ad8 dwarf: move growing debug_aranges section to dsym 2022-12-09 09:24:25 +01:00
Jakub Konka
136a508027 dsym: finish markDirty helper 2022-12-09 09:24:25 +01:00
Jakub Konka
ecb341a006 dwarf: move growing debug_abbrev section to dsym 2022-12-09 09:24:25 +01:00
Jakub Konka
381abcfb7a dwarf: move another sect growing routine to d_sym 2022-12-09 09:24:25 +01:00
Jakub Konka
4bb66b63ba macho: add helper for getting ptr to DebugSymbols 2022-12-09 09:24:25 +01:00
Jakub Konka
05e221796a dwarf+d_sym: move logic for growing section to d_sym 2022-12-09 09:24:25 +01:00
Jakub Konka
4c38ba7d1b dwarf: move SrcFns if debug_line header exceeded its padding 2022-12-09 09:24:25 +01:00
Jakub Konka
be2b85f670 dwarf: refactor object file format and ptr width switches in writeDbgLineHeader 2022-12-09 09:24:25 +01:00
Jakub Konka
8e71a79e4b dwarf: fix incorrect calc of dir index 2022-12-09 09:24:25 +01:00
Jakub Konka
62145a1b08 dwarf: refactor routine for precalculating size of dbg line header 2022-12-09 09:24:25 +01:00
Jakub Konka
6817219e27 dwarf: generate list of include dirs and file names like LLVM backend 2022-12-09 09:24:25 +01:00
Jakub Konka
6ec34edb9a dwarf: fully resolve each path to each file source 2022-12-09 09:24:25 +01:00
Jakub Konka
f5c764d892 dwarf: track source files via *const Module.File pointers 2022-12-09 09:24:25 +01:00
Jakub Konka
4c4821d993 dwarf: specify all referenced zig source files 2022-12-09 09:24:25 +01:00
Andrew Kelley
5c67f9ce7a
Merge pull request #13827 from Vexu/fix-ci
TypedValue: fix handling of tuples represented as empty_struct_value
2022-12-08 21:59:43 -05:00
Veikka Tuominen
ee9fc54cd0 TypedValue: fix handling of tuples represented as empty_struct_value 2022-12-08 22:21:49 +02:00
r00ster91
7826e28bd3 Re-apply: "std.ComptimeStringMap: use tuple types"
096d3efae5fcaa5640f4acb2f9be2d7f93f7fdb2 was not the cause of the
CI failure.
2022-12-08 22:21:46 +02:00
Andrew Kelley
225ed65ed2 Revert "std.ComptimeStringMap: use tuple types"
This reverts commit 096d3efae5fcaa5640f4acb2f9be2d7f93f7fdb2.

This commit is not passing a very important CI test that was recently
added.
2022-12-08 02:23:17 -08:00
Veikka Tuominen
d5ecb318c4 Sema: check for uneeded src loc when using --debug-compile-errors 2022-12-08 11:10:08 +02:00
Andrew Kelley
83361e4a9b CI: test updating the wasm binary
Make sure that no commit regresses the ability to upgrade our wasm
binary. Otherwise, somebody in the future is going to have a Bad Day.
2022-12-08 02:01:46 -05:00
Andrew Kelley
d69e97ae16
Merge pull request #13806 from Vexu/stage2-fixes
misc fixes and improvements
2022-12-07 21:35:02 -05:00
Andrew Kelley
913b4a3f19
Merge pull request #13802 from ziglang/windows-lib-name
CI: make Windows build from source like every other system
2022-12-07 19:09:43 -05:00
Veikka Tuominen
6039554b26 tokenizer: detect null bytes before EOF
Closes #13811
2022-12-08 00:16:30 +02:00
Andrew Kelley
1122d9d212 CI: windows: fix zig lib dir path
See #12685
2022-12-07 12:49:17 -07:00
Andrew Kelley
6d48357cc7 build.zig: on windows always link llvm-required system libs
When building with LLVM, always do -lole32 -lversion -luuid even when
using the cmake-provided build stuff. Otherwise we get undefined symbols
when linking.
2022-12-07 12:49:17 -07:00
Veikka Tuominen
653c0bae0c remove stage1 specific compile error tests 2022-12-07 20:32:27 +02:00
Veikka Tuominen
f8dcd34775 TypedValue.print: detect string literals
Closes #4281
Closes #13785
2022-12-07 20:32:27 +02:00
r00ster91
096d3efae5 std.ComptimeStringMap: use tuple types
This is now possible due to #13627.
2022-12-07 14:56:55 +02:00
Veikka Tuominen
4fb9c75fc9 compiler-rt: do not export complex arithmetic on ofmt=c
These functions cannot be properly implemented without #8465

Closes #13800
2022-12-07 14:54:29 +02:00
Veikka Tuominen
dff32a2cd7 Sema: resolve lazy values in analyzeMinMax
Closes #13797
2022-12-07 14:48:24 +02:00
Veikka Tuominen
ddce76059b Sema: add error for @tagName on empty enum 2022-12-07 14:48:24 +02:00
Veikka Tuominen
d078d08e4f Sema: export function instead of the constant referencing it
Closes #13706
2022-12-07 14:48:24 +02:00
Veikka Tuominen
92f1a29c40 AstGen: make @compileError operand implicitly comptime
This matches the language reference.
2022-12-07 14:48:24 +02:00
Andrew Kelley
1310ef7577 disable failing behavior tests with -ofmt=c -target x86_64-windows
and enable CI checks for the C backend on Windows.
2022-12-07 04:01:04 -05:00
Andrew Kelley
9627018d0c build: obtain zigcpp library prefix/suffix from cmake 2022-12-07 01:44:15 -07:00
Jacob Young
eb4337fe83 Revert "CI: revert windows script to master branch version"
This reverts commit 106e9678937a662fec220367d5d57d04eb09b6b7.
2022-12-07 01:34:21 -07:00
Andrew Kelley
53a9ee699a
Merge pull request #13799 from ziglang/close-stage1-issues
close stage1 issues
2022-12-07 03:06:10 -05:00
Casey Banner
8ccb9a6ad3
cache: Fix LockViolation during C compilation paths (#13591)
- C compilation flows didn't hold an exclusive lock on the cache manifest file when writing to it in all cases
- On windows, explicitly unlock the file lock before closing it
2022-12-06 23:15:54 -05:00