Stream: t-compiler

Topic: beta regressions 2019-06-06


nikomatsakis (Jun 06 2019 at 15:04, on Zulip):

We should discuss the beta regressions -- but I have another meeting just now -- I was thinking I might put some more energy into diagnosing the things in the list in ~1 hour.

nikomatsakis (Jun 06 2019 at 16:36, on Zulip):

Going to dig into some of this a bit here

simulacrum (Jun 06 2019 at 16:38, on Zulip):

I've compiled most of them locally so feel free to ping me if you have questions, I spent 5-10 minutes per regression trying to investigate a little

nikomatsakis (Jun 06 2019 at 16:41, on Zulip):

@simulacrum ok -- the main thing I'm wondering about is whether the rustdoc tests represent "run more tests" or "code changed behavior"

simulacrum (Jun 06 2019 at 16:41, on Zulip):

My impression was code changed behavior -- possibly due to different parsing though

simulacrum (Jun 06 2019 at 16:41, on Zulip):

However @QuietMisdreavus indicated that nightly has everything mostly fixed (i.e., no ICEs) so in that regard we might just skip over them

nikomatsakis (Jun 06 2019 at 16:42, on Zulip):

yeah, you said that before, and you're probably right, though my searching of the logs seemed to suggest it was some new test

nikomatsakis (Jun 06 2019 at 16:42, on Zulip):

well, these weren't ICEs, right?

simulacrum (Jun 06 2019 at 16:42, on Zulip):

hm, some of the rustdoc bugs were

nikomatsakis (Jun 06 2019 at 16:42, on Zulip):

yes, some were

nikomatsakis (Jun 06 2019 at 16:42, on Zulip):

it's great if those are fixed! :heart:

simulacrum (Jun 06 2019 at 16:42, on Zulip):

I guess I'm not sure which one you're referring to :)

nikomatsakis (Jun 06 2019 at 16:45, on Zulip):

regression: doctest failure display-as-0.4.4 #61562

nikomatsakis (Jun 06 2019 at 16:45, on Zulip):

the newer logs have:

[INFO] [stdout] test src/lib.rs - (line 193) ... FAILED

nikomatsakis (Jun 06 2019 at 16:46, on Zulip):

but the older logs don't have "line 193" anywhere

simulacrum (Jun 06 2019 at 16:47, on Zulip):

ah, okay

simulacrum (Jun 06 2019 at 16:47, on Zulip):

yeah that's probably a markdown parser bug

simulacrum (Jun 06 2019 at 16:47, on Zulip):

but maybe not

simulacrum (Jun 06 2019 at 16:48, on Zulip):

if it is nightly should work

simulacrum (Jun 06 2019 at 16:49, on Zulip):

hm, okay, so nightly fails

nikomatsakis (Jun 06 2019 at 16:49, on Zulip):

line 193 is right in the middle

nikomatsakis (Jun 06 2019 at 16:50, on Zulip):
//! ```
//! Now to put all this together, we'll need some rust code.
//!
//! ```
//! use display_as::{DisplayAs, HTML, format_as, with_template};
//! struct Student { name: &'static str };
//! #[with_template("student.html")]
//! impl DisplayAs<HTML> for Student {}
//! <-- LINE 193
//! struct Class { coursename: &'static str, coursenumber: usize, students: Vec<Student> };
//! #[with_template("class.html")]
//! impl DisplayAs<HTML> for Class {}
nikomatsakis (Jun 06 2019 at 16:50, on Zulip):

see the <-- LINE 193?

simulacrum (Jun 06 2019 at 16:50, on Zulip):

so probably also some line-offset/span bugs

nikomatsakis (Jun 06 2019 at 16:52, on Zulip):

yeah -- @QuietMisdreavus / @Guillaume, does that ring any bells? :point_up:

the test is cited as being on line 193, which seems to be in the middle of a doc comment...

nikomatsakis (Jun 06 2019 at 16:52, on Zulip):

I'm going to investigate

regression: trait no longer implemented #61563

a bit

simulacrum (Jun 06 2019 at 16:52, on Zulip):

stable:

test src/lib.rs -  (line 113) ... ok
test src/lib.rs -  (line 149) ... ignored
test src/lib.rs -  (line 100) ... ok
test src/lib.rs -  (line 127) ... ok
test src/html.rs - display_floats_as (line 78) ... ok
test src/lib.rs -  (line 58) ... ok
test src/lib.rs -  (line 72) ... ok
test src/lib.rs -  (line 85) ... ok

beta:

running 12 tests
test src/lib.rs -  (line 104) ... ok
test src/lib.rs -  (line 156) ... ignored
test src/lib.rs -  (line 178) ... ignored
test src/lib.rs -  (line 183) ... ignored
test src/lib.rs -  (line 188) ... ignored
test src/lib.rs -  (line 118) ... ok
test src/html.rs - display_floats_as (line 78) ... ok
test src/lib.rs -  (line 133) ... ok
test src/lib.rs -  (line 59) ... ok
test src/lib.rs -  (line 74) ... ok
test src/lib.rs -  (line 88) ... ok
test src/lib.rs -  (line 193) ... FAILED
simulacrum (Jun 06 2019 at 16:53, on Zulip):

it looks like all the line numbers changed on beta

nikomatsakis (Jun 06 2019 at 16:54, on Zulip):

hmm odd

simulacrum (Jun 06 2019 at 16:54, on Zulip):

plus new ones but still

nikomatsakis (Jun 06 2019 at 16:57, on Zulip):

@simulacrum I have a question about #61563 --

nikomatsakis (Jun 06 2019 at 16:57, on Zulip):

I'm trying to reproduce but I'm seeing different results basically

nikomatsakis (Jun 06 2019 at 16:57, on Zulip):

specifically, with beta and nightly, when I run cargo build everything works. cargo test gets error, but different errors.

nikomatsakis (Jun 06 2019 at 16:58, on Zulip):

same errors as stable

nikomatsakis (Jun 06 2019 at 16:58, on Zulip):

perhaps i"m missing some features

nikomatsakis (Jun 06 2019 at 16:58, on Zulip):

I get stuff like this

error[E0277]: the trait bound `rand_hc::Hc128Rng: rand_core::SeedableRng` is not satisfied
   --> /home/nmatsakis/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.6.5/src/deprecated.rs:282:5
    |
282 | /     fn from_seed(seed: Self::Seed) -> Self {
283 | |         StdRng(rngs::StdRng::from_seed(seed))
284 | |     }
    | |_____^ the trait `rand_core::SeedableRng` is not implemented for `rand_hc::Hc128Rng`
simulacrum (Jun 06 2019 at 16:59, on Zulip):

that's because rand is broken

simulacrum (Jun 06 2019 at 16:59, on Zulip):

we're seeing that across ~all of Rust

simulacrum (Jun 06 2019 at 16:59, on Zulip):

I'm... not sure how to stop that

nikomatsakis (Jun 06 2019 at 16:59, on Zulip):

uh

simulacrum (Jun 06 2019 at 17:00, on Zulip):

https://github.com/rust-random/rand/issues/818

nikomatsakis (Jun 06 2019 at 17:00, on Zulip):

Is...this my fault? :)

nikomatsakis (Jun 06 2019 at 17:00, on Zulip):

That seems like something we should try to fix...

Pietro Albini (Jun 06 2019 at 17:00, on Zulip):

all of rust's ci is broken as well

nikomatsakis (Jun 06 2019 at 17:01, on Zulip):

because rand doesn't build?

Pietro Albini (Jun 06 2019 at 17:01, on Zulip):

yep

nikomatsakis (Jun 06 2019 at 17:01, on Zulip):

did this just start very recently?

simulacrum (Jun 06 2019 at 17:01, on Zulip):

I'm not sure why it's not been yanked or anything yet but basically if you don't have a lockfile (which cargo uploads don't) you're out of luck as of ~30ish minutes ago?

simulacrum (Jun 06 2019 at 17:01, on Zulip):

maybe an hour

nikomatsakis (Jun 06 2019 at 17:02, on Zulip):

so maybe it's just that the newest upload is borked somehow?

nikomatsakis (Jun 06 2019 at 17:02, on Zulip):

it also doesn't build on stable

nikomatsakis (Jun 06 2019 at 17:03, on Zulip):

/me wonders how that got uploaded

nikomatsakis (Jun 06 2019 at 17:03, on Zulip):

cargo publish --no-verify maybe

nikomatsakis (Jun 06 2019 at 17:04, on Zulip):

(ok, anyway, I see the ticket)

nikomatsakis (Jun 06 2019 at 17:04, on Zulip):

well, that's a drag

nikomatsakis (Jun 06 2019 at 17:06, on Zulip):

I guess I'll just wait until this is resolved, since I couldn't get the workarounds to work (seems like @dhardy is all over this)

Pietro Albini (Jun 06 2019 at 17:06, on Zulip):

seems yanking is the way to go

nikomatsakis (Jun 06 2019 at 17:06, on Zulip):

yeah that seems to be the latest

QuietMisdreavus (Jun 06 2019 at 17:12, on Zulip):

i haven't seen #61562 before, i'll look more closely after lunch

GuillaumeGomez (Jun 06 2019 at 17:27, on Zulip):

Doesn't remind me anything either. :-/

simulacrum (Jun 06 2019 at 17:29, on Zulip):

@nikomatsakis rand should be fixed now

QuietMisdreavus (Jun 06 2019 at 19:21, on Zulip):

i have a sinking suspicion that #61562 is also fallout from the pulldown upgrade, and that that test hadn't been run prior to that

simulacrum (Jun 06 2019 at 19:21, on Zulip):

@QuietMisdreavus it's also broken on nightly though?

QuietMisdreavus (Jun 06 2019 at 19:21, on Zulip):

i'm going to build a couple compilers to test before/after of #60140

simulacrum (Jun 06 2019 at 19:22, on Zulip):

though I guess maybe not all pulldown bugs are fixed

QuietMisdreavus (Jun 06 2019 at 19:22, on Zulip):

@simulacrum IMO the fact that the test is failing is by design

QuietMisdreavus (Jun 06 2019 at 19:22, on Zulip):

it could never pass on its own

simulacrum (Jun 06 2019 at 19:22, on Zulip):

@QuietMisdreavus that might be recent enough for pre-existing builds

QuietMisdreavus (Jun 06 2019 at 19:22, on Zulip):

what's the tool to install master builds?

QuietMisdreavus (Jun 06 2019 at 19:23, on Zulip):

wait, found it https://github.com/kennytm/rustup-toolchain-install-master

QuietMisdreavus (Jun 06 2019 at 19:31, on Zulip):

okay yeah, it's the pulldown upgrade

simulacrum (Jun 06 2019 at 19:31, on Zulip):

so just a bug that's not fixed by the 0.5.2 bump?

QuietMisdreavus (Jun 06 2019 at 19:31, on Zulip):

the upgrade caused it to detect all the code blocks that are currently only filled with #![doc(include)] attributes, since those don't have blank lines between them, and because of that it was able to keep parsing to the last code block

QuietMisdreavus (Jun 06 2019 at 19:31, on Zulip):

i don't think it's our bug

QuietMisdreavus (Jun 06 2019 at 19:32, on Zulip):

i think the test is bad

QuietMisdreavus (Jun 06 2019 at 19:32, on Zulip):

(the test in display-as, i mean)

QuietMisdreavus (Jun 06 2019 at 19:36, on Zulip):

the test wasn't even running before, but it was clearly meant to

QuietMisdreavus (Jun 06 2019 at 19:36, on Zulip):

so the bug was that it wasn't being detected before

QuietMisdreavus (Jun 06 2019 at 19:39, on Zulip):

like, here's the doctest from display-as: https://github.com/droundy/display-as/blob/6ada57815a2a1c6be784cd8badd9e9c9d60ec445/display-as/src/lib.rs#L189-L217

QuietMisdreavus (Jun 06 2019 at 19:40, on Zulip):

the code is using class.html as a template: https://github.com/droundy/display-as/blob/6ada57815a2a1c6be784cd8badd9e9c9d60ec445/display-as/src/class.html

QuietMisdreavus (Jun 06 2019 at 19:40, on Zulip):

this test can never pass as-is because of the comment present in the doctest

simulacrum (Jun 06 2019 at 19:41, on Zulip):

so to an extent both a crate bug (no ignore on the test) and also a regression

QuietMisdreavus (Jun 06 2019 at 19:42, on Zulip):

right, the regression in this case is that doctests that used to be ignored by a bug in pulldown are now being run

QuietMisdreavus (Jun 06 2019 at 19:43, on Zulip):

i'm... not sure how to handle that >_>

simulacrum (Jun 06 2019 at 19:44, on Zulip):

I think if there's not too many cases of it and because doc tests don't affect downstream users we can probably just ping the author and let it slide

simulacrum (Jun 06 2019 at 19:45, on Zulip):

otherwise we'd want to do the same migration path as we had with hoedown -> pulldown but I'd really rather not

QuietMisdreavus (Jun 06 2019 at 19:49, on Zulip):

ah, right, we have gone through this process before

nikomatsakis (Jun 10 2019 at 20:15, on Zulip):

it seems like the fallout is relatively limited

nikomatsakis (Jun 10 2019 at 20:16, on Zulip):

thanks @QuietMisdreavus for the investigation!

Last update: Nov 22 2019 at 05:05UTC