about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2025-04-19Rollup merge of #139091 - mejrs:format, r=compiler-errorsChris Denton-685/+962
Rewrite on_unimplemented format string parser. This PR rewrites the format string parser for `rustc_on_unimplemented` and `diagnostic::on_unimplemented`. I plan on moving this code (and more) into the new attribute parsing system soon and wanted to PR it separately. This PR introduces some minor differences though: - `rustc_on_unimplemented` on trait *implementations* is no longer checked/used - this is actually never used (outside of some tests) so I plan on removing it in the future. - for `rustc_on_unimplemented`, it introduces the `{This}` argument in favor of `{ThisTraitname}` (to be removed later). It'll be easier to parse. - for `rustc_on_unimplemented`, `Self` can now consistently be used as a filter, rather than just `_Self`. It used to not match correctly on for example `Self = "[{integer}]"` - Some error messages now have better spans. Fixes https://github.com/rust-lang/rust/issues/130627
2025-04-19Rollup merge of #138934 - onur-ozkan:extended-config-profiles, r=KobzolChris Denton-20/+374
support config extensions _Copied from the `rustc-dev-guide` addition:_ >When working on different tasks, you might need to switch between different bootstrap >configurations. >Sometimes you may want to keep an old configuration for future use. But saving raw config >values in >random files and manually copying and pasting them can quickly become messy, especially if >you have a >long history of different configurations. > >To simplify managing multiple configurations, you can create config extensions. > >For example, you can create a simple config file named `cross.toml`: > >```toml >[build] >build = "x86_64-unknown-linux-gnu" >host = ["i686-unknown-linux-gnu"] >target = ["i686-unknown-linux-gnu"] > > >[llvm] >download-ci-llvm = false > >[target.x86_64-unknown-linux-gnu] >llvm-config = "/path/to/llvm-19/bin/llvm-config" >``` > >Then, include this in your `bootstrap.toml`: > >```toml >include = ["cross.toml"] >``` > >You can also include extensions within extensions recursively. > >**Note:** In the `include` field, the overriding logic follows a right-to-left order. For example, in `include = ["a.toml", "b.toml"]`, extension `b.toml` overrides `a.toml`. Also, parent extensions always overrides the inner ones. try-job: x86_64-mingw-2
2025-04-19Auto merge of #139114 - m-ou-se:super-let-pin, r=davidtwcobors-192/+78
Implement `pin!()` using `super let` Tracking issue for super let: https://github.com/rust-lang/rust/issues/139076 This uses `super let` to implement `pin!()`. This means we can remove [the hack](https://github.com/rust-lang/rust/pull/138717) we had to put in to fix https://github.com/rust-lang/rust/issues/138596. It also means we can remove the original hack to make `pin!()` work, which used a questionable public-but-unstable field rather than a proper private field. While `super let` is still unstable and subject to change, it seems safe to assume that future Rust will always have a way to express `pin!()` in a compatible way, considering `pin!()` is already stable. It'd help [the experiment](https://github.com/rust-lang/rust/issues/139076) to have `pin!()` use `super let`, so we can get some more experience with it.
2025-04-19Auto merge of #140015 - GuillaumeGomez:subtree-update_cg_gcc_2025-04-18, ↵bors-1247/+960
r=antoyo Subtree update GCC backend cc `@antoyo`
2025-04-19Fix importGuillaume Gomez-1/+2
2025-04-18Fix compilation error in GCC backendGuillaume Gomez-1/+1
2025-04-18Fix `rustc_codegen_gcc/tests/run/return-tuple.rs` testGuillaume Gomez-6/+0
2025-04-18Merge commit 'db1a31c243a649e1fe20f5466ba181da5be35c14' into ↵Guillaume Gomez-1244/+962
subtree-update_cg_gcc_2025-04-18
2025-04-18Merge pull request #650 from rust-lang/sync_from_rust_2025_04_17antoyo-843/+933
Sync from rust 2025/04/17
2025-04-18Simplify handling of some SIMD intrinsicsAntoni Boucher-5/+3
2025-04-18Fix for libgccjit 12Antoni Boucher-0/+4
2025-04-18Support new target builtinsAntoni Boucher-1/+244
2025-04-18Auto merge of #139996 - matthiaskrgr:rollup-0nka2hw, r=matthiaskrgrbors-622/+1819
Rollup of 7 pull requests Successful merges: - #138528 (deref patterns: implement implicit deref patterns) - #139393 (rustdoc-json: Output target feature information) - #139553 (sync::mpsc: prevent double free on `Drop`) - #139615 (Remove `name_or_empty`) - #139853 (Disable combining LLD with external llvm-config) - #139913 (rustdoc/clean: Fix lowering of fn params (fixes correctness & HIR vs. middle parity regressions)) - #139942 (Ignore aix for tests/ui/erros/pic-linker.rs) r? `@ghost` `@rustbot` modify labels: rollup
2025-04-18add coverage on config include logiconur-ozkan-2/+209
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-04-18Auto merge of #139997 - matthiaskrgr:rollup-a1fe5zg, r=matthiaskrgrbors-97/+86
Rollup of 6 pull requests Successful merges: - #137881 (Add `copy_within` to `IndexSlice`) - #138599 (avoid overflow when generating debuginfo for expanding recursive types) - #139934 (Update `compiler-builtins` to 0.1.155) - #139976 (run-make: drop `os_pipe` workaround now that `anonymous_pipe` is stable on beta) - #139989 (tests: adjust 101082 test for LLVM 21 fix) - #139991 (remove stray file) r? `@ghost` `@rustbot` modify labels: rollup
2025-04-18Rollup merge of #139991 - tshepang:stray, r=KobzolMatthias Krüger-0/+0
remove stray file
2025-04-18Rollup merge of #139989 - durin42:llvm-21-issue-101082, r=cuviperMatthias Krüger-10/+2
tests: adjust 101082 test for LLVM 21 fix Fixes #139987.
2025-04-18Rollup merge of #139976 - jieyouxu:plumbing, r=KobzolMatthias Krüger-21/+2
run-make: drop `os_pipe` workaround now that `anonymous_pipe` is stable on beta Follow-up to #137537 where I had to include a temporary dep on `os_pipe` before `anonymous_pipe` was stabilized. Now that `anonymous_pipe` is stable on beta, we can get rid of this workaround. Closes #137532. (Final cleanup item) r? `@Kobzol`
2025-04-18Rollup merge of #139934 - tgross35:update-builtins, r=tgross35Matthias Krüger-4/+4
Update `compiler-builtins` to 0.1.155 Includes the following changes: * Replace `#[naked]` with `#[unsafe(naked)]` [1] [2] * Replace `bl!` with `asm_sym` [3] [1]: https://github.com/rust-lang/compiler-builtins/pull/817 [2]: https://github.com/rust-lang/compiler-builtins/pull/821 [3]: https://github.com/rust-lang/compiler-builtins/pull/820 try-job: armhf-gnu try-job: aarch64-apple try-job: dist-apple-various
2025-04-18Rollup merge of #138599 - adwinwhite:recursive-overflow, r=wesleywiserMatthias Krüger-61/+66
avoid overflow when generating debuginfo for expanding recursive types Fixes #135093 Fixes #121538 Fixes #107362 Fixes #100618 Fixes #115994 The overflow happens because expanding recursive types keep creating new nested types when recurring into sub fields. I fixed that by returning an empty stub node when expanding recursion is detected.
2025-04-18Rollup merge of #137881 - Jarcho:index_slice_ex, r=wesleywiserMatthias Krüger-1/+12
Add `copy_within` to `IndexSlice`
2025-04-18Rollup merge of #139942 - dalvescb:master, r=jieyouxuMatthias Krüger-0/+1
Ignore aix for tests/ui/erros/pic-linker.rs This test case fails on AIX because of how the linker arguments are passed. Furthermore on AIX `-z text` only works in dynamic mode, making this test case irrelevant.
2025-04-18Rollup merge of #139913 - fmease:rustdoc-fix-fn-param-handling, r=GuillaumeGomezMatthias Krüger-167/+186
rustdoc/clean: Fix lowering of fn params (fixes correctness & HIR vs. middle parity regressions) **(0)** PR #136411 aimed to stop rendering unnamed params of fn ptr types as underscores in the common case (e.g., `fn(_: i32)` → `fn(i32)`) to make the rendered output stylistically more conventional. **(0.a)** However, since the cleaning fn that the PR modified is also used for lowering the HIR params of foreign fns and required assoc fns in traits, it accidentally butchered the rendering of the latter two: ```rs pub trait Trait { fn assoc_fn(_: i32); } // as well as (Rust 2015 only): fn assoc_fn(i32); unsafe extern "C" { pub fn foreign_fn(_: i32); } // Since 1.86 the fns above gets mis-rendered as: pub fn assoc_fn(: i32) // <-- BUTCHERED pub unsafe extern "C" fn foreign_fn(: i32) // <-- BUTCHERED ``` **(0.b)** Furthermore, it broke parity with middle cleaning (which includes inlined cross-crate re-exports) re-regressing parts of #44306 I once fixed in PR #103885. **(1)** Lastly, PR #139035 introduced an ICE triggered by the following input file: ```rs trait Trait { fn anon(()) {} } // internal error: entered unreachable code ``` --- This PR fixes all of these regressions and in the first commit renames several types and fns to be more ~~correct~~ descriptive and legible. ~~It also refactors `Param.name` to be of type `Option<Symbol>` instead `Symbol` (where `None` ~ `kw::Empty`), so rendering mistakes like that can no longer creep in like that (ignoring tests). CC #137978.~~ Independently done in PR #139846 a day prior.
2025-04-18Rollup merge of #139853 - Kobzol:lld-llvm-config, r=onur-ozkanMatthias Krüger-56/+65
Disable combining LLD with external llvm-config When an external `llvm-config` is used, we don't really know anything about the external LLD, as we don't build it ourselves. Therefore, we probably shouldn't allow using `rust-lld` nor copy it to the target sysroot. Fixes: https://github.com/rust-lang/rust/issues/139477 CC ``@cuviper`` r? ``@onur-ozkan`` try-job: dist-x86_64-linux try-job: dist-aarch64-linux
2025-04-18Rollup merge of #139615 - nnethercote:rm-name_or_empty, r=jdonszelmannMatthias Krüger-226/+309
Remove `name_or_empty` Another step towards #137978. r? ``@jdonszelmann``
2025-04-18Rollup merge of #139553 - petrosagg:channel-double-free, r=RalfJung,tgross35Matthias Krüger-1/+57
sync::mpsc: prevent double free on `Drop` This PR is fixing a regression introduced by #121646 that can lead to a double free when dropping the channel. The details of the bug can be found in the corresponding crossbeam PR https://github.com/crossbeam-rs/crossbeam/pull/1187
2025-04-18Rollup merge of #139393 - ↵Matthias Krüger-2/+257
willglynn:rustdoc_output_target_feature_information, r=aDotInTheVoid rustdoc-json: Output target feature information `#[target_feature]` attributes refer to a target-specific list of features. Enabling certain features can imply enabling other features. Certain features are always enabled on certain targets, since they are required by the target's ABI. Features can also be enabled indirectly based on other compiler flags. Feature information is ultimately known to `rustc`. Rather than force external tools to track it – which may be wildly impractical due to `-C target-cpu` – have `rustdoc` output `rustc`'s feature data. This change is motivated by https://github.com/obi1kenobi/cargo-semver-checks/issues/1246, which intends to detect semver hazards caused by `#[target_feature]`. try-job: aarch64-gnu try-job: armhf-gnu try-job: test-various try-job: x86_64-msvc-1 try-job: i686-msvc-1 try-job: x86_64-mingw-1 try-job: aarch64-apple
2025-04-18Rollup merge of #138528 - dianne:implicit-deref-patterns, r=NadrierilMatthias Krüger-170/+944
deref patterns: implement implicit deref patterns This implements implicit deref patterns (per https://hackmd.io/4qDDMcvyQ-GDB089IPcHGg#Implicit-deref-patterns) and adds tests and an unstable book chapter. Best reviewed commit-by-commit. Overall there's a lot of additions, but a lot of that is tests, documentation, and simple(?) refactoring. Tracking issue: #87121 r? ``@Nadrieril``
2025-04-17Auto merge of #139992 - matthiaskrgr:rollup-ak3uibu, r=matthiaskrgrbors-141/+387
Rollup of 8 pull requests Successful merges: - #139351 (Autodiff batching2) - #139483 (f*::NAN: guarantee that this is a quiet NaN) - #139498 (Ignore zero-sized types in wasm future-compat warning) - #139967 (Introduce and use specialized `//@ ignore-auxiliary` for test support files instead of using `//@ ignore-test`) - #139969 (update libc) - #139971 (Make C string merging test work on MIPS) - #139974 (Change `InterpCx::instantiate*` function visibility to pub) - #139977 (Fix drop handling in `hint::select_unpredictable`) r? `@ghost` `@rustbot` modify labels: rollup
2025-04-17Rollup merge of #139977 - Amanieu:select_unpredictable_drop, r=RalfJungMatthias Krüger-9/+48
Fix drop handling in `hint::select_unpredictable` This intrinsic doesn't drop the value that is not selected so this is manually done in the public function that wraps the intrinsic.
2025-04-17Rollup merge of #139974 - Patrick-6:change-visibility, r=RalfJungMatthias Krüger-4/+2
Change `InterpCx::instantiate*` function visibility to pub For some ongoing work in Miri we need to be able to access `instantiate_from_current_frame_and_normalize_erasing_regions` and `instantiate_from_frame_and_normalize_erasing_regions` on `InterpCx`. r? `@RalfJung`
2025-04-17Rollup merge of #139971 - LukasWoodtli:gardena/lw/fix-cstring-merging-test, ↵Matthias Krüger-3/+5
r=wesleywiser Make C string merging test work on MIPS Assembly for MIPS uses, by convention, a different prefix for local anonymous variables.
2025-04-17Rollup merge of #139969 - psumbera:libc-rust-analyzer, r=lnicolaMatthias Krüger-4/+4
update libc This is needed for https://github.com/rust-lang/rust/pull/138699#discussion_r2048603474
2025-04-17Rollup merge of #139967 - jieyouxu:auxiliary, r=wesleywiserMatthias Krüger-60/+56
Introduce and use specialized `//@ ignore-auxiliary` for test support files instead of using `//@ ignore-test` ### Summary Add a semantically meaningful directive for ignoring test *auxiliary* files. This is for auxiliary files that *participate* in actual tests but should not be built by `compiletest` (i.e. these files are involved through `mod xxx;` or `include!()` or `#[path = "xxx"]`, etc.). ### Motivation A specialized directive like `//@ ignore-auxiliary` makes it way easier to audit disabled tests via `//@ ignore-test`. - These support files cannot use the canonical `auxiliary/` dir because they participate in module resolution or are included, or their relative paths can be important for test intention otherwise. Follow-up to: - #139705 - #139783 - #139740 See also discussions in: - [#t-compiler > Directive name for non-test aux files?](https://rust-lang.zulipchat.com/#narrow/channel/131828-t-compiler/topic/Directive.20name.20for.20non-test.20aux.20files.3F/with/512773817) - [#t-compiler > Handling disabled &#96;//@ ignore-test&#96; tests](https://rust-lang.zulipchat.com/#narrow/channel/131828-t-compiler/topic/Handling.20disabled.20.60.2F.2F.40.20ignore-test.60.20tests/with/512005974) - [#t-compiler/meetings > &#91;steering&#93; 2025-04-11 Dealing with disabled tests](https://rust-lang.zulipchat.com/#narrow/channel/238009-t-compiler.2Fmeetings/topic/.5Bsteering.5D.202025-04-11.20Dealing.20with.20disabled.20tests/with/511717981) ### Remarks on remaining unconditionally disabled tests under `tests/` After this PR, against commit 79a272c6402, only **14** remaining test files are disabled through `//@ ignore-test`: <details> <summary>Remaining `//@ ignore-test` files under `tests/`</summary> ``` tests/debuginfo/drop-locations.rs 4://@ ignore-test (broken, see #128971) tests/rustdoc/macro-document-private-duplicate.rs 1://@ ignore-test (fails spuriously, see issue #89228) tests/rustdoc/inline_cross/assoc-const-equality.rs 3://@ ignore-test (FIXME: #125092) tests/ui/match/issue-27021.rs 7://@ ignore-test (#54987) tests/ui/match/issue-26996.rs 7://@ ignore-test (#54987) tests/ui/issues/issue-49298.rs 9://@ ignore-test (#54987) tests/ui/issues/issue-59756.rs 2://@ ignore-test (rustfix needs multiple suggestions) tests/ui/precondition-checks/write.rs 5://@ ignore-test (unimplemented) tests/ui/precondition-checks/read.rs 5://@ ignore-test (unimplemented) tests/ui/precondition-checks/write_bytes.rs 5://@ ignore-test (unimplemented) tests/ui/explicit-tail-calls/drop-order.rs 2://@ ignore-test: tail calls are not implemented in rustc_codegen_ssa yet, so this causes 🧊 tests/ui/panics/panic-short-backtrace-windows-x86_64.rs 3://@ ignore-test (#92000) tests/ui/json/json-bom-plus-crlf-multifile-aux.rs 3://@ ignore-test Not a test. Used by other tests tests/ui/traits/next-solver/object-soundness-requires-generalization.rs 2://@ ignore-test (see #114196) ``` </details> Of these, most are either **unimplemented**, or **spurious**, or **known-broken**. The outstanding one is `tests/ui/json/json-bom-plus-crlf-multifile-aux.rs` which I did not want to touch in *this* PR -- that aux file has load-bearing BOM and carriage returns and byte offset matters. I think those test files that require special encoding / BOM probably are better off as `run-make` tests. See #139968 for that aux file. ### Review advice - Best reviewed commit-by-commit. - The directive name diverged from the most voted `//@ auxiliary` because I think that's easy to confuse with `//@ aux-{crate,dir}`. r? compiler
2025-04-17Rollup merge of #139498 - alexcrichton:wasm-zst-safe, r=wesleywiserMatthias Krüger-0/+11
Ignore zero-sized types in wasm future-compat warning This commit fixes a false positive of the warning triggered for #138762 and the fix is to codify that zero-sized types are "safe" in both the old and new ABIs.
2025-04-17Rollup merge of #139483 - RalfJung:nan, r=tgross35Matthias Krüger-33/+41
f*::NAN: guarantee that this is a quiet NaN I think we should guarantee that this is a quiet NaN. This then implies that programs not using `f*::from_bits` (or unsafe type conversions) are guaranteed to only work with quiet NaNs. It would be awkward if people start to write `0.0 / 0.0` instead of using the constant just because they want to get a guaranteed-quiet NaN. This is a `@rust-lang/libs-api` change. The definition of this constant currently is `0.0 / 0.0`, which is already guaranteed to be a quiet NaN. So all this does is forward that guarantee to our users.
2025-04-17Rollup merge of #139351 - EnzymeAD:autodiff-batching2, r=oli-obkMatthias Krüger-28/+220
Autodiff batching2 ~I will rebase it once my first PR landed.~ done. This autodiff batch mode is more similar to scalar autodiff, since it still only takes one shadow argument. However, that argument is supposed to be `width` times larger. r? `@oli-obk` Tracking: - https://github.com/rust-lang/rust/issues/124509
2025-04-17remove stray fileTshepang Mbambo-0/+0
2025-04-17Update libcore.natvis for Pin.Mara Bos-2/+2
2025-04-17tests: adjust 101082 test for LLVM 21 fixAugie Fackler-10/+2
Fixes #139987.
2025-04-17Update `compiler-builtins` to 0.1.155Trevor Gross-4/+4
Includes the following changes: * Replace `#[naked]` with `#[unsafe(naked)]` [1] [2] * Replace `bl!` with `asm_sym` [3] [1]: https://github.com/rust-lang/compiler-builtins/pull/817 [2]: https://github.com/rust-lang/compiler-builtins/pull/821 [3]: https://github.com/rust-lang/compiler-builtins/pull/820
2025-04-17Auto merge of #139979 - matthiaskrgr:rollup-7wu5169, r=matthiaskrgrbors-236/+597
Rollup of 9 pull requests Successful merges: - #139774 (Fix replacing supertrait aliases in `ReplaceProjectionWith`) - #139850 (Hide unstable print kinds within emit_unknown_print_request_help in stable channel) - #139870 (add retries to remove and create dir all) - #139902 (do not emit `OpaqueCast` projections with `-Znext-solver`) - #139931 (bootstrap: enable zlib for LLVM for Windows GNU) - #139935 (Upgrade to `rustc-rayon-core` 0.5.1) - #139943 (rustdoc: Support inlined cross-crate re-exported trait aliases) - #139961 (Two `rustc_const_eval` cleanups) - #139962 (opt-dist: add a flag for running tests) r? `@ghost` `@rustbot` modify labels: rollup
2025-04-17Rollup merge of #139962 - ognevny:opt-dist-tests, r=KobzolMatthias Krüger-1/+14
opt-dist: add a flag for running tests when using `opt-dist local` user probably won't need to run tests (for various reasons). currently the only way to disable them is to set `TRY_DIST_BUILD=1`, which is not obvious and can be bad for non-CI envronments (as I guess) possibly the `run_tests` name can be confusing too... r? Kobzol try-job: dist-x86_64-linux try-job: dist-x86_64-msvc
2025-04-17Rollup merge of #139961 - nnethercote:two-rustc_const_eval-cleanups, r=oli-obkMatthias Krüger-15/+19
Two `rustc_const_eval` cleanups r? ``@lcnr``
2025-04-17Rollup merge of #139943 - fmease:rustdoc-ixcre-trait-aliases, r=GuillaumeGomezMatthias Krüger-64/+122
rustdoc: Support inlined cross-crate re-exported trait aliases Previously we'd just drop them. As a result of this PR, [`core::ptr::Thin`](https://doc.rust-lang.org/nightly/core/ptr/traitalias.Thin.html) will be admitted into the `std` façade! Also, render the where clause *after* the bounds / the `=`, not before them, as it should be. r? rustdoc
2025-04-17Rollup merge of #139935 - cuviper:rustc-rayon-core-0.5.1, r=lqdMatthias Krüger-7/+2
Upgrade to `rustc-rayon-core` 0.5.1 * [Fix a race with deadlock detection](https://github.com/rust-lang/rustc-rayon/pull/15) * [Cherry-pick changes from upstream rayon-core](https://github.com/rust-lang/rustc-rayon/pull/16) - This also removes a few dependencies from rustc's tidy list.
2025-04-17Rollup merge of #139931 - ognevny:bootstrap-llvm-zlib, r=KobzolMatthias Krüger-3/+3
bootstrap: enable zlib for LLVM for Windows GNU when compiling target LLVM with `opt-dist local` on Windows/MinGW, profraw files are being compressed with zlib, so compiling without it will make `llvm-profdata` complain about lacking of zlib support. this error is shown: `profile uses zlib compression but the profile reader was built without zlib support` example from llvm test suite: https://github.com/llvm/llvm-project/blob/76b5fcbf975547251faaeed8b567ea09d139a607/llvm/test/tools/llvm-profdata/nocompress.test#L15. implementation of step 3. from https://rust-lang.zulipchat.com/#narrow/channel/122651-general/topic/experiment.20with.20.60opt-dist.20local.60.20in.20MSYS2/near/512393873 r? Kobzol
2025-04-17Rollup merge of #139902 - lcnr:no-opaque-cast-projection, r=oli-obkMatthias Krüger-35/+52
do not emit `OpaqueCast` projections with `-Znext-solver` We normalize opaque types in their defining scope if the new solver is enabled. This means projections do not contain any 'revealable' opaque types we need to worry about. We either have a type which has been normalized by writeback or we need to normalize it anyways. r? ```@compiler-errors``` ```@oli-obk```
2025-04-17Rollup merge of #139870 - ↵Matthias Krüger-25/+72
Shourya742:2025-04-15-add-retries-to-remove_and_create_dir_all, r=jieyouxu add retries to remove and create dir all closes: #139230 r? ```@jieyouxu```
2025-04-17Rollup merge of #139850 - xizheyin:issue-138698, r=jieyouxuMatthias Krüger-12/+75
Hide unstable print kinds within emit_unknown_print_request_help in stable channel Fixes #138698 We need to get the channel from `matches`. However, since `matches`(Line 1169) is constructed after `rustc_optgroups` (Line1165, where `RustcOptGroup::value_hint` is generated, i.e. what `rustc --print print` prints), I've left it unchanged here for now. https://github.com/rust-lang/rust/blob/2da29dbe8fe23df1c7c4ab1d8740ca3c32b15526/compiler/rustc_driver_impl/src/lib.rs#L1161-L1169 There is actually a way to manually parse the `--crate-name` parameter, but I'm afraid that's an unorthodox practice. So I conservatively just modified `emit_unknown_print_request_help` to print different parameters depending on whether they are nightly or not when passing the error parameter. r? ```@jieyouxu```