Jakub Konka
2cd456f8f4
test: correctly handle multiple backends
...
To correctly handle multiple backends crossed with multiple targets,
we need to push all elements in separate allocated arrays rather
than operate on raw iterators. Hence, introduce `getConfigForKeyAlloc`.
2022-04-28 18:35:01 +02:00
Jakub Konka
495bb12e6a
test: migrate plan9 and sparcv9 incremental tests
2022-04-28 18:35:01 +02:00
Jakub Konka
ed51a5d02a
test: migrate arm incremental tests
2022-04-28 18:35:01 +02:00
Jakub Konka
fc4fbfe8e1
test: migrate aarch64 incremental tests
2022-04-28 18:35:01 +02:00
Jakub Konka
7e17cbbda5
test: migrate riscv64 incremental tests
2022-04-28 18:35:01 +02:00
Jakub Konka
8e05e6a1ed
test: migrate wasm incremental tests
2022-04-28 18:35:01 +02:00
Jakub Konka
815dc2c6e7
test: enable wasm32-wasi incremental tests
2022-04-28 18:35:01 +02:00
Jakub Konka
8d5acf7693
test: recursively walk dir with tests
...
Prune incremental tests by moving non-incremental behavior tests to
behavior test suite instead.
2022-04-28 18:35:01 +02:00
Jakub Konka
c8a0d8ff2b
ci: ignore fmt errors in test/incremental/
2022-04-28 18:35:01 +02:00
Jakub Konka
e4a8a66504
test: remove incremental tests that were ported to the new harness
2022-04-28 18:35:01 +02:00
Jakub Konka
97b781955e
test: fix incorrect default target spec; port all incremental tests
2022-04-28 18:35:01 +02:00
Jakub Konka
133708d939
test: leave a todo note to explicitly specify ABI for targets in the future
2022-04-28 18:35:01 +02:00
Jakub Konka
0998185f77
test: adjust error location for assert_function test
2022-04-28 18:35:01 +02:00
Jakub Konka
81e90c7acb
test: fix pointer invalidation bug in the harness
2022-04-28 18:35:01 +02:00
Jakub Konka
c1a98cd65d
test: set case name from initial filename for a sequence
...
Port more incremental tests.
2022-04-28 18:35:01 +02:00
Jakub Konka
46db5e2a44
test: unroll into multiple cases, provide default parsers
...
Provide default parsers for obvious config options such as
`CrossTarget` or `Backend` (or any enum for that matter).
Unroll iterator loops into multiple cases - we need to create
a Cartesian product for all possibilities specified in the
test manifest.
2022-04-28 18:35:01 +02:00
Jakub Konka
bc370311cb
test: add comptime struct holding default config values
2022-04-28 18:35:01 +02:00
Jakub Konka
f41dd3617e
test: pass Strategy per directory of tests
2022-04-28 18:35:01 +02:00
Jakub Konka
d305a6fb55
test: parse all of manifest in TestManifest abstraction
2022-04-28 18:35:01 +02:00
Jakub Konka
d8d12d51ec
test: abstract away test manifest parser into separate struct
2022-04-28 18:35:01 +02:00
Jakub Konka
d5fcb50988
fmt: fix formatting of lib/std/x/net/bpf.zig
2022-04-28 18:34:37 +02:00
Veikka Tuominen
6d48600ea0
Merge pull request #10717 from gh-fork-dump/seccomp-bits
...
Add Seccomp bits for linux
2022-04-28 18:54:09 +03:00
Veikka Tuominen
75c9936737
Merge pull request #11214 from iddev5/ay-build-runner
...
std: explicitly handle error.UnexpectedExitCode in build_runner
2022-04-28 18:38:44 +03:00
matu3ba
7f13f5cd5f
std.testing: add writeZigFile for TmpDir
...
* remove need for manual string concatenation for building binaries in test blocks
* include small program snippet to show how to get binary path with subslicing
2022-04-28 18:37:30 +03:00
Erik Hugne
8e3add8736
std.build: make no_dll_export_fns accessible in build step
2022-04-28 18:34:15 +03:00
Erik Hugne
f7bc8900bf
std.coff: parse out codebase and entrypoint from optionalheader
2022-04-28 18:31:20 +03:00
Isaac Freund
6f4343b61a
std: replace usage of std.meta.bitCount() with @bitSizeOf()
2022-04-27 11:10:52 +02:00
Isaac Freund
6c0719fd5f
std.meta: deprecate bitCount() for @bitSizeOf()
2022-04-27 11:10:52 +02:00
Jimmi Holst Christensen
cea310c908
Remove usage of inline for from print_targets.cmdTargets
...
This function was one of the biggest zig functions in a debug build of
the compiler.
$ bloaty stage3-debug/bin/zig -d symbols --tsv -n 10000000 |
rg -v '(llvm|clang|std|lld|\(anonymous namespace\))::|\[section ' |
sort -h -k 3
...
translate_c.ast.renderNode 86168 86219
main.buildOutputType 177959 178004
InfoTable 184832 184870
AArch64SVEIntrinsicMap 188544 188596
print_targets.cmdTargets__anon_4735 319156 319216
__static_initialization_and_destruction_0() 486666 489582
MatchTable1 621884 621997
OperandMatchTable 1139622 1139861
MatchTable0 1899764 1900141
2022-04-26 17:52:21 -04:00
protty
18f3034629
std.Thread: ResetEvent improvements ( #11523 )
...
* std: start removing redundant ResetEvents
* src: fix other uses of std.Thread.ResetEvent
* src: add builtin.sanitize_thread for tsan detection
* atomic: add Atomic.fence for proper fencing with tsan
* Thread: remove the other ResetEvent's and rewrite the current one
* Thread: ResetEvent docs
* zig fmt + WaitGroup.reset() fix
* src: fix build issues for ResetEvent + tsan
* Thread: ResetEvent tests
* Thread: ResetEvent module doc
* Atomic: replace llvm *p memory constraint with *m
* panicking: handle spurious wakeups in futex.wait() when waiting for abort()
* zig fmt
2022-04-26 16:48:56 -05:00
Andrew Kelley
50f1856476
Merge pull request #11336 from wsengir/stage2-optimize-intcast
...
Sema: combine signed->unsigned and shrinkage runtime checks in intCast
2022-04-26 13:20:19 -04:00
Andrew Kelley
0324975d1d
Merge pull request #11526 from topolarity/f80-div
...
compiler_rt: Implement `__divxf3` and `fmodx`
2022-04-26 13:05:30 -04:00
Luuk de Gram
5f2d0d414d
wasm: Implement codegen for C-ABI
...
This implements passing arguments and storing return values correctly
for the C-ABI as specified by the tool-convention:
https://github.com/WebAssembly/tool-conventions/blob/main/BasicCABI.md
There's definitely room for better codegen in follow-up commits.
2022-04-26 12:20:27 +02:00
Luuk de Gram
cb49af6c9a
wasm: Initial C-ABI implementation
...
This implements the C-ABI convention as specified by:
https://github.com/WebAssembly/tool-conventions/blob/main/BasicCABI.md
While not an official specification, it's the ABI that is output by clang/LLVM.
As we use LLVM to compile compiler-rt, and want to integrate with C-libraries,
we follow the same convention when the calling convention results in 'C'.
2022-04-26 12:20:27 +02:00
Cody Tapscott
28c05b0a53
compiler_rt: Bypass fmodx impl. on stage2
...
This function is codegen'd incorrectly in stage2, since it fails to
generate the correct soft-float operations. This will be fixed once
issue #11161 is implemented
2022-04-25 19:38:59 -07:00
Cody Tapscott
96d86e3465
compiler_rt: Fix rounding edge case for __mulxf3
2022-04-25 17:21:09 -07:00
Cody Tapscott
f5540778b5
stdlib: Fix hex-float printing for f80
2022-04-25 17:21:09 -07:00
Cody Tapscott
d930e015c7
compiler_rt: Implement __divxf3 for f80
2022-04-25 17:21:09 -07:00
Cody Tapscott
6c0114e044
compiler_rt: Implement fmodx for f80
2022-04-25 17:21:05 -07:00
Andrew Kelley
ab658e32bd
Sema: fix export with Internal linkage
...
The Export tables should only be populated with non-internal exports.
2022-04-24 20:24:37 -07:00
jagt
76311aebff
std: fix crypto and hash benchmark
2022-04-24 23:01:06 -04:00
protty
963ac60918
std.Thread: Mutex and Condition improvements ( #11497 )
...
* Thread: minor cleanups
* Thread: rewrite Mutex
* Thread: introduce Futex.Deadline
* Thread: Condition rewrite + cleanup
* Mutex: optimize lock fast path
* Condition: more docs
* Thread: more mutex + condition docs
* Thread: remove broken Condition test
* Thread: zig fmt
* address review comments + fix Thread.DummyMutex in GPA
* Atomic: disable bitRmw x86 inline asm for stage2
* GPA: typo mutex_init
* Thread: remove noalias on stuff
* Thread: comment typos + clarifications
2022-04-23 19:35:56 -05:00
Morritz
daef82d06f
add GetProcessTimes binding to the kernel32.zig ( #11488 )
2022-04-23 16:58:27 -05:00
William Sengir
eac09ac350
CBE: disable int128 test since airWrapOp is needed for runtime safety
2022-04-22 22:22:30 -07:00
William Sengir
fa42fcbc1a
Sema: combine signed->unsigned and shrinkage runtime checks in intCast
2022-04-22 22:08:16 -07:00
Andrew Kelley
cf20b97b71
Merge pull request #11279 from igor84/s1_packed_struct
...
stage1: Fix packed structs (#2627 , #10104 )
2022-04-22 11:39:12 -04:00
Andrew Kelley
06310e3d4e
Revert "Fix C include files not being in whole cache ( #11365 )"
...
This reverts commit a430630002bf02162ccbf8d3eb10fd73e490cefd.
Wait a minute, I'm sorry, I need to revert this. The whole premise
of this change is broken because the point of the hash is that it tells
whether the same compilation has been done before. This requires items
to be added to the hash in the same sequence every time. This means that
introducing a lock is fundamentally broken because the order needs to be
the same in future runs of the compiler, and not decided by threads
racing against each other.
The proper solution to this is to, in whole cache mode, append the hash
inputs to some data structure, and then after the compilation is
complete, do some kind of sorting on the hash inputs so that they will
be the same order every time, then apply them in sequence. No lock on
the Cache object is needed for this scheme.
2022-04-22 08:19:51 -07:00
Tom Read Cutting
a430630002
Fix C include files not being in whole cache ( #11365 )
2022-04-22 11:12:51 -04:00
Andrew Kelley
42e81cd81b
Merge pull request #11377 from AnnikaCodes/11368
...
C backend: Fix array declarations
2022-04-22 10:55:41 -04:00
Andrew Kelley
0e830b1630
clean up behavior tests
...
Split big test into the two separate things it is testing.
Add missing checks to the test which revealed the test is not actually
passing yet for the C backend.
2022-04-22 07:52:21 -07:00