-
Notifications
You must be signed in to change notification settings - Fork 12.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Internal Compiler Error while compiling diesel #79560
Comments
Have you considered switching to the beta toolchain? |
@matthiaskrgr As I'm the maintainer of diesel that's not an option for me. I think it's obvious that our users expect that diesel will work on any version of rustc + issues occurring on nightly will be in beta in max. 6 weeks + in stable in max. 12 weeks, therefore that wouldn't help in any way. |
According to my bisection, 349b3b3 is the cause. cc @spastorino
|
@rustbot prioritize |
Introduced in PR #79209. |
Labelling |
@weiznich you could make a PR to cargotest adding diesel. I don't think it would be a very controversial add, it exercises a lot more of the compiler than something like |
@rustbot ping cleanup Would be nice to get an MCVE for this one. |
Hey Cleanup Crew ICE-breakers! This bug has been identified as a good cc @AminArria @camelid @chrissimpkins @contrun @DutchGhost @elshize @ethanboxx @h-michael @HallerPatrick @hdhoang @hellow554 @imtsuki @JamesPatrickGill @kanru @KarlK90 @LeSeulArtichaut @MAdrianMattocks @matheus-consoli @mental32 @nmccarty @Noah-Kennedy @pard68 @PeytonT @pierreN @Redblueflame @RobbieClarken @RobertoSnap @robjtede @SarthakSingh31 @shekohex @sinato @smmalis37 @steffahn @Stupremee @tamuhey @turboladen @woshilapin @yerke |
Same issue affects gfx-rs repo. Looking forward to a fix! |
Small repro crate: #[macro_use]
extern crate serde; //1.0.117
macro_rules! formats {
{
$($name:ident,)*
} => {
$(
#[derive(Deserialize)]
pub struct $name;
)*
}
}
formats! { Foo, Bar, } Expanding the |
Backtrace
|
@SNCPlay42 nice!, it would be nice to reduce this further without any external deps. |
Single crate repro: trait Deserializer {
type Error;
}
trait Deserialize {
fn deserialize<D>(_: D) -> D::Error
where D: Deserializer;
}
macro_rules! impl_deserialize {
($name:ident) => {
impl Deserialize for $name {
fn deserialize<D>(_: D) -> D::Error
where D: Deserializer
{
loop {}
}
}
}
}
macro_rules! formats {
{
$($name:ident,)*
} => {
$(
pub struct $name;
impl_deserialize!($name);
)*
}
}
formats! { Foo, Bar, } It seems incremental compilation has to be enabled to repro the ICE, which is why it doesn't repro on playground. |
This results from the fact that the Unfortunately, it turns out that we can have two distinct I'll need to think about how to adjust stable hashing to take this into account |
|
@weiznich @kvark @workingjubilee @matthiaskrgr can you try #80732? where I'm re-introducing the thing that undercover this problem that ended affecting your code bases. |
(See #80732 (comment) for how to try out the PR.) |
@spastorino Thanks for the ping 👍. Diesel builds fine for me using the toolchain build from c963187c6f959417cbb13a33e9eaea4607696fc4. |
… r=nikomatsakis Allow Trait inheritance with cycles on associated types take 2 This reverts the revert of rust-lang#79209 and fixes the ICEs that's occasioned by that PR exposing some problems that are addressed in rust-lang#80648 and rust-lang#79811. For easier review I'd say, check only the last commit, the first one is just a revert of the revert of rust-lang#79209 which was already approved. This also could be considered part or the actual fix of rust-lang#79560 but I guess for that to be closed and fixed completely we would need to land rust-lang#80648 and rust-lang#79811 too. r? `@nikomatsakis` cc `@Aaron1011`
…chenkov Add disambiugator to ExpnData I still need to write a bunch of comments. Opening to see how bad the perf impact is. cc rust-lang#79560
main remaining work item we've identified is to consider adding a build of diesel to CI. I'll follow up on that. |
… r=nikomatsakis Allow Trait inheritance with cycles on associated types take 2 This reverts the revert of rust-lang#79209 and fixes the ICEs that's occasioned by that PR exposing some problems that are addressed in rust-lang#80648 and rust-lang#79811. For easier review I'd say, check only the last commit, the first one is just a revert of the revert of rust-lang#79209 which was already approved. This also could be considered part or the actual fix of rust-lang#79560 but I guess for that to be closed and fixed completely we would need to land rust-lang#80648 and rust-lang#79811 too. r? `@nikomatsakis` cc `@Aaron1011`
The original issue is now fixed and if I'm not wrong @pnkfelix wants to keep this issue open to add a build of diesel to CI. |
This was proposed in rust-lang#79459 and rust-lang#79560. Diesel stresses the trait system implementation quite a lot and there have been various regressions regarding that in the past.
…Mark-Simulacrum Adding diesel to the cargotest suite As discussed in rust-lang#79560 (comment) this adds diesel to the compilers test suite. This is basically a reopened version of rust-lang#79599, but now with the backing of the compiler team. r? `@pnkfelix`
This likely can be closed as diesel is part of the rustc test suite since 99a33b3 |
Thanks @weiznich, closing this issue then. |
Code
Diesel master
Meta
rustc --version --verbose
:Last known working version:
rust 1.50.0-nightly (b48cafd9e 2020-11-25)
(Haven't tried the nightlies in between yet)Error output
As this is the second regression for diesel in less then a week: Would it possible to add diesel to the compiler test suite to prevent breaking diesel again and again. I would like to use my free time for something else than reporting regression bugs every day 😉
@rustbot modify labels: +regression-from-beta-to-nightly
The text was updated successfully, but these errors were encountered: