profile
viewpoint
Wesley Wiser wesleywiser HighGear Maryland @rust-lang Compiler Team, Senior Software Enginer @SwiftSoftware-Inc

rust-lang/measureme 136

Support crate for rustc's self-profiling feature

wesleywiser/process_path 4

A Rust library to get the path of the currently executing process

JasonKleban/Unbounded 2

F# to T-SQL. Remote command execution and domain invariant enforcement

wesleywiser/Expert-System 1

An example expert system for CS 428

wesleywiser/FSharpSnippets 1

Snippets and modules of F# code.

wesleywiser/IronJS 1

IronJS - A JavaScript implementation for .NET written in F#

wesleywiser/jquery-mobile 1

jQuery Mobile Framework

wesleywiser/Reconnect-wifi-daemon 1

A simple daemon for Ubuntu which causes your computer to automatically reconnect to a specific wifi access point.

push eventwesleywiser/rust

Wesley Wiser

commit sha 3adac0391b543b8563298242aeeba6ade8f72944

Add test case for #77062 Closes #77062

view details

push time in 9 hours

push eventwesleywiser/rust

Jubilee Young

commit sha 4e973966b95e5157754f91216456a3c37a1472b2

Remove unnecessary mod-cfg

view details

bors

commit sha 8876ffc9235dade728e1fbc4be4c85415fdd0bcd

Auto merge of #77462 - jonas-schievink:rollup-m0rqdh5, r=jonas-schievink Rollup of 12 pull requests Successful merges: - #76101 (Update RELEASES.md for 1.47.0) - #76739 (resolve: prohibit anon const non-static lifetimes) - #76811 (Doc alias name restriction) - #77405 (Add tracking issue of iter_advance_by feature) - #77409 (Add example for iter chain struct) - #77415 (Better error message for `async` blocks in a const-context) - #77423 (Add `-Zprecise-enum-drop-elaboration`) - #77432 (Use posix_spawn on musl targets) - #77441 (Fix AVR stack corruption bug) - #77442 (Clean up on example doc fixes for ptr::copy) - #77444 (Fix span for incorrect pattern field and add label) - #77453 (Stop running macOS builds on Azure Pipelines) Failed merges: r? `@ghost`

view details

Jake Vossen

commit sha 3ea96b86ab8f2afec172bc7452876540388e4df9

made multiline macro calls into single line

view details

Long Louis Bui

commit sha 8b8c63f568bc838aa7997a6933a40c3ab7b91a5d

changed non_copy_const lints to warn by default

view details

bors

commit sha a1a7f20b4c5edff108a7c46e8641580bbf862362

Auto merge of #6098 - longlb:interior_mut_const, r=ebroto Downgrade interior_mutable_const lints to warn by default This change updates the two lints in the file non_copy_const.rs to be warn by default rather than deny by default. It also updates the known problems for declare_interior_mutable_const to mention some issues that are affected by the lints. This is a repeat pull request since I botched the first one (#6012). Apart from my messing up the commits of that one, I also had a problem where the stderr of the tests didn't change despite me changing both lints to warn by default. Is this normal behaviour for some lints or do I need to adjust the tests to accommodate the change? fixes #5863 changelog: none

view details

Camelid

commit sha 4c9bcf3b39faa07afb40a79b0d932a4accaeb82b

Fix test name Remove trailing `-`.

view details

Camelid

commit sha 87f3f81451f72fc7b5acb4a569bb79a51a8604c3

Improve rustdoc error for failed intra-doc link resolution The previous error was confusing since it made it sound like you can't link to items that are defined outside the current module. Also suggested importing the item.

view details

Camelid

commit sha 0193a8871cc2c2cca2de03243097519ce6c910ce

Remove unhelpful help message

view details

Dániel Buga

commit sha 998bd3b6b4d168099346e460ae42897dc3667882

Rename lint to invisible_characters

view details

Dániel Buga

commit sha 572e4c4837e5f955cdc3751b9ad63f0bfb86beac

Add WJ

view details

bors

commit sha 9408c68c1da55f8a47cb21e761953db30aea3d39

Auto merge of #6105 - bugadani:sus-char, r=ebroto Lint for invisible Unicode characters other than ZWSP This PR extends the existing `zero_width_space` lint to look for other invisible characters as well (in this case, `\\u{ad}` soft hyphen. I feel like this lint is the logical place to add the check, but I also realize the lint name is not particularly flexible, but I also understand that it shouldn't be renamed for compatibility reasons. Open questions: - What other characters should trigger the lint? - What should be done with the lint name? - How to indicate the change in functionality? Motivation behind this PR: https://github.com/rust-lang/rust/issues/77417 - I managed to shoot myself in the foot by an invisible character pasted into my test case. changelog: rename [`zero_width_space`] to [`invisible_characters`] and add SHY and WJ to the list.

view details

Jonas Schievink

commit sha 1118ab99301025f371f03c1345a5212c3068cf56

Rollup merge of #75377 - canova:map_debug_impl, r=dtolnay Fix Debug implementations of some of the HashMap and BTreeMap iterator types HashMap's `ValuesMut`, BTreeMaps `ValuesMut`, IntoValues and `IntoKeys` structs were printing both keys and values on their Debug implementations. But they are iterators over either keys or values. Irrelevant values should not be visible. With this PR, they only show relevant fields. This fixes #75297. [Here's an example code.](https://play.rust-lang.org/?version=nightly&mode=debug&edition=2018&gist=0c79356ed860e347a0c1a205616f93b7) This prints this on nightly: ``` ValuesMut { inner: IterMut { range: [(1, "hello"), (2, "goodbye")], length: 2 } } IntoKeys { inner: [(1, "hello"), (2, "goodbye")] } IntoValues { inner: [(1, "hello"), (2, "goodbye")] } [(2, "goodbye"), (1, "hello")] ``` After the patch this example prints these instead: ``` ["hello", "goodbye"] ["hello", "goodbye"] [1, 2] ["hello", "goodbye"] ``` I didn't add test cases for them, since I couldn't see any tests for Debug implementations anywhere. But please let me know if I should add it to a specific place. r? @dtolnay

view details

Jonas Schievink

commit sha ca0ff934e939969e09abcc2d17f0cff89b8147ee

Rollup merge of #76107 - integer32llc:manifest-alias, r=pietroalbini Write manifest for MAJOR.MINOR channel to enable rustup convenience This connects to https://github.com/rust-lang/rustup/issues/794. It's hard to remember if there have been patch releases for old versions when you'd like to install the latest in a MAJOR.MINOR series. When we're doing a stable release, we write duplicate manifests to `stable`. With this change, only when we're doing a stable release, also write duplicate manifests to `MAJOR.MINOR` to eventually enable rustup (and any other tooling that builds Rust release URLs) to request, say, `1.45` and get `1.45.2` (assuming `1.45.2` is the latest available `1.45` and assuming that we never publish patch releases out of order). I tested the best I could; it's a bit hard to get everything set up right to be able to run the build-manifest tool. But I was able to run it with a release of "1.45.2" and in addition to the files like `channel-rust-1.45.2.toml` and `channel-rust-stable.toml` (and other manifests) that I got before this change, I now get `channel-rust-1.45.toml`. I believe this change to be safe to deploy as it does not change or remove anything about manifests, just adds more. The actions in rust-central-station that interact with manifests appear to use wildcards in such a way that it will pick up these files without any problems. There will need to be changes to `rustup` before `rustup install 1.45` will work, but we can wait for a stable release and stable patch releases to happen with this change before making the `rustup` changes, so that we're not committing to anything before we know it works.

view details

Jonas Schievink

commit sha 389f7cf7d6c333b490e208bcbda3406b9e0ef437

Rollup merge of #76745 - workingjubilee:move-wrapping-tests, r=matklad Move Wrapping<T> ui tests into library Part of #76268 r? @matklad

view details

Jonas Schievink

commit sha ccc020ab42b4209940b821ba4fd0e1240d3f7561

Rollup merge of #77182 - GuillaumeGomez:missing-examples-fd-traits, r=pickfire Add missing examples for Fd traits Not sure what happened here... This is a reopening of #77142 r? @Dylan-DPC

view details

Jonas Schievink

commit sha 65228686649c68f491d3b763e9dde52c23fea9d7

Rollup merge of #77251 - dtolnay:drop, r=Aaron1011 Bypass const_item_mutation if const's type has Drop impl Follow-up to #75573. This PR disables the const_item_mutation lint in cases that the const has a Drop impl which observes the mutation. ```rust struct Log { msg: &'static str } const LOG: Log = Log { msg: "" }; impl Drop for Log { fn drop(&mut self) { println!("{}", self.msg); } } LOG.msg = "wow"; // prints "wow" ``` r? @Aaron1011

view details

Jonas Schievink

commit sha 01ca8299d48df39a1567ec39f9768d8fcb69ce7f

Rollup merge of #77264 - fusion-engineering-forks:skip-local-stdio, r=dtolnay Only use LOCAL_{STDOUT,STDERR} when set_{print/panic} is used. The thread local `LOCAL_STDOUT` and `LOCAL_STDERR` are only used by the `test` crate to capture output from tests when running them in the same process in differen threads. However, every program will check these variables on every print, even outside of testing. This involves allocating a thread local key, and registering a thread local destructor. This can be somewhat expensive. This change keeps a global flag (`LOCAL_STREAMS`) which will be set to `true` when either of these local streams is used. (So, effectively only in test and benchmark runs.) When this flag is off, these thread locals are not even looked at and therefore will not be initialized on the first output on every thread, which also means no thread local destructors will be registered. --- Together with https://github.com/rust-lang/rust/pull/77154, this should make output a little bit more efficient.

view details

Jonas Schievink

commit sha 23408de992598d89bf6ed697b4b86bbefc0f2df0

Rollup merge of #77421 - petrochenkov:globtravel, r=nagisa Revert "resolve: Avoid "self-confirming" import resolutions in one more case" And remove the assert that https://github.com/rust-lang/rust/pull/70236 tried to avoid instead. Closes https://github.com/rust-lang/rust/issues/74556.

view details

Jonas Schievink

commit sha eff63980142872227dcd66bf429f7337b1b68c31

Rollup merge of #77452 - Mark-Simulacrum:fix-symbol-v0, r=eddyb Permit ty::Bool in const generics for v0 mangling This should unbreak using new-symbol-mangling = true in config.toml (once it lands in beta anyway). Fixes #76365 (well, it will, but seems fine to close as soon as we have support) r? @eddyb (for mangling) but I'm okay with some other reviewer too :)

view details

bors

commit sha 6ebad43c255e63ac0734646fe817de5780d76b45

Auto merge of #77470 - jonas-schievink:rollup-9a2hulp, r=jonas-schievink Rollup of 8 pull requests Successful merges: - #75377 (Fix Debug implementations of some of the HashMap and BTreeMap iterator types) - #76107 (Write manifest for MAJOR.MINOR channel to enable rustup convenience) - #76745 (Move Wrapping<T> ui tests into library) - #77182 (Add missing examples for Fd traits) - #77251 (Bypass const_item_mutation if const's type has Drop impl) - #77264 (Only use LOCAL_{STDOUT,STDERR} when set_{print/panic} is used. ) - #77421 (Revert "resolve: Avoid "self-confirming" import resolutions in one more case") - #77452 (Permit ty::Bool in const generics for v0 mangling) Failed merges: r? `@ghost`

view details

push time in 9 hours

PR opened rust-lang/rust

Add test case for #77062

Closes #77062

+6 -0

0 comment

1 changed file

pr created time in 10 hours

create barnchwesleywiser/rust

branch : close_77062

created branch time in 10 hours

issue commentrust-lang/rust

Slow compile times for promotion of `[(); usize::MAX]`

Fixed in #78061.

carbotaniuman

comment created time in 10 hours

pull request commentrust-lang/rust

Optimize const value interning for ZST types

Good call! That's fixed too. I'll open another PR with the test case added.

wesleywiser

comment created time in 10 hours

pull request commentrust-lang/rust

Disable MatchBranchSimplification

I'm not sure if we need to wait for bors to fail before re-approving, but I'll go ahead and approve in case that works.

@bors r+

tmiasko

comment created time in 18 hours

pull request commentrust-lang/rust

Disable MatchBranchSimplification

I think the 64-bit tests need to be blessed as well. (I only see a change to src/test/mir-opt/matches_reduce_branches.bar.MatchBranchSimplification.32bit.diff)

tmiasko

comment created time in 18 hours

push eventrust-lang/compiler-team

Jonas Schievink

commit sha f2fb663c29c95799cdc0f6f9d50fd0ad5c5ec021

Add myself to the experts map

view details

Wesley Wiser

commit sha ce433755b0a378e090cb95e90187d254b8561d03

Merge pull request #373 from jonas-schievink/patch-1 Add myself to the experts map

view details

push time in 2 days

PR merged rust-lang/compiler-team

Add myself to the experts map

Not sure if this is still used, but it doesn't hurt to keep it updated

+3 -3

0 comment

1 changed file

jonas-schievink

pr closed time in 2 days

PullRequestReviewEvent

Pull request review commentrust-lang/rust

[WIP] Do not make local copies of inline fns in debug mode

 impl<'tcx> MonoItem<'tcx> {                 // inlined function. If we're inlining into all CGUs then we'll                 // be creating a local copy per CGU.                 if generate_cgu_internal_copies {-                    return InstantiationMode::LocalCopy;-                }--                // Finally, if this is `#[inline(always)]` we're sure to respect-                // that with an inline copy per CGU, but otherwise we'll be-                // creating one copy of this `#[inline]` function which may-                // conflict with upstream crates as it could be an exported-                // symbol.-                match tcx.codegen_fn_attrs(instance.def_id()).inline {-                    InlineAttr::Always => InstantiationMode::LocalCopy,-                    _ => InstantiationMode::GloballyShared { may_conflict: true },+                    InstantiationMode::LocalCopy+                } else {+                    // Finally, if this is `#[inline(always)]` or `#[inline]` and+                    // OptLevel is not No, we're sure to respect that with an inline+                    // copy per CGU, but otherwise we'll be creating one copy of+                    // this `#[inline]` function which may conflict with upstream+                    // crates as it could be an exported symbol.

Nit: Suggested rewrite for this comment. Please tweak as you see fit :)

                    // Finally, if we've reached this point, then we know that OptLevel = No
                    // so we should optimize for compilation speed. In that regard, we will
                    // ignore any `#[inline]` annotations on the function and simply codegen
                    // it as usual. This could conflict with upstream crates as it could be an exported
                    // symbol.
spastorino

comment created time in 2 days

PullRequestReviewEvent

create barnchwesleywiser/rust

branch : mir_validation_switch_int

created branch time in 3 days

pull request commentrust-lang/rust

always try inlining functions which do not call other functions

I ran into the same thing with deeply-nested the last time I tried enabling the MIR inliner. This Zulip message had most of my findings at that time.

lcnr

comment created time in 4 days

pull request commentrust-lang/rust

Optimize const value interning for ZST types

@bors try @rust-timer queue

wesleywiser

comment created time in 4 days

PR opened rust-lang/rust

Optimize const value interning for ZST types

Interning can skip any inhabited ZST type in general.

Fixes #68010

r? @oli-obk

+11 -0

0 comment

2 changed files

pr created time in 4 days

push eventwesleywiser/rust

Wesley Wiser

commit sha 1d07d696d22a6d5a1ea1a41e0408ea5e990b25ae

Optimize const value interning for ZST types Interning can skip any inhabited ZST type in general.

view details

push time in 4 days

create barnchwesleywiser/rust

branch : opt_zst_const_interning

created branch time in 4 days

pull request commentrust-lang/rust

instrument-coverage: try our best to not ICE

r? @wesleywiser

@bors r+ rollup

Thanks @nagisa!

nagisa

comment created time in 5 days

pull request commentrust-lang/rust

Implement lazy decoding of DefPathTable during incremental compilation

@Aaron1011 I took a look at it yesterday and the code seems fine to me but I don't think I have a complete understanding of this part of the incremental system so I shouldn't sign off on it. @pnkfelix said he would do the review and sign off.

Aaron1011

comment created time in 5 days

pull request commentrust-lang/rust

instrument-coverage: try our best to not ICE

cc @richkadel

nagisa

comment created time in 5 days

Pull request review commentrust-lang/rust

Collect statistics about MIR optimizations

+//! # Support for collecting simple statistics+//!+//! Statistics are useful for collecting metrics from optimization passes, like+//! the number of simplifications performed. To avoid introducing overhead, the+//! collection of statistics is enabled only when rustc is compiled with+//! debug-assertions.+//!+//! Statistics are static variables defined in the module they are used, and+//! lazy registered in the global collector on the first use. Once registered,+//! the collector will obtain their values at the end of compilation process+//! when requested with -Zmir-opt-stats option.++use parking_lot::{const_mutex, Mutex};+use std::fmt::Write as _;+use std::io::{self, Write as _};+use std::sync::atomic::{AtomicBool, AtomicUsize, Ordering};++static COLLECTOR: Collector = Collector::new();

I agree with @bjorn3. We've tried pretty hard to move these sorts of things into Session and TyCtxt to allow running multiple sessions in the same process (both for RLS and eventually for one rustc process compiling multiple crates simultaneously).

Since this is essentially unstable, diagnostic data and doesn't effect the compilation artifacts, it may be worth bending that rule because, as you point out, having the counters defined in their MIR passes is quite nice. I don't personally feel comfortable approving that since this is a cross-cutting concern for the compiler as a whole and there may be others on the compiler team that have strong opinions about breaking that rule.

tmiasko

comment created time in 6 days

PullRequestReviewEvent

pull request commentrust-lang/rust

Don't allocate DepNode if anonymous

@arora-aman Don't we still need to do this? https://github.com/rust-lang/rust/issues/45408#issuecomment-365656548

I tried building locally and the incremental cache seems to be the same size before and after this change. I would assume we should see some kind of change if the nodes are no longer being allocated.

arora-aman

comment created time in 7 days

PR closed rust-lang/rust

[WIP] Test removing anon queries

r? @ghost

+1 -60

6 comments

5 changed files

wesleywiser

pr closed time in 7 days

pull request commentrust-lang/rust

[WIP] Test removing anon queries

@bors try @rust-timer queue

wesleywiser

comment created time in 7 days

PR opened rust-lang/rust

[WIP] Test removing anon queries

r? @ghost

+1 -60

0 comment

5 changed files

pr created time in 7 days

create barnchwesleywiser/rust

branch : test_rm_anon_queries

created branch time in 7 days

issue commentboa-dev/boa

Profiler no longer works with measureme 9.0.0

@jasonwilliams It should be pretty easy. Here's the PR I opened up upgrade rustc: https://github.com/rust-lang/rust/pull/77398

neeldug

comment created time in 11 days

pull request commentrust-lang/rust

Remove SimplifyBranchSame MIR optimization

Sure!

@bors try @rust-timer queue

tmiasko

comment created time in 12 days

pull request commentrust-lang/rust

Add a MIR pass manager

I didn't give high level feedback with my review comments but I really like the direction of this PR in general and I'd be happy to r+ it once the review feedback is resolved!

ecstatic-morse

comment created time in 12 days

pull request commentrust-lang/rust

Remove SimplifyBranchSame MIR optimization

I find it really concerning that the criterion for introducing and enabling MIR optimizations is having no performance impact, without having to demonstrate a positive impact (performance or otherwise).

We do have policy in this regard: https://github.com/rust-lang/compiler-team/issues/319. Per that, to be enabled at mir-opt-level=1, the optimization must improve compilation time (by how much or in what situations is unspecified) and must not hurt debugability. We definitely are not enforcing this policy as strictly as we should be, I would say.

The SimplifyBranchSame pass was written specifically to work in conjunction with the SimplifyArmIdentity pass. When we disabled that pass a few months ago because of bugs, the performance regression was enough that the weekly perf triage caught it unsolicited. Whether a 3% improvement on real world crates is enough to justify being enabled by default is debatable but I would say "yes".

We should probably set up a sync mir-opt meeting and talk about that.

Yes, I agree. In particular, I would like to see us draft some policy around how optimizations are taken from experimental/unsound status to run by default.

tmiasko

comment created time in 12 days

issue commentrust-lang/rust

I don't understand nightly-2020-10-08

If you installed Rust via rustup, then rustc and cargo are links to a wrapper program that inspects the current working directory, decides which toolchain to invoke and then invokes that toolchain forwarding the arguments along. As such, this looks like some kind of issue with rustup and not rustc.

leonardo-m

comment created time in 12 days

pull request commentrust-lang/rust

Remove SimplifyBranchSame MIR optimization

I don't think we should remove this pass at this time. This pass is a pretty important part of the set of passes which try to optimize out no-op matches. Eventually, that will be used to remove the costs currently associated with the ? operator once we have inlining working and on by default. Most of the recent bugs with this pass have been due to recent work on the pass; they are not longstanding structural issues.

I'm eager to hear what @oli-obk thinks though.

tmiasko

comment created time in 13 days

Pull request review commentrust-lang/rust

Add a MIR pass manager

 fn test_debugging_options_tracking_hash() {     tracked!(link_only, true);     tracked!(merge_functions, Some(MergeFunctions::Disabled));     tracked!(mir_emit_retag, true);+    tracked!(mir_opt_skip_pass, vec!["ConstProp".to_owned()]);

I think you want

    tracked!(mir_opt_skip_pass, vec![]);
ecstatic-morse

comment created time in 13 days

PullRequestReviewEvent

Pull request review commentrust-lang/rust

Add a MIR pass manager

 const MAX_BLOCKS: usize = 250; pub struct DestinationPropagation;  impl<'tcx> MirPass<'tcx> for DestinationPropagation {-    fn run_pass(&self, tcx: TyCtxt<'tcx>, body: &mut Body<'tcx>) {-        // Only run at mir-opt-level=2 or higher for now (we don't fix up debuginfo and remove-        // storage statements at the moment).

I think it would be good to retain this comment explaining why this optimization is gated on mir-opt-level=2

ecstatic-morse

comment created time in 13 days

PullRequestReviewEvent

Pull request review commentrust-lang/rust

Add a MIR pass manager

+use std::borrow::Cow;++use rustc_middle::mir::{Body, MirPhase};+use rustc_middle::ty::TyCtxt;++use super::{dump_mir, validate};++/// A streamlined trait that you can implement to create a pass; the+/// pass will be named after the type, and it will consist of a main+/// loop that goes over each available MIR and applies `run_pass`.+pub trait MirPass<'tcx> {+    const LEVEL: OptLevel;++    fn name(&self) -> Cow<'_, str> {+        let name = std::any::type_name::<Self>();+        name.rsplit(':').next().unwrap().into()+    }++    fn run_pass(&self, tcx: TyCtxt<'tcx>, body: &mut Body<'tcx>);+}++const UNSOUND_MIR_OPT_LEVEL: u8 = 2;++pub enum OptLevel {+    /// Passes that will run at `-Zmir-opt-level=N` or higher.+    N(u8),++    /// Passes that are known or suspected to cause miscompilations.+    ///+    /// These passes only run if `-Zunsound-mir-opts` is enabled and we are at `mir-opt-level=2` or+    /// above.+    Unsound,

I think the original idea was that unsound-mir-opts would be completely orthogonal to the optimization level. I could imagine us having an optimization that's buggy (thus unsound) but improves compilation performance quite a bit so we'd eventually want it to run at the default opt level.

I'm not sure this matters in practice though and it would probably complicate things a bit more to make the code support that when we don't currently need it.

ecstatic-morse

comment created time in 13 days

PullRequestReviewEvent

pull request commentrust-lang/rust

Upgrade to measureme 9.0.0

This is ready for review.

Just switch perf.rlo to using .8 for the UI rendering and don't worry about breaking it for older commits

That seems ok to me. We typically don't make that many breaking changes to the on-disk format anymore. I think the last one was about 9 months ago.

wesleywiser

comment created time in 13 days

push eventwesleywiser/rust

Nazım Can Altınova

commit sha a313abe3ba989ba4b6c041627c903488886f8559

Manually implement Debug for BTreeMap::{IntoKeys,IntoValues} structs

view details

Nazım Can Altınova

commit sha 456738e3d1ad7dadffaed287d3055ca38b5fa375

Only print values in the Debug of HashMap::ValuesMut struct

view details

Nazım Can Altınova

commit sha c346e89db8a57e15111daa35685a2542d3be7c77

Manually implement Debug for BTreeMap::ValuesMut struct Deriving debug prints all the values including keys. But ValuesMut struct should only print the values.

view details

Nazım Can Altınova

commit sha 8faf550e5f7211188bc9560ae459c155fb1aafdf

Remove the unused bounds from Debug impl of HashMap::{IntoKeys,IntoValues}

view details

Matt Brubeck

commit sha b4b383981abac7ca8aa180c7ae3e28876615b887

Add PartialEq impls for Vec <-> slice

view details

kadmin

commit sha 8894b366fdb976a703fe76010f6e56c591cada1f

Remove error message in specific case In the case that a trait is not implemented for an ADT with type errors, cancel the error.

view details

Cassandra Fridkin

commit sha a009e2838b25df2761093d727d322a59f69d8f68

There isn't a way to pass --remove yet, but you can rm if u like

view details

Alexis Bourget

commit sha 492826ac144666c75d68bc0a0121453ecc08561f

Add a note about the panic behavior of math operations on time objects

view details

CAD97

commit sha 728938346b02a9688c44253c19b15baa7551fd80

Adjust rc::Weak::from_raw to support unsized T

view details

CAD97

commit sha 0c61ce2cf0560577923abafab2e5bfce14516525

?Sized bounds for rc::Weak::as_ptr and friends

view details

CAD97

commit sha 5e7406c9569dce75a042ce079918cf03cfca842a

Adjust sync::Weak::from_raw to support unsized T

view details

CAD97

commit sha 9d9903c5a50bb1f5b5fc3045b86172279eff7d30

Allow Weak::as_ptr and friends for unsized T

view details

CAD97

commit sha 3d07108d3600dff50e564f57dd390337dbe14d55

Add tests for weak into/from raw

view details

Jubilee Young

commit sha 247b73939a619ea4dcb2affbe1c285d20d93a0b8

Move Wrapping<T> ui tests into library

view details

Jubilee Young

commit sha 797cb9526a627c37b9bb9f6be6d3b54789b67c26

Fix to libstd test

view details

Jubilee Young

commit sha ac96f5b39ca7d9fad8571595c476c2db0bce8438

Test and reject out-of-bounds shuffle vectors

view details

Mara Bos

commit sha 84ef603c8400db203fefd714de963c88e5523424

Fix 'FIXME' about using NonZeroU32 instead of u32. It was blocked by #58732 (const fn NonZeroU32::new), which is fixed now.

view details

Without Boats

commit sha 82f5928ca68acceb1d1bd9e2b09554744e4a1dfe

Make RawFd implement the RawFd traits

view details

Without Boats

commit sha acc136ce0a665a32ddf1a16544b6f6d7a7153c30

fix typos

view details

Without Boats

commit sha 3fe279fc658450a3e3140f014554139493674217

spend another CI build to delete a double newline

view details

push time in 13 days

push eventwesleywiser/rust

Wesley Wiser

commit sha 567c575440e61cbe59d8e08ae04a8f673821b1be

Upgrade to measureme 9.0.0

view details

push time in 13 days

created tagrust-lang/measureme

tag9.0.0

Support crate for rustc's self-profiling feature

created time in 13 days

release rust-lang/measureme

9.0.0

released time in 13 days

delete branch wesleywiser/measureme

delete branch : update_versions

delete time in 13 days

push eventrust-lang/measureme

Wesley Wiser

commit sha 9ca58dd016d8c6ac7368128ae4a9fdb4055839d5

Update versions to 9.0

view details

Wesley Wiser

commit sha 28b1eea82d7ed583f21193446b141a3052e816ec

Merge pull request #140 from wesleywiser/update_versions Update versions to 9.0

view details

push time in 13 days

PR opened rust-lang/measureme

Update versions to 9.0
+8 -8

0 comment

8 changed files

pr created time in 13 days

create barnchwesleywiser/measureme

branch : update_versions

created branch time in 13 days

delete branch wesleywiser/measureme

delete branch : update_changelog

delete time in 13 days

push eventrust-lang/measureme

Wesley Wiser

commit sha f10b3f169aef45c8e2fd5e63fa9eddef372b3ebd

Update changelog for 9.0 release

view details

Wesley Wiser

commit sha 460e6c6ccd7c7f54c750e8a110f48487587d8f90

Merge pull request #139 from wesleywiser/update_changelog Update changelog for 9.0 release

view details

push time in 13 days

push eventwesleywiser/measureme

Wesley Wiser

commit sha f10b3f169aef45c8e2fd5e63fa9eddef372b3ebd

Update changelog for 9.0 release

view details

push time in 13 days

PR opened rust-lang/measureme

Update changelog for 9.0 release
+11 -0

0 comment

1 changed file

pr created time in 14 days

push eventwesleywiser/measureme

Wesley Wiser

commit sha 206499186da7826694caf64ce18b7c835a1ca7fb

Update CHANGELOG.md with recent changes

view details

Andreas Jonson

commit sha 2bd753d1f0409f7222d55e6b9c9e44ff912bb05c

make minimum_duration optional in crox

view details

Andreas Jonson

commit sha 7dba6c529b27232c71a3ff27573f7006d5b3755d

make it clear what events that was involved in the panic

view details

Wesley Wiser

commit sha d6440835f30cdc6cfbe8953711bcd7e703e98c79

Merge pull request #62 from andjo403/optional-minimum-duration make minimum_duration optional in crox

view details

Wesley Wiser

commit sha c8c27a9b17db7c863d4d59ecdbc26f3df20e2787

Write some crate level documentation

view details

Michael Woerister

commit sha 7184043817d316130ce5d2909bd8ac8b9cf12a5a

Fix some warnings that prevent measureme being built as a path dependency of the compiler.

view details

Michael Woerister

commit sha 5e0fee4e14db9bcfb434d119ecdb7e23e25aa89c

Deny warnings for the measureme crate.

view details

Wesley Wiser

commit sha a545e467441adff3cfefa8e91e652db9670f30e9

Merge pull request #69 from michaelwoerister/fix-warnings Fix some warnings that prevent measureme being built as a path dependency of the compiler.

view details

Michael Woerister

commit sha 931281df38c525b17e38522e2517e3b4afafc95f

Add RAII-based API for recording events.

view details

Michael Woerister

commit sha c05eb6d94443d0085c022595ffa8cd6e43da6102

Release version 0.4.0.

view details

Wesley Wiser

commit sha 51821282392d5944c62ec59c73dd76535a2344e3

Merge pull request #70 from michaelwoerister/raii-recording Add RAII-based API for recording events and bump version to 0.4.0

view details

Michael Woerister

commit sha b0db6fccfb7b8d0f55d024cba25100c3c1ab7843

measureme: Add a ProfilingDataBuilder that can be used for constructing test data.

view details

Michael Woerister

commit sha 8a6a1e1301a14cb9ef90619ff35b4da0938b220e

Add test cases for summarize::perform_analysis().

view details

Wesley Wiser

commit sha 4b9ec6e092971ab76a62eea895c64a289b61b435

Merge pull request #72 from michaelwoerister/data-builder measureme: Add a ProfilingDataBuilder that can be used for constructing test data.

view details

Andreas Jonson

commit sha 9a863f235c7beb5201e05f7023f25fbb40d5776b

add new tool flamegraph add crate tools_lib to reuse functionality between tools.

view details

Wesley Wiser

commit sha 9d5d1e8e212fe07b12fa547fa90e3ef3221fb175

Merge pull request #73 from andjo403/inferno use Inferno to generate flamegraphs

view details

Andreas Jonson

commit sha 255c802e6810bf61fa2b3e81bde1563d9522b98f

stack collaps events from multiple threads correct

view details

Wesley Wiser

commit sha 47f59faa3005e552477f1d4ea3b1cd709e9d6f5b

Merge pull request #74 from andjo403/collapse_threads stack collaps events from multiple threads correct

view details

Andreas Jonson

commit sha 0fbe21dc437c90e46e84701c497a25c417d45c8f

add description to stack collapse tests

view details

Yuki Okushi

commit sha 3b7c3a81e04319a84edfad9e540faec843c4f603

Fix broken link on README

view details

push time in 14 days

delete branch wesleywiser/measureme

delete branch : multiple_args

delete time in 14 days

push eventrust-lang/measureme

Wesley Wiser

commit sha 90716e884366ed2f661a060c66ae9c15910d835c

Add a way to create an `EventId` with multiple arguments

view details

Wesley Wiser

commit sha 82e76d46dabf5d6d45f2b2078d27725fd06558de

Use `smallvec` to optimize recording multiple event arguments

view details

Wesley Wiser

commit sha 102a48f1e45f2744675c7ea2fe356e7641aa569a

Merge pull request #138 from wesleywiser/multiple_args Add a way to create an `EventId` with multiple arguments

view details

push time in 14 days

PR merged rust-lang/measureme

Add a way to create an `EventId` with multiple arguments

cc @michaelwoerister

+18 -1

2 comments

2 changed files

wesleywiser

pr closed time in 14 days

issue commentrust-lang/measureme

Could not find .mm_profdata file

Just FYI, this is happening because we've made some breaking changes to this crate but rustc hasn't been updated yet to the latest version. We're getting ready to do that now so this should be resolved in the next week hopefully.

fpoli

comment created time in 14 days

pull request commentrust-lang/measureme

Add a way to create an `EventId` with multiple arguments

There's a few tests here

https://github.com/rust-lang/measureme/blob/67920014f359d561294639e4b80c047461078b74/analyzeme/src/event.rs#L147-L177

wesleywiser

comment created time in 14 days

Pull request review commentrust-lang/measureme

Add a way to create an `EventId` with multiple arguments

 impl<'p> EventIdBuilder<'p> {             StringComponent::Ref(arg),         ]))     }++    pub fn from_label_and_args(&self, label: StringId, args: &[StringId]) -> EventId {+        // The capacity is the number of args + the same number for arg separators + the label.+        let mut parts = Vec::with_capacity(args.len() * 2 + 1);

Done! It was already in our dependency tree anyway so it shouldn't hurt our build times.

I went ahead and used 7 instead of 8 since there's no situation where the smallvec will have 8 items in it.

wesleywiser

comment created time in 14 days

PullRequestReviewEvent

push eventwesleywiser/measureme

Wesley Wiser

commit sha 82e76d46dabf5d6d45f2b2078d27725fd06558de

Use `smallvec` to optimize recording multiple event arguments

view details

push time in 14 days

PR opened rust-lang/measureme

Add a way to create an `EventId` with multiple arguments

cc @michaelwoerister

+13 -0

0 comment

1 changed file

pr created time in 15 days

create barnchwesleywiser/measureme

branch : multiple_args

created branch time in 15 days

push eventrust-lang/wg-incr-comp

Aman Arora

commit sha 8d45248b7a7b34b1fcb23e53298c66babc6b77a5

Keep track of meetings

view details

Wesley Wiser

commit sha 1c95a79e05d2836402f04c92de608246a525a2f7

Merge pull request #3 from arora-aman/init_meetings Keep track of meetings

view details

push time in 15 days

PullRequestReviewEvent

push eventrust-lang/measureme

Michael Woerister

commit sha ea03582cc3294ae89ea5193c2851407e3f4f5a8d

Use 5-byte encoding for string-refs so we can use the full 32 bit address space.

view details

Michael Woerister

commit sha ce5c7e72292ff52be897c99966dbd814b813b8fb

Simplify StringTable decoding after switching to 5-byte string ref encoding.

view details

Michael Woerister

commit sha 72cb8fa95cf0b2e4024823e4e845980ebd620fd9

Bump measureme file format version after switching to 5-byte encoding for string refs.

view details

Michael Woerister

commit sha f80765ff8307db8d091190010ea21dc21a0fccdb

Address PR feedback for 5-byte encoding of string refs.

view details

Wesley Wiser

commit sha 67920014f359d561294639e4b80c047461078b74

Merge pull request #137 from michaelwoerister/more-address-space2 Allow StringTable to use the full 32-bit address space

view details

push time in 15 days

PR merged rust-lang/measureme

Allow StringTable to use the full 32-bit address space

This PR changes the encoding for string references within the StringTable to use 5 bytes instead of 4 bytes. This way we can address 4 GB of data instead of 1 GB. The code becomes quite a bit simpler because we can remove a lot of manual bit-fiddling operations.

The only downside of the new approach is that string reference heavy data (e.g. from recording query keys) becomes about 5% larger. Between the larger address space support and the maintainability improvements this seems like an acceptable tradeoff to me. (I also have a half-done implementation of the same functionality without the additional space requirements -- but that turned out to make for such messy de-/serialization code that I abandoned it)

The size of profiling data that is collected without query keys should not be affected by this change.

r? @wesleywiser

+66 -124

0 comment

3 changed files

michaelwoerister

pr closed time in 15 days

PullRequestReviewEvent

Pull request review commentrust-lang/measureme

Allow StringTable to use the full 32-bit address space

 impl<'s> StringComponent<'s> {                 &mut bytes[s.len()..]             }             StringComponent::Ref(string_id) => {-                assert!(string_id.0 == string_id.0 & STRING_ID_MASK);-                let tagged = string_id.0 | (1u32 << 31);--                &mut bytes[0..4].copy_from_slice(&tagged.to_be_bytes());-                &mut bytes[4..]+                assert!(STRING_REF_ENCODED_SIZE == 5);

That seems reasonable to me 👍

michaelwoerister

comment created time in 15 days

PullRequestReviewEvent

pull request commentrust-lang/rust

Move `EarlyOtherwiseBranch` to mir-opt-level 2

Yeah, it would be good to let this live on nightly a bit longer before we enable it by default on beta.

Maybe we're only testing this at opt-level=2 anyways?

Most of our mir-opt tests run at mir-opt-level=3 so they're probably unaffected.

@bors r+

ecstatic-morse

comment created time in 16 days

pull request commentrust-lang/rust

Working branch-level code coverage

Yeah, that's very strange. Let's give it another go:

@bors retry

richkadel

comment created time in 17 days

Pull request review commentrust-lang/rust

New mir-opt pass to simplify gotos with const values

+//! This pass optimizes the following sequence+//! ```rust+//! bb2: {+//!     _2 = const true;+//!     goto -> bb3;+//! }+//!+//! bb3: {+//!     switchInt(_2) -> [false: bb4, otherwise: bb5];+//! }+//! ```+//! into+//! ```rust+//! bb2: {+//!     _2 = const true;+//!     goto -> bb5;+//! }+//! ```++use crate::transform::{MirPass, MirSource};+use rustc_middle::mir::*;+use rustc_middle::ty::TyCtxt;+use rustc_middle::{mir::visit::Visitor, ty::ParamEnv};++use super::simplify::{simplify_cfg, simplify_locals};++pub struct ConstGoto;++impl<'tcx> MirPass<'tcx> for ConstGoto {+    fn run_pass(&self, tcx: TyCtxt<'tcx>, source: MirSource<'tcx>, body: &mut Body<'tcx>) {+        trace!("Running ConstGoto on {:?}", source);+        let param_env = tcx.param_env_reveal_all_normalized(source.def_id());+        let mut opt_finder =+            ConstGotoOptimizationFinder { tcx, body, optimizations: vec![], param_env };+        opt_finder.visit_body(body);+        let should_simplify = !opt_finder.optimizations.is_empty();+        for opt in opt_finder.optimizations {+            let terminator = body.basic_blocks_mut()[opt.bb_with_goto].terminator_mut();+            let new_goto = TerminatorKind::Goto { target: opt.target_to_use_in_goto };+            debug!("SUCCESS: replacing `{:?}` with `{:?}`", terminator.kind, new_goto);+            terminator.kind = new_goto;+        }++        // if we applied optimizations, we potentially have some cfg to cleanup to+        // make it easier for further passes+        if should_simplify {+            simplify_cfg(body);+            simplify_locals(body, tcx);+        }+    }+}++impl<'a, 'tcx> Visitor<'tcx> for ConstGotoOptimizationFinder<'a, 'tcx> {+    fn visit_terminator(&mut self, terminator: &Terminator<'tcx>, location: Location) {+        let mut bailer = || {+            match terminator.kind {+                TerminatorKind::Goto { target } => {+                    // We only apply this optimization if the last statement is a const assignment+                    let last_statement =+                        self.body.basic_blocks()[location.block].statements.last()?;++                    match &last_statement.kind {+                        StatementKind::Assign(box (place, Rvalue::Use(op))) => {+                            let _const = op.constant()?;

Couldn't there be a different block that also jumps to the switch block? Like this?

bb2: {
    _2 = const true;
    goto -> bb4;
}

bb3: {
    _2 = const false;
    goto -> bb4;
}

bb4: {
    switchInt(_2) -> [false: bb4, otherwise: bb5];
}
simonvandel

comment created time in 18 days

PullRequestReviewEvent

pull request commentrust-lang/blog.rust-lang.org

[inside-rust]: Update self-profile blog post for measureme 0.8

I think I agree in the general case, but the only change here is that the file extensions are different and there is only one file instead of three. IMO having two articles that are so similar would be more confusing than helpful.

I think it's possible make these edits in such a way that the commands would work for any version of the tools. Would that be better?

wesleywiser

comment created time in 18 days

pull request commentrust-lang/rust

Upgrade to measureme 0.8.0

Marking this as a draft since we have another measureme breaking change in progress.

wesleywiser

comment created time in 18 days

Pull request review commentrust-lang/rust

New mir-opt pass to simplify gotos with const values

+//! This pass optimizes the following sequence+//! ```rust+//! bb2: {+//!     _2 = const true;+//!     goto -> bb3;+//! }+//!+//! bb3: {+//!     switchInt(_2) -> [false: bb4, otherwise: bb5];+//! }+//! ```+//! into+//! ```rust+//! bb2: {+//!     _2 = const true;+//!     goto -> bb5;+//! }+//! ```++use crate::transform::{MirPass, MirSource};+use rustc_middle::mir::*;+use rustc_middle::ty::TyCtxt;+use rustc_middle::{mir::visit::Visitor, ty::ParamEnv};++use super::simplify::{simplify_cfg, simplify_locals};++pub struct ConstGoto;++impl<'tcx> MirPass<'tcx> for ConstGoto {+    fn run_pass(&self, tcx: TyCtxt<'tcx>, source: MirSource<'tcx>, body: &mut Body<'tcx>) {+        trace!("Running ConstGoto on {:?}", source);+        let param_env = tcx.param_env_reveal_all_normalized(source.def_id());+        let mut opt_finder =+            ConstGotoOptimizationFinder { tcx, body, optimizations: vec![], param_env };+        opt_finder.visit_body(body);+        let should_simplify = !opt_finder.optimizations.is_empty();+        for opt in opt_finder.optimizations {+            let terminator = body.basic_blocks_mut()[opt.bb_with_goto].terminator_mut();+            let new_goto = TerminatorKind::Goto { target: opt.target_to_use_in_goto };+            debug!("SUCCESS: replacing `{:?}` with `{:?}`", terminator.kind, new_goto);+            terminator.kind = new_goto;+        }++        // if we applied optimizations, we potentially have some cfg to cleanup to+        // make it easier for further passes+        if should_simplify {+            simplify_cfg(body);+            simplify_locals(body, tcx);+        }+    }+}++impl<'a, 'tcx> Visitor<'tcx> for ConstGotoOptimizationFinder<'a, 'tcx> {+    fn visit_terminator(&mut self, terminator: &Terminator<'tcx>, location: Location) {+        let mut bailer = || {+            match terminator.kind {+                TerminatorKind::Goto { target } => {+                    // We only apply this optimization if the last statement is a const assignment+                    let last_statement =+                        self.body.basic_blocks()[location.block].statements.last()?;++                    match &last_statement.kind {+                        StatementKind::Assign(box (place, Rvalue::Use(op))) => {+                            let _const = op.constant()?;

We also need to check that place is only ever assigned this value.

simonvandel

comment created time in 18 days

PullRequestReviewEvent

issue commentrust-lang/rust

Segfaults/corruption when reading an enum in release mode

@camelid Yeah

cormacrelf

comment created time in 18 days

pull request commentrust-lang/rust

Working branch-level code coverage

@bors retry

richkadel

comment created time in 18 days

Pull request review commentrust-lang/measureme

Allow StringTable to use the full 32-bit address space

 impl<'s> StringComponent<'s> {                 &mut bytes[s.len()..]             }             StringComponent::Ref(string_id) => {-                assert!(string_id.0 == string_id.0 & STRING_ID_MASK);-                let tagged = string_id.0 | (1u32 << 31);--                &mut bytes[0..4].copy_from_slice(&tagged.to_be_bytes());-                &mut bytes[4..]+                assert!(STRING_REF_ENCODED_SIZE == 5);+                bytes[0] = STRING_REF_TAG;+                &mut bytes[1..5].copy_from_slice(&string_id.0.to_le_bytes());+                &mut bytes[5..]

Oh, I see it's for this. How do you feel about doing this instead?

                &mut bytes[1..STRING_REF_ENCODED_SIZE].copy_from_slice(&string_id.0.to_le_bytes());
                &mut bytes[STRING_REF_ENCODED_SIZE..]
michaelwoerister

comment created time in 18 days

PullRequestReviewEvent

issue commentrust-lang/rust

Segfaults/corruption when reading an enum in release mode

Both repros work correctly on the latest nightly (2020-10-02), so I'm adjusting the tags accordingly.

cormacrelf

comment created time in 18 days

Pull request review commentrust-lang/measureme

Allow StringTable to use the full 32-bit address space

 impl<'s> StringComponent<'s> {                 &mut bytes[s.len()..]             }             StringComponent::Ref(string_id) => {-                assert!(string_id.0 == string_id.0 & STRING_ID_MASK);-                let tagged = string_id.0 | (1u32 << 31);--                &mut bytes[0..4].copy_from_slice(&tagged.to_be_bytes());-                &mut bytes[4..]+                assert!(STRING_REF_ENCODED_SIZE == 5);

Is this the assert we actually want here? (It's trivially true and rustc actually seems to optimize it out before codegen even occurs but I'm not sure why we'd assert that in this method.)

michaelwoerister

comment created time in 18 days

PullRequestReviewEvent
PullRequestReviewEvent

issue commentrust-lang/rust

Segfaults/corruption when reading an enum in release mode

We should leave this issue open to track fixing the optimization but we can remove some of the tags. Once a nightly goes out with the fix, we should also confirm it's no longer repros on the nightly channel.

cormacrelf

comment created time in 19 days

pull request commentrust-lang/rust

Working branch-level code coverage

@bors r+

richkadel

comment created time in 19 days

pull request commentrust-lang/rust

Working branch-level code coverage

@bors r+

richkadel

comment created time in 19 days

PullRequestReviewEvent
PullRequestReviewEvent

pull request commentrust-lang/rust

Working branch-level code coverage

I think that's the crate disambiguator. There's a mention of this at the bottom of this section https://rust-lang.github.io/rfcs/2603-rust-symbol-name-mangling-v0.html#free-standing-functions-and-statics

There's also something weird going on with a parameter being passed to rustc:

-Zdump-mir-dir="/d/a/rust/rust/build/x86_64-pc-windows-msvc/test/run-make-fulldeps/instrument-coverage-mir-cov-html-base/instrument-coverage-mir-cov-html-base"/mir_dump.coverage_of_inner_items

Note the "/ right before mir_dump.coverage_of_inner_items.

richkadel

comment created time in 19 days

pull request commentrust-lang/rust

Disable the SimplifyArmIdentity mir-opt

@bors r=oli-obk rollup=never p=5

Closes an unsound nightly regression.

wesleywiser

comment created time in 19 days

push eventwesleywiser/rust

Tim Vermeulen

commit sha ecacc7534b6bf50205c37c89402565b82d95a257

Add advance_by and advance_back_by

view details

Eric Huss

commit sha c29a29cba099aef1e05c83970decdcbedaabd69a

Defer Apple SDKROOT detection to link time.

view details

Eric Huss

commit sha de725fe56f338a2ceedf5dd9df5bcd86a24f8f53

Remove note about missing ios/tvos targets in platform docs. I misunderstood how this works, and I have fixed the linux builds to support ios/tvos.

view details

Lzu Tao

commit sha d31ca4fc8ede3b4a28abea7df57e01591ee8bb7d

Move Utf8Error to new mod

view details

Lzu Tao

commit sha 5b533fccf39501bd5ca8a436da6f2d8b5999664d

Move traits implementation of str to new mod Also move FromStr trait

view details

Lzu Tao

commit sha 5f0d724e298ee4e19bef4e863c176dd87ef6400f

Move str's impl of iterations to new mod

view details

Lzu Tao

commit sha 90c813a0f0b5042a2bbf2d9ebf27f21acdbc9f77

Move utf-8 validating helpers to new mod

view details

Lzu Tao

commit sha 653b5bf18c962a35bb6d90e13e6681446cc49878

Move functions converting bytes to str to new mod

view details

Lzu Tao

commit sha 37cd79cd323a7f1adcad66205c7855fb6c92f062

Gather all ZST structs of str together

view details

Lzu Tao

commit sha dce7248a39e7f8907cb9c5cfe719f6f63da1fa1f

Remove unneeded tidy comment

view details

Eric Huss

commit sha 7420d7a98044ea1bf727ab369cbc77232dd99694

Move add_apple_sdk out of add_pre_link_args.

view details

Bastian Kauschke

commit sha a4783debe021c6d13ce3cf5167efe98c5baeaa26

const evaluatable: improve `TooGeneric` handling

view details

Bastian Kauschke

commit sha db5b70f193dcc08476ec1bef8dc1863d508eea1e

move candidate_from_obligation_no_cache

view details

Jacob Hughes

commit sha 5829560a68d4bf5e29edfed0f9545d24e87ac3f5

Rename AllocErr to AllocError

view details

Aaron Hill

commit sha 46d8c4bdb7318a50d9df12a7a0b0bcc8efc1846e

Fix recursive nonterminal expansion during pretty-print/reparse check Makes progress towards #43081 In PR #73084, we started recursively expanded nonterminals during the pretty-print/reparse check, allowing them to be properly compared against the reparsed tokenstream. Unfortunately, the recursive logic in that PR only handles the case where a nonterminal appears inside a `TokenTree::Delimited`. If a nonterminal appears directly in the expanded tokens of another nonterminal, the inner nonterminal will not be expanded. This PR fixes the recursive expansion of nonterminals, ensuring that they are expanded wherever they occur.

view details

Aaron Hill

commit sha c6107c53d72250d8c1d41f161ce54648bef4d9d2

Don't fire `const_item_mutation` lint on writes through a pointer Fixes #77321

view details

Eric Huss

commit sha 15c357377864d43f5ee8a5fad61a0388d30b2b86

Update cargo

view details

Dylan MacKenzie

commit sha 4d343a5e59502d62621526af5e204b541dccbb2d

Useful derives on `mir::LocalKind`

view details

Dylan MacKenzie

commit sha 325b7d42ecdfb9236837387a9febb827c1576d66

Continue const-checking after errors when easy This doesn't change any UI test output

view details

Dylan MacKenzie

commit sha 25c7753eeefd3fee0b2529d88ce8362d52f60877

Continue after `impl Trait` in `const fn`

view details

push time in 19 days

more