Commit Graph

3410 Commits

Author SHA1 Message Date
bjorn3
611c5184ce
Merge pull request #1341 from bjorn3/build_sysroot_cleanup
Refactor sysroot building
2023-01-15 20:36:09 +01:00
bjorn3
0f4df8fb0e Eliminate a couple of extra calls
This is an additional 17% improvement on ./y.rs compile --sysroot none

Benchmark 1: ./y_before.bin build --sysroot none
  Time (mean ± σ):      1.533 s ±  0.022 s    [User: 1.411 s, System: 0.471 s]
  Range (min … max):    1.517 s …  1.589 s    10 runs

Benchmark 2: ./y_after.bin build --sysroot none
  Time (mean ± σ):      1.311 s ±  0.020 s    [User: 1.232 s, System: 0.428 s]
  Range (min … max):    1.298 s …  1.366 s    10 runs

Summary
  './y_after.bin build --sysroot none' ran
    1.17 ± 0.02 times faster than './y_before.bin build --sysroot none'
2023-01-15 15:20:36 +00:00
bjorn3
abcff71bec Significantly speed up assembling of sysroots
By avoiding some redundant rustc calls and stripping debuginfo for
wrappers. ./y.rs build --sysroot none now runs 44% faster.

Benchmark 1: ./y_before.bin build --sysroot none
  Time (mean ± σ):      2.200 s ±  0.038 s    [User: 2.140 s, System: 0.653 s]
  Range (min … max):    2.171 s …  2.303 s    10 runs

Benchmark 2: ./y_after.bin build --sysroot none
  Time (mean ± σ):      1.528 s ±  0.020 s    [User: 1.388 s, System: 0.490 s]
  Range (min … max):    1.508 s …  1.580 s    10 runs

Summary
  './y_after.bin build --sysroot none' ran
    1.44 ± 0.03 times faster than './y_before.bin build --sysroot none'
2023-01-15 14:14:13 +00:00
bjorn3
13197322ec Skip creating sysroot target dir if it will be empty 2023-01-14 18:45:47 +00:00
bjorn3
280dffd82c Build rtstartup for none sysroot too
Even mini_core needs it
2023-01-14 18:41:22 +00:00
bjorn3
fd83b27945 Port llvm sysroot building to SysrootTarget too and dedup some code 2023-01-14 18:25:43 +00:00
bjorn3
0ac4456351 Move rtstartup build to build_clif_sysroot_for_triple
Also pass build/rtstartup as sysroot when building the standard library
2023-01-14 17:51:54 +00:00
bjorn3
6f1e1775d3 Introduce SysrootTarget 2023-01-14 17:40:16 +00:00
bjorn3
c950f2265e Build rtstartup for MinGW from scratch
Rather than copying it from an existing sysroot
2023-01-14 17:02:21 +00:00
bjorn3
b31b74e8fb
Merge pull request #1340 from bjorn3/non_rustup_build
Push up a lot of rustc and cargo references
2023-01-14 16:45:25 +01:00
bjorn3
629eab79c1 Avoid hard-coded rustc when building wrappers 2023-01-14 14:18:11 +00:00
bjorn3
22c5249f68 Don't hard-code rustc path in get_rustc_version and get_default_sysroot 2023-01-14 14:18:11 +00:00
bjorn3
4dbafefe74 Return Compiler from build_sysroot 2023-01-14 14:18:11 +00:00
bjorn3
bbb7a3b9b9 Rename Compiler variables for clarity 2023-01-14 14:18:11 +00:00
bjorn3
fd1e824d88 Minor changes to the TestRunner::new signature 2023-01-14 14:18:11 +00:00
bjorn3
5e452ba616 Set RUSTC and RUSTDOC env vars to invalid values to catch forgetting to set them 2023-01-14 14:18:11 +00:00
bjorn3
a09712e0d2 Use fs::remove_dir_all instead of cargo clean 2023-01-14 14:18:11 +00:00
bjorn3
9bc113fb3c Minor consistency improvement 2023-01-14 14:18:11 +00:00
bjorn3
395eaa1538 Remove Test nightly Cranelift workflow
Cranelift makes api breaking changes often enough that this workflow
fails half of the time. As such in practice I completely ignore it's
result and push an update to a branch after Cranelift branches to test
everything on CI. In this update I immediately fix the fallout of api
breaking changes.
2023-01-14 14:17:43 +00:00
bjorn3
8af4eacc8c Update FreeBSD to 13.1
This fixes the certificate error
2023-01-13 18:36:22 +00:00
bjorn3
20a829acb4
Merge pull request #1339 from bjorn3/better_compiler_management
Many build system improvements
2023-01-13 19:01:01 +01:00
bjorn3
bdcbf47df3 Improve readme and build system help message 2023-01-13 16:34:43 +00:00
bjorn3
3a27253289 Enable VSCode formatOnSave 2023-01-13 16:13:26 +00:00
bjorn3
a3468770e3 Rustfmt 2023-01-13 16:13:26 +00:00
bjorn3
288c067863 Set panic=abort for the build system
This saves about 60ms of build time
2023-01-13 16:13:26 +00:00
bjorn3
be8f656fac Pass --frozen to cargo to ensure ./y.rs prepare fetches all deps 2023-01-13 16:13:26 +00:00
bjorn3
957d78c479 Fetch all cargo dependencies in ./y.rs prepare 2023-01-13 15:40:22 +00:00
bjorn3
1a89507d7c Don't use the diff command in regex test
The output is small enough that getting a pretty diff isn't important.
In addition this reduces the amount of commands the build system depends
on.
2023-01-13 15:29:28 +00:00
bjorn3
890c61216a Set core.autocrlf=false in the build system instead of CI config 2023-01-13 15:29:26 +00:00
bjorn3
9a15db6dd0 Add git_command helper 2023-01-13 15:28:47 +00:00
bjorn3
40745694a0 Add fixme 2023-01-13 14:33:14 +00:00
bjorn3
63fae6a164 Introduce helpers for common test case commands 2023-01-13 14:19:54 +00:00
bjorn3
397fafa160 Don't require git user to be configured for testing rust 2023-01-13 13:51:51 +00:00
bjorn3
af99a369c4 Use sparse cargo registry 2023-01-13 13:48:52 +00:00
bjorn3
bb7ab8242a Remove a lot of redundant rustc arguments for tests 2023-01-13 12:52:29 +00:00
bjorn3
f311ef5a2e Share cross-compilation code between building and testing 2023-01-13 12:32:20 +00:00
bjorn3
70a1cb9e62 Pass around Compiler instead of target triples 2023-01-13 12:16:11 +00:00
bjorn3
cf22470de7 Disable CG_CLIF_DISPLAY_CG_TIME by default
It is a lot of noise without much benefit
2023-01-13 11:42:02 +00:00
bjorn3
dbfbb29717 Move LLVM simple-raytracer build to ./y.rs bench
cc #1290
2023-01-13 11:41:40 +00:00
bjorn3
868638393e Rustfmt 2023-01-11 15:23:15 +00:00
bjorn3
caacef29e6 Retry downloads on network failure
Fixes #1280
2023-01-11 14:14:14 +00:00
bjorn3
fb788e375a Don't install hyperfine in y.rs prepare
Missed in #1338
Part of #1290
2023-01-11 13:59:14 +00:00
Albert Larsan
4e47bd0464 Change src/test to tests in source files, fix tidy and tests 2023-01-11 09:32:13 +00:00
bjorn3
20429c00b2
Merge pull request #1338 from bjorn3/build_system_rework5
Avoid clobbering build_system/ and ~/.cargo/bin
2023-01-05 19:57:10 +01:00
bjorn3
e14e5c2af1 Don't use hyperfine during testing
A new command ./y.rs bench is introduced for benchmarking. This change
allows skipping hyperfine installation in ./y.rs prepare and thus avoids
writing to ~/.cargo/bin.
2023-01-05 18:14:59 +00:00
bjorn3
da37e16c23 Remove debuginfo files for compiled y.rs in clean_all.sh 2023-01-05 18:14:55 +00:00
bjorn3
4c97569a54 Move patched sysroot from build_sysroot/ to download/ 2023-01-05 18:14:40 +00:00
bjorn3
571405deea Enable some fixed rustc tests
cc #381
2023-01-04 15:30:20 +00:00
bjorn3
97e2213c3c Enable inline stack probes on AArch64
Fixes #661
2022-12-22 14:03:02 +00:00
bjorn3
debd45cc7b Update to cranelift 0.91
Closes #1307
2022-12-22 14:02:47 +00:00