Alex Rønne Petersen
9d8adb38a1
std.Build: Make no_builtin a property of Module instead of Step.Compile.
...
This reflects how the compiler actually treats it.
Closes #23424 .
2025-05-12 17:08:22 +02:00
Alex Rønne Petersen
e63e3f7a7c
test: Add test-llvm-ir step and harness for testing generated LLVM IR.
2025-05-12 17:07:50 +02:00
Alex Rønne Petersen
c3734450bc
test: Add MIPS N32 targets to the module test matrix.
2025-05-08 21:32:22 +02:00
Alex Rønne Petersen
473f36d70f
test: Add dynamic musl targets to the module test matrix.
...
Most of these are gated by -Dtest-extra-targets because:
* We don't really have CI resources to spare at the moment.
* They're relatively niche if you're not on a musl distro.
* And the few musl distros that exist don't support all these targets.
* Quite a few of them are broken and need investigating.
x86_64-linux-musl and aarch64-linux-musl are not gated as they're the most
common targets that people will be running dynamic musl on, so we'll want to
have some bare minimum coverage of those.
2025-05-08 21:32:22 +02:00
Alex Rønne Petersen
8f8f37fb0f
test: Add powerpc-linux-gnueabi(hf) to the module test matrix.
...
Skips std tests for now: https://github.com/ziglang/zig/issues/2256
2025-04-17 17:32:33 +02:00
Alex Rønne Petersen
9352f379e8
Merge pull request #23529 from alexrp/2879-groundwork
...
Introduce libzigc for libc function implementations in Zig
2025-04-12 18:14:17 +02:00
Alex Rønne Petersen
1f896c1bf8
Introduce libzigc for libc function implementations in Zig.
...
This lays the groundwork for #2879 . This library will be built and linked when a
static libc is going to be linked into the compilation. Currently, that means
musl, wasi-libc, and MinGW-w64. As a demonstration, this commit removes the musl
C code for a few string functions and implements them in libzigc. This means
that those libzigc functions are now load-bearing for musl and wasi-libc.
Note that if a function has an implementation in compiler-rt already, libzigc
should not implement it. Instead, as we recently did for memcpy/memmove, we
should delete the libc copy and rely on the compiler-rt implementation.
I repurposed the existing "universal libc" code to do this. That code hadn't
seen development beyond basic string functions in years, and was only usable-ish
on freestanding. I think that if we want to seriously pursue the idea of Zig
providing a freestanding libc, we should do so only after defining clear goals
(and non-goals) for it. See also #22240 for a similar case.
2025-04-11 17:12:31 +02:00
Alex Rønne Petersen
d01f2aa6e7
test: Add hexagon-linux-(none,musl) to the test matrix.
...
This skips std tests for now: https://github.com/llvm/llvm-project/pull/111217
2025-04-11 02:29:27 +02:00
imreallybadatnames™️
7733b5dbe6
Merge pull request #23501 from imreallybadatnames/master
...
Step.Compile: use LtoMode enum for lto option
2025-04-09 05:16:36 +00:00
Alex Rønne Petersen
f8439805d7
test: Add loongarch64-linux-(none,musl,gnu) to the test matrix.
...
Currently skips std tests which have many issues.
2025-04-07 16:03:22 +02:00
Alex Rønne Petersen
7c5412c7a4
build: Rename -Dtest-slow-targets to -Dtest-extra-targets.
...
This can be used more broadly for targets that aren't quite ready to be tested
by default yet.
2025-04-04 06:08:10 +02:00
Alex Rønne Petersen
b9456d64d7
test: mips32 is no longer a slow target with LLVM 20.
...
We can now run these tests as part of test-modules w/o -Dtest-slow-targets.
Closes #21096 .
2025-04-04 06:08:10 +02:00
Ali Cheraghi
ee06b2ce76
spirv: require int8/int16 capabilities
2025-03-18 07:05:50 +03:30
Pat Tullmann
8e0a4ca4b3
Enable compiler-rt tests for wasm32-wasi
...
I think the underlying issue was the same as
https://github.com/ziglang/zig/issues/13258 and that has a work-around in
LLVM 19 (see https://github.com/llvm/llvm-project/issues/58557 ).
Fixes #15325
2025-03-10 06:15:12 +01:00
Andrew Kelley
6b6c1b1b0e
Revert "Merge pull request #22898 from kristoff-it/deprecated-proposal"
...
This reverts commit dea72d15da , reversing
changes made to ab381933c8 .
The changeset does not work as advertised and does not have sufficient
test coverage.
Reopens #22822
2025-02-28 01:37:10 -08:00
Andrew Kelley
f74a856d84
reword deprecated error slightly
...
"found" -> "reached" to match "reached unreachable code"
2025-02-26 14:41:33 -05:00
Andrew Kelley
7c2649f89d
langref: fix whitespace
2025-02-26 14:41:33 -05:00
Loris Cro
25790e95f1
@deprecated: remove per-module flag in Build
...
This implementation looks at the builder of each
module in the build graph instead of storing a
boolean for each module.
2025-02-26 14:41:33 -05:00
Loris Cro
c75fdd96d2
@deprecated: add tests
2025-02-26 14:41:33 -05:00
Ali Cheraghi
181a89e728
build: add spirv to test matrix
...
Signed-off-by: Ali Cheraghi <alichraghi@proton.me>
2025-02-24 19:12:38 +01:00
Andrew Kelley
1afa6e260e
build: respect -Duse-llvm option when doing behavior tests
2025-01-15 15:11:36 -08:00
Alex Rønne Petersen
23281704dc
test: Enable long calls for all thumb/thumbeb module tests.
...
The relocation range issues will happen eventually as we add more code to the
standard library and test suites, so we may as well just deal with this now.
@MasonRemaley ran into this in #20271 , for example.
2025-01-07 08:44:45 +01:00
mlugg
b8472db215
tests.zig: migrate from deprecated std.Build APIs
2024-12-18 01:48:57 +05:00
Eric Joldasov
3d393dba6f
std.Build: remove deprecated APIs
...
These APIs were all deprecated prior to the release of 0.13.0, so can be
safety removed in the current release cycle.
`std.Build`:
* `host` -> `graph.host`
`std.Build.Step.Compile`:
* `setLinkerScriptPath` -> `setLinkerScript`
* `defineCMacro` -> `root_module.addCMacro`
* `linkFrameworkNeeded`-> `root_module.linkFramework`
* `linkFrameworkWeak`-> `root_module.linkFramework`
`std.Build.Step.ObjCopy`:
* `getOutputSource` -> `getOutput`
`std.Build.Step.Options`:
* `addOptionArtifact` -> `addOptionPath`
* `getSource` -> `getOutput`
`std.Build.Step.Run`:
* `extra_file_dependencies` -> `addFileInput`
* `addDirectorySourceArg` -> `addDirectoryArg`
* `addPrefixedDirectorySourceArg` -> `addPrefixedDirectoryArg`
2024-12-18 01:47:50 +05:00
Alex Rønne Petersen
d5c2f527b4
Merge pull request #22219 from alexrp/arm-big-endian
...
Add `armeb-linux-*`, `thumbeb-linux-*`, and `aarch64_be-linux-*` to CI
2024-12-15 01:41:46 +01:00
Carl Åstholm
b352595aa2
Add compiler internals tests
...
There are several test decls inside `/src` that are not currently being
tested and have bitrotted as a result. This commit revives those tests
and adds the `test-compiler-internals` set of tests which tests
everything reachable from `/src/main.zig`.
2024-12-13 08:49:02 -05:00
Alex Rønne Petersen
9aa4cf4f88
test: Add aarch64_be-linux-* to the module test matrix.
2024-12-13 03:13:14 +01:00
Alex Rønne Petersen
fdc0ed92ce
test: Add thumbeb-linux-* to the module test matrix.
2024-12-13 03:13:14 +01:00
Alex Rønne Petersen
df27298aef
test: Add armeb-linux-* to the module test matrix.
2024-12-13 03:13:14 +01:00
Alex Rønne Petersen
1731510933
test: Add x86_64-linux-(gnux32,muslx32) to module tests.
2024-12-01 02:23:55 +01:00
Alex Rønne Petersen
2a29381117
test: Enable -Dtest-target-filter=... to work for test-cases and test-translate-c.
2024-11-24 22:11:17 +01:00
Alex Rønne Petersen
9c7776a938
test: Enable -Dtest-target-filter=... to work for test-c-abi.
2024-11-24 22:11:17 +01:00
Alex Rønne Petersen
f25ea264b7
Revert "test: Add aarch64_be-linux-(none,gnu,musl) to module tests."
...
This reverts commit 4049be90de .
See: https://github.com/ziglang/zig/issues/21911
2024-11-05 07:15:53 +01:00
Alex Rønne Petersen
4049be90de
test: Add aarch64_be-linux-(none,gnu,musl) to module tests.
2024-11-04 08:29:42 +01:00
Alex Rønne Petersen
2f003f39b2
Merge pull request #21599 from alexrp/thumb-porting
2024-11-03 14:25:30 +01:00
Alex Rønne Petersen
621487d5ab
test: Add thumb-linux-(musl)eabi(hf) target triples for module tests.
2024-11-03 09:29:33 +01:00
Alex Rønne Petersen
d89cf3e7d8
test: Add the ability to skip specific modules for a target.
2024-11-03 09:29:33 +01:00
Alex Rønne Petersen
11915ae48e
std.zig.target: Change mips64(el)-linux-musl triples to -muslabi64.
...
With this, MIPS triples for musl are in line with glibc triples.
2024-11-02 10:42:53 +01:00
Alex Rønne Petersen
6302a90cbf
test: Add riscv(32,64)-linux-(none,musl) with soft float to module tests.
2024-10-15 20:25:26 +02:00
mlugg
f60c045cef
tests: add test-incremental step
...
This is contained in the `test` step, so is tested by CI.
This commit also includes some enhancements to the `incr-check` tool to
make this work correctly.
2024-10-05 20:52:25 +01:00
Alex Rønne Petersen
736694b1e6
test: Add s390x-linux-(none,musl,gnu) triples to module tests.
2024-10-04 00:26:55 +02:00
Alex Rønne Petersen
496e90a487
test: Add riscv32-linux-(none,musl,gnu) triples for module tests.
2024-09-20 13:03:33 +02:00
Alex Rønne Petersen
8c0902b7ae
Revert "tests: skip native CPU std tests on Windows"
...
This reverts commit 234693bcbb .
2024-09-19 18:20:21 -07:00
Alex Rønne Petersen
2a24c17be2
test: Re-enable LLVM riscv64 module tests.
...
Closes #18872 .
2024-09-19 18:20:21 -07:00
Alex Rønne Petersen
75983c692f
test: Switch all arm-linux-* triples for module tests from v8a to v7a.
...
Broadly speaking, versions 6, 7, and 8 are the ones that are in common use. Of
these, v7 is what you'll typically see for 32-bit Arm today. So let's actually
make sure that that's what we're testing.
2024-09-10 08:53:30 +02:00
Alex Rønne Petersen
a872b61021
test: Add arm, mips, and powerpc soft float targets to module tests.
...
Prefer `eabi` and `eabihf` over the ambiguous `none` when not using libc.
2024-09-10 08:53:30 +02:00
Alex Rønne Petersen
17f54e8274
std.zig.target: Split powerpc-linux-musl triple into powerpc-linux-musleabi(hf).
2024-09-06 20:11:47 +02:00
Alex Rønne Petersen
c1a70acc91
std.zig.target: Split mips(el)-linux-musl triples into mips(el)-linux-musleabi(hf).
...
Closes #21184 .
2024-09-06 20:11:47 +02:00
Alex Rønne Petersen
ee3efe8007
test: Add powerpc64-linux-(none,musl) triples to module tests.
2024-09-05 01:15:33 +02:00
Alex Rønne Petersen
3e8ac8e23f
test: Add mips64(el)-linux-(none,musl,gnuabi64) targets.
...
These take 3-4 minutes to run on my machine, i.e. they're not affected by the
LLVM compilation speed bug that affects mips32.
2024-08-18 07:27:23 +02:00