Beautiful diagnostic reporting for text-based programming languages.
A cargo subcommand for cleaning up unused build files generated by Cargo
CyberSecurityUSC/PCDC-and-SECCDC 7
Resources for PCDC and SECCDC competitions
justinba1010/USCCodeathon-F19-Upper 4
ACM Fall 2019 240/350 Codeathon Problems
human-readable binary encoding
JamesPC44/USC_LowerDivision_Fall2018 2
Repository for Fall 2018 problems and solutions for 145/146 problems
issue commentrust-lang/rust
Track which tests are run in CI
@pietroalbini mentions that since https://github.com/rust-lang/rust/pull/111936 we track individual test names in build-metrics, which should make this a lot easier :)
comment created time in 11 hours
issue commentrust-lang/rust
ICE: "no entry found for key" while building stage0 tools
someone on discord ran into a similar bug today:
error: internal compiler error: compiler/rustc_metadata/src/rmeta/decoder/cstore_impl.rs:595:32: uninterned StableCrateId: StableCrateId(11571398144161577719)
7: <rustc_metadata::creader::CStore as rustc_session::cstore::CrateStore>::stable_crate_id_to_crate_num
8: <rustc_span::span_encoding::Span as rustc_serialize::serialize::Decodable<rustc_middle::query::on_disk_cache::CacheDecoder>>::decode
9: <rustc_middle::ty::generics::GenericPredicates as rustc_serialize::serialize::Decodable<rustc_middle::query::on_disk_cache::CacheDecoder>>::decode
10: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, true>
11: <rustc_trait_selection::traits::wf::WfPredicates>::compute
12: rustc_trait_selection::traits::wf::obligations
13: rustc_trait_selection::traits::query::type_op::implied_outlives_bounds::compute_implied_outlives_bounds_inner
14: <rustc_infer::infer::InferCtxtBuilder as rustc_trait_selection::infer::InferCtxtBuilderExt>::enter_canonical_trait_query::<rustc_middle::ty::ParamEnvAnd<rustc_middle::ty::Ty>, alloc::vec::Vec<rustc_middle::traits::query::OutlivesBound>, rustc_traits::implied_outlives_bounds::implied_outlives_bounds::{closure#0}>
15: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::outlives_bounds::InferCtxtExt>::implied_outlives_bounds
16: <rustc_infer::infer::outlives::env::OutlivesEnvironment>::with_bounds::<core::iter::adapters::flatten::FlatMap<indexmap::set::IntoIter<rustc_middle::ty::Ty>, alloc::vec::Vec<rustc_middle::traits::query::OutlivesBound>, <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::outlives_bounds::InferCtxtExt>::implied_bounds_tys::{closure#0}>>
17: rustc_trait_selection::traits::misc::all_fields_implement_trait
18: rustc_hir_analysis::coherence::coherent_trait
19: <rustc_session::session::Session>::track_errors::<rustc_hir_analysis::check_crate::{closure#3}, ()>
20: rustc_hir_analysis::check_crate
note: rustc 1.71.0-beta.1 (eff24c06d 2023-05-29) running on x86_64-unknown-linux-gnu
note: compiler flags: --crate-type lib -C opt-level=3 -C embed-bitcode=no -C debuginfo=0 -Z unstable-options -C incremental=[REDACTED] -C symbol-mangling-version=v0 -Z unstable-options -Z macro-backtrace -C link-args=-Wl,-z,origin -C link-args=-Wl,-rpath,$ORIGIN/../lib -C split-debuginfo=off -C llvm-args=-import-instr-limit=10 -Z unstable-options -Z binary-dep-depinfo -Z tls-model=initial-exec
note: some of the compiler flags provided by cargo are hidden
query stack during panic:
thread panicked while processing panic. aborting.
rustc exited with signal: 6 (SIGABRT) (core dumped)
error: could not compile `rustdoc` (lib)
comment created time in 12 hours
Pull request review commentrust-lang/rust
Test the cargo args generated by bootstrap.py
def unpack_component(download_info): verbose=download_info.verbose, ) -class RustBuild(object):- """Provide all the methods required to build Rust"""- def __init__(self):- self.checksums_sha256 = {}- self.stage0_compiler = None- self.download_url = ''+class FakeArgs:+ """Used for unit tests to avoid updating all call sites"""+ def __init__(self) -> None:
whoops, my editor generated this. will fix it
comment created time in 13 hours
pull request commentrust-lang/rust
Greatly decrease the size of `rustc_driver.so` when debuginfo is enabled
:/
--- stderr -------------------------------
thread 'main' panicked at 'client.read_exact(&mut header) failed with Connection reset by peer (os error 104)', src/tools/remote-test-client/src/main.rs:310:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
------------------------------------------
failures:
[ui] tests/ui/associated-consts/associated-const-use-default.rs
@bors retry
comment created time in 21 hours
push eventjyn514/rust
commit sha 8334dd17b37c5259c3eb31385647afc1291287d9
don't try to cross-compile sanitizer tests this was a pre-existing latent bug, we just didn't have any CI builders exercising it. fixes the following errors: ``` ---- [ui] tests/ui/sanitize/new-llvm-pass-manager-thin-lto.rs#opt1 stdout ---- error in revision `opt1`: test compilation failed although it shouldn't! status: exit status: 1 command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/sanitize/new-llvm-pass-manager-thin-lto.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "--sysroot" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2" "--target=i686-unknown-linux-gnu" "--cfg" "opt1" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--remap-path-prefix=/checkout/tests/ui=fake-test-src-base" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/sanitize/new-llvm-pass-manager-thin-lto.opt1/a" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/i686-unknown-linux-gnu/native/rust-test-helpers" "-Clinker=x86_64-linux-gnu-gcc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/sanitize/new-llvm-pass-manager-thin-lto.opt1/auxiliary" "-Zsanitizer=address" "-Clto=thin" "-Copt-level=1" --- stderr ------------------------------- error: linking with `x86_64-linux-gnu-gcc` failed: exit status: 1 = note: x86_64-linux-gnu-gcc: error: /checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/i686-unknown-linux-gnu/lib/librustc-nightly_rt.asan.a: No such file or directory failures: [ui] tests/ui/sanitize/badfree.rs [ui] tests/ui/sanitize/address.rs [ui] tests/ui/sanitize/use-after-scope.rs [ui] tests/ui/sanitize/new-llvm-pass-manager-thin-lto.rs#opt0 [ui] tests/ui/sanitize/new-llvm-pass-manager-thin-lto.rs#opt1 ```
push time in a day
push eventjyn514/rust
commit sha 63cb54d6c5a67b4bcfb2408b8fff09cbb101a94f
don't try to cross-compile sanitizer tests this was a pre-existing latent bug, we just didn't have any CI builders exercising it. fixes the following errors: ``` ---- [ui] tests/ui/sanitize/new-llvm-pass-manager-thin-lto.rs#opt1 stdout ---- error in revision `opt1`: test compilation failed although it shouldn't! status: exit status: 1 command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/sanitize/new-llvm-pass-manager-thin-lto.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "--sysroot" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2" "--target=i686-unknown-linux-gnu" "--cfg" "opt1" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--remap-path-prefix=/checkout/tests/ui=fake-test-src-base" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/sanitize/new-llvm-pass-manager-thin-lto.opt1/a" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/i686-unknown-linux-gnu/native/rust-test-helpers" "-Clinker=x86_64-linux-gnu-gcc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/sanitize/new-llvm-pass-manager-thin-lto.opt1/auxiliary" "-Zsanitizer=address" "-Clto=thin" "-Copt-level=1" --- stderr ------------------------------- error: linking with `x86_64-linux-gnu-gcc` failed: exit status: 1 = note: x86_64-linux-gnu-gcc: error: /checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/i686-unknown-linux-gnu/lib/librustc-nightly_rt.asan.a: No such file or directory failures: [ui] tests/ui/sanitize/badfree.rs [ui] tests/ui/sanitize/address.rs [ui] tests/ui/sanitize/use-after-scope.rs [ui] tests/ui/sanitize/new-llvm-pass-manager-thin-lto.rs#opt0 [ui] tests/ui/sanitize/new-llvm-pass-manager-thin-lto.rs#opt1 ```
push time in a day
push eventjyn514/rust
commit sha 0b8f98a79a97a7e9dab4c7a666e90e304a9e94da
don't try to cross-compile sanitizer tests this was a pre-existing latent bug, we just didn't have any CI builders exercising it. fixes the following errors: ``` ---- [ui] tests/ui/sanitize/new-llvm-pass-manager-thin-lto.rs#opt1 stdout ---- error in revision `opt1`: test compilation failed although it shouldn't! status: exit status: 1 command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/sanitize/new-llvm-pass-manager-thin-lto.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "--sysroot" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2" "--target=i686-unknown-linux-gnu" "--cfg" "opt1" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--remap-path-prefix=/checkout/tests/ui=fake-test-src-base" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/sanitize/new-llvm-pass-manager-thin-lto.opt1/a" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/i686-unknown-linux-gnu/native/rust-test-helpers" "-Clinker=x86_64-linux-gnu-gcc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/sanitize/new-llvm-pass-manager-thin-lto.opt1/auxiliary" "-Zsanitizer=address" "-Clto=thin" "-Copt-level=1" --- stderr ------------------------------- error: linking with `x86_64-linux-gnu-gcc` failed: exit status: 1 = note: x86_64-linux-gnu-gcc: error: /checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/i686-unknown-linux-gnu/lib/librustc-nightly_rt.asan.a: No such file or directory failures: [ui] tests/ui/sanitize/badfree.rs [ui] tests/ui/sanitize/address.rs [ui] tests/ui/sanitize/use-after-scope.rs [ui] tests/ui/sanitize/new-llvm-pass-manager-thin-lto.rs#opt0 [ui] tests/ui/sanitize/new-llvm-pass-manager-thin-lto.rs#opt1 ```
push time in a day
push eventjyn514/rust
commit sha c73c5dd35fa8171ba1634bf9111073706ccf993a
cleanup now that Kind is no longer used for excludes
push time in a day
push eventjyn514/rust
commit sha 76ab44f0424332de8a3153ba7677a1bc27b04ce2
Test `x86_64-gnu` in PR CI, not x86_64-gnu-llvm-14 This is a pre-requisite for https://github.com/rust-lang/rust/pull/112143, which wants to start using download-rustc in PRs. download-rustc doesn't allow providing an external LLVM.
commit sha d3a7cab8996c59660d1a7cedb58bc4da981a596c
Use `download-rustc = "if-unchanged"` in PR CI This has two main benefits: 1. It tests that download-rustc doesn't regress. This doesn't reduce our test coverage, since we still never use `download-rustc` in a full bors merge, but it should make it a lot less likely that this breaks by accident. 2. It greatly speeds up CI when compiler/ and library/ haven't been modified. Once the changes in https://github.com/rust-lang/compiler-team/issues/619 land, this will also be faster for changes to library/, and only changes to compiler/ will have to rebuild.
commit sha 6bc3d784e7d4ab88ed4b2093a8812790baa7c5aa
don't enable llvm assertions when download-rustc is enabled
commit sha aaf213282d9d30a6b4628741cdbc2d7b78cd6c32
Make `--dry-run` more useful when download-rustc is enabled Previously, it would always treat download-rustc as set to false, which made bootstrap issues with download-rustc hard to debug.
commit sha 5dee431d87783cc9fff2e80613959594c20e3336
check ci-rustc options
commit sha 91f2664b21f1f6fc74123e8e6cb007c574d7be0e
fix `x test --stage 0 core`
push time in a day
push eventjyn514/rust
commit sha 76ab44f0424332de8a3153ba7677a1bc27b04ce2
Test `x86_64-gnu` in PR CI, not x86_64-gnu-llvm-14 This is a pre-requisite for https://github.com/rust-lang/rust/pull/112143, which wants to start using download-rustc in PRs. download-rustc doesn't allow providing an external LLVM.
push time in a day
PR opened rust-lang/rust
Before:
Building stage0 tool jsondocck (x86_64-unknown-linux-gnu)
Building stage0 tool jsondocck (x86_64-unknown-linux-gnu)
Downloading crates ...
After:
Building stage0 tool jsondocck (x86_64-unknown-linux-gnu)
Downloading crates ...
r? @oli-obk
pr created time in a day
push eventjyn514/rust
commit sha 3b136d42f173f7412f3004239dd7f8a01def3c2b
Test `x86_64-gnu` in PR CI, not x86_64-gnu-llvm-14 This is a pre-requisite for https://github.com/rust-lang/rust/pull/112143, which wants to start using download-rustc in PRs. download-rustc doesn't allow providing an external LLVM.
push time in a day
PR opened rust-lang/rust
Use the top-level Kind to determine whether Steps are excluded.
Previously, this would use the Kind
passed to --exclude
(and not do any filtering at all if no kind was passed).
That meant that x test linkchecker --exclude std
would fail - you had to explicitly say --exclude test::std
.
Change bootstrap to use the top-level Kind instead, which does the right thing automatically.
Note that this breaks things like x test --exclude doc::std
, but I'm not sure why you'd ever want to do that.
There's a lot of churn here, but the 1-line change in the first commit is the actual behavior change, the rest is just cleanup.
cc @pietroalbini
pr created time in a day
Pull request review commentrust-lang/rust-forge
Mention that people on some teams automatically have access
We might ask you to create an issue in the [rust-lang/simpleinfra] repository. [rust-lang/rust]: https://github.com/rust-lang/rust [rust-lang/simpleinfra]: https://github.com/rust-lang/simpleinfra [visual studio code]: https://code.visualstudio.com/+[certain teams]: https://github.com/search?q=repo%3Arust-lang%2Fteam+path%3Ateams%2F*.toml+dev-desktop&type=code&ref=advsearch
nice!
comment created time in a day
push eventjyn514/rust
commit sha 7fb34c99e32c01082110dc7281049e26622f924d
add `#[doc(alias="flatmap")]` to `Option::and_then` I keep forgetting that rust calls this `and_then` and trying to search for `flatmap`. `and_then`'s docs even mention "Some languages call this operation flatmap", but it doesn't show up as a result in the search at `https://doc.rust-lang.org/std/?search=flatmap`
commit sha 91471c8da1594935389e360d1548a3cf511768f2
Rpath is not supported on AIX
commit sha 3e71f4dd2306cc8b5f04f55f8e587bc020303573
Extra context for unreachable_pub lint (fixes #110922) While experienced Rustaceans no doubt know this sort of thing already, as more of a newbie I had trouble understanding why I was triggering the lint. Hopefully this expanded explanation saves someone else some head-scratching.
commit sha c5604cd0b58f1f2c527ae76dac75a94c7dd23824
Don't use can_eq in derive suggestion for missing method
commit sha 8c191add8788cb13ac988021617f673709babb16
the implementation!!
commit sha c5a914b181d4f4c06354f7afd4b66f346a92f8a8
check msrv
commit sha f6a0437e74494b3f887286540333abfc691055b4
Update clippy_lints/src/casts/ptr_cast_constness.rs Co-authored-by: llogiq <bogusandre@gmail.com>
commit sha 4ff1cd365df96c4d0aef5b899ac248ff11799c36
add description and rename msrv tests
commit sha 6d2ba95d0099f1a656da44c7f868be0074e5b5e1
suggest `Option::as_deref(_mut)`
commit sha 97467e4aa39d20273014195bb7362d6bace047ea
change `clippy::version` to 1.71.0
commit sha 83a4b0987f54afbfaad8fed61882231a6632bc71
Fix formatting of if let chain
commit sha ef38662d044714f55c87a12571bd30da51c199aa
Some improvements to the manual_let_else lint suggestions * Replace variables inside | patterns in the if let: let v = if let V::A(v) | V::B(v) = v { v } else ... * Support nested patterns: let v = if let Ok(Ok(Ok(v))) = v { v } else ... * Support tuple structs with more than one arg: let v = V::W(v, _) = v { v } else ... * Correctly handle .. in tuple struct patterns: let v = V::X(v, ..) = v { v } else ...
commit sha 440912b74f5ac063d8993741120a519bed3882f2
Option::map_or_else: Show an example of integrating with Result Moving this from https://github.com/rust-lang/libs-team/issues/59 where an API addition was rejected. But I think it's valuable to add this example to the documentation at least.
commit sha b76b0aeb63948fecca6d6f603f47c6648059048a
Merge commit '435a8ad86c7a33bd7ffb91c59039943408d3b6aa' into clippyup
commit sha cfe8e8561c2cc31ff51a298bc1dfd0636eaffa13
Make `x test --dry-run` less verbose Previously, this would print a message for each doctest, which was quite verbose: ``` doc tests for: /home/jyn/src/rust/src/doc/rustc/src/exploit-mitigations.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/instrument-coverage.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/json.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/linker-plugin-lto.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/lints/groups.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/lints/index.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/lints/levels.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/aarch64-apple-ios-sim.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/aarch64-nintendo-switch-freestanding.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/apple-watchos.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/armeb-unknown-linux-gnueabi.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/armv4t-none-eabi.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/armv5te-none-eabi.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/armv6k-nintendo-3ds.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/armv7-sony-vita-newlibeabihf.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/armv7-unknown-linux-uclibceabi.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/armv7-unknown-linux-uclibceabihf.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/esp-idf.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/fuchsia.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/kmc-solid.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/loongarch-linux.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/m68k-unknown-linux-gnu.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/mipsel-sony-psx.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/nto-qnx.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/openbsd.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/openharmony.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/riscv32imac-unknown-xous-elf.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/unknown-uefi.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/wasm64-unknown-unknown.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/x86_64-fortanix-unknown-sgx.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/x86_64-unknown-none.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/profile-guided-optimization.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/target-tier-policy.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/targets/custom.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/targets/index.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/tests/index.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/what-is-rustc.md ```
commit sha 9b97ae98f83c425ce62fba4a8d6ffe353d530d9d
Rename `drop_copy` lint to `dropping_copy_types`
commit sha 234f2b67cb7435734c697517eac2afa154b35b0e
Rename `forget_copy` lint to `forgetting_copy_types`
commit sha fdbfe0e249b5d1eb4b4fb508e88bedd505ce0817
Rename `drop_ref` lint to `dropping_references`
commit sha 915ff71b7c1448e822889d15ecd6b25c26ac2ed4
Rename `forget_ref` lint to `forgetting_references`
commit sha 191a901a8d29d292aa20b1161e703f76a4690595
consider array initializer for `large_stack_arrays`
push time in a day
PR opened rust-lang/rust
This is a pre-requisite for https://github.com/rust-lang/rust/pull/112143, which wants to start using download-rustc in PRs. download-rustc doesn't allow providing an external LLVM.
r? @ghost
pr created time in a day
pull request commentrust-lang/rust
Greatly decrease the size of `rustc_driver.so` when debuginfo is enabled
@bors r=Mark-Simulacrum rollup=iffy
comment created time in a day
push eventjyn514/rust
commit sha 5eeeed1aa1d84145250d1b0f9561bee4d4e7cda7
Greatly decrease the size of `rustc_driver.so` when debuginfo is enabled - Only add -gz if it's supported - Don't include extra unnecessary debuginfo when only debuginfo-level=1 is set - Compress debuginfo sections to reduce the size of debuginfo on disk. before: 650 MB line tables only: 335 MB compressed only: 216 MB compressed and line tables: 186 MB no debuginfo at all: 130 MB I want to investigate why `-C line-tables-only` is still ~tripling the size of the binary, but this seems like a good improvement in the meantime. I've tested that both valgrind and perf can read the debuginfo: ``` (bash@dev-desktop-us-1.infra.rust-lang.org) ~/rust [08:31:08] ; valgrind $(rustup which rustc --toolchain rust_stage2) --version ==441671== Memcheck, a memory error detector ==441671== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. ==441671== Using Valgrind-3.18.1 and LibVEX; rerun with -h for copyright info ==441671== Command: /home/gh-jyn514/.local/lib/rustup/toolchains/rust_stage2/bin/rustc --version ==441671== rustc 1.70.0-dev ==441671== ==441671== HEAP SUMMARY: ==441671== in use at exit: 231,289 bytes in 1,874 blocks ==441671== total heap usage: 2,538 allocs, 664 frees, 486,368 bytes allocated ==441671== ==441671== LEAK SUMMARY: ==441671== definitely lost: 70,656 bytes in 1 blocks ==441671== indirectly lost: 0 bytes in 0 blocks ==441671== possibly lost: 0 bytes in 0 blocks ==441671== still reachable: 160,633 bytes in 1,873 blocks ==441671== suppressed: 0 bytes in 0 blocks ==441671== Rerun with --leak-check=full to see details of leaked memory ==441671== ==441671== For lists of detected and suppressed errors, rerun with: -s ==441671== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) ; perf record $(rustup which rustc --toolchain rust_stage2) --version rustc 1.70.0-dev [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.005 MB perf.data (70 samples) ] ; perf report Samples: 70 of event 'cycles:u', Event count (approx.): 21356967 Overhead Command Shared Object Symbol 51.55% rustc ld-linux-aarch64.so.1 [.] _dl_lookup_symbol_x 18.70% rustc ld-linux-aarch64.so.1 [.] _dl_relocate_object 11.95% rustc ld-linux-aarch64.so.1 [.] do_lookup_x 5.55% rustc [unknown] [k] 0xffffa9ad41cfcfdc 2.68% rustc libc.so.6 [.] __GI___strlen_asimd 2.42% rustc librustc_driver-1a385c366c35e81a.so [.] llvm::StringMapImpl::LookupBucketFor 2.16% rustc librustc_driver-1a385c366c35e81a.so [.] _GLOBAL__sub_I_X86InstructionSelector.cpp 1.96% rustc libstd-990fe978dab76ef3.so [.] <alloc::vec::Vec<T,A> as core::clone::Clone>::clone 1.60% rustc librustc_driver-1a385c366c35e81a.so [.] llvm::cl::opt<bool, false, llvm::cl::parser<bool> >::~opt 1.22% rustc ld-linux-aarch64.so.1 [.] strcmp 0.13% rustc ld-linux-aarch64.so.1 [.] stat64 0.05% rustc ld-linux-aarch64.so.1 [.] __minimal_calloc 0.02% rustc ld-linux-aarch64.so.1 [.] __GI___tunables_init 0.02% rustc ld-linux-aarch64.so.1 [.] _dl_start 0.00% rustc [unknown] [k] 0xffffa9ad41cfd844 0.00% rustc ld-linux-aarch64.so.1 [.] _start ```
push time in a day
issue commentrust-lang/rust
`x check` checks rust-analyzer by default
@Nilstrieb points out that Cargo also isn't checked by default, so for consistency it would be nice for RustAnazlyer not to be either: https://github.com/rust-lang/rust/blob/dc25fbe9844f4c8bddc316685d270a49d7b159b9/src/bootstrap/check.rs#L350
comment created time in a day
issue commentrust-lang/rust
`x check` checks rust-analyzer by default
mentoring instructions: switch the order of these two lines: https://github.com/rust-lang/rust/blob/dc25fbe9844f4c8bddc316685d270a49d7b159b9/src/bootstrap/builder.rs#L706-L707
comment created time in a day
pull request commentrust-lang/rust
Greatly decrease the size of `rustc_driver.so` when debuginfo is enabled
= note: C:/a/rust/rust/mingw32/bin/../lib/gcc/i686-w64-mingw32/12.2.0/../../../../i686-w64-mingw32/bin/ld.exe: unrecognized option '--compress-debug-sections=zlib'
i think this is a bug in gcc actually? its detection is wrong for mingw :(
i can either switch bootstrap from using cc::flag_if_supported
or special-case mingw. let me try that first thing to start.
comment created time in a day
push eventjyn514/rust
commit sha f51995ed736981cfe0a6b390cdeb6c7e9e3fdb82
Test color/verbose/warnings properly These weren't being passed in to bootstrap consistently before; in particular `serialize_and_parse` forgot to pass them in.
push time in a day
pull request commentrust-lang/rust
Test the cargo args generated by bootstrap.py
oh i want to do one more refactor related to verbose_count
- let me know if i should put it in a new pr or not
comment created time in a day
PR opened rust-lang/rust
I recommend reviewing this commit-by-commit using the instructions in https://rustc-dev-guide.rust-lang.org/git.html#moving-large-sections-of-code.
-
Test cargo arguments passed by bootstrap.py
This moves a lot of code around, but the logic itself is not too terribly complicated.
- Move almost all logic in
def bootstrap
to theRustBuild
class, to avoid mixing setting configuration with running commands - Update various doctests to the new (more complete) RustBuild config. In particular, don't pretend that
bin_root
supportsbuild
being unset. - Change
parse_args
not to use a global, to allow testing it - Set BUILD_DIR appropriately so bootstrap.py doesn't panic because cargo isn't found
- Move almost all logic in
-
Allow passing arguments to
bootstrap_test.py
Previous, it used the built-in test runner, which doesn't support options unless they're manually passed in the script.
-
Fix progress messages for configure in bootstrap_test.py
Before it would unconditionally print
configure-args = []
.
r? @albertlarsan68 cc https://github.com/rust-lang/rust/pull/112089 https://github.com/rust-lang/rust/pull/111979#issuecomment-1568525699
pr created time in a day