You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
nalgebra and differential-dataflow regressed #42003
Compiling nalgebra v0.10.1
error[E0391]: unsupported cyclic reference between types/traits detected
--> C:\Users\John\.cargo\registry\src\github.life-white.uk-1ecc6299db9ec823\nalgebra-0.10.1\src\structs\dmatrix.rs:148:5
|
148 | mij: [N; 2 * 2],
| ^^^^^^^^^^^^^^^^^ cyclic reference
|
note: the cycle begins when processing `structs::dmatrix::DMatrix2::mij`...
--> C:\Users\John\.cargo\registry\src\github.life-white.uk-1ecc6299db9ec823\nalgebra-0.10.1\src\structs\dmatrix.rs:148:5
|
148 | mij: [N; 2 * 2],
| ^^^^^^^^^^^^^^^^^
note: ...which then requires const-evaluating `structs::dmatrix::DMatrix2::{{initializer}}`...
--> C:\Users\John\.cargo\registry\src\github.life-white.uk-1ecc6299db9ec823\nalgebra-0.10.1\src\structs\dmatrix.rs:148:16
|
148 | mij: [N; 2 * 2],
| ^^^^^
note: ...which then requires processing `structs::dmatrix::DMatrix2::{{initializer}}`...
--> C:\Users\John\.cargo\registry\src\github.life-white.uk-1ecc6299db9ec823\nalgebra-0.10.1\src\structs\dmatrix.rs:148:16
|
148 | mij: [N; 2 * 2],
| ^^^^^
note: ...which then requires coherence checking all impls of trait `std::ops::Mul`...
note: ...which then requires processing `structs::dmatrix::DMatrix`...
--> C:\Users\John\.cargo\registry\src\github.life-white.uk-1ecc6299db9ec823\nalgebra-0.10.1\src\structs\dmatrix.rs:20:1
|
20 | / pub struct DMatrix<N> {
21 | | nrows: usize,
22 | | ncols: usize,
23 | | mij: Vec<N>
24 | | }
| |_^
note: ...which then requires computing the variances for items in this crate...
= note: ...which then again requires processing `structs::dmatrix::DMatrix2::mij`, completing the cycle.
differential-dataflow:
Compiling differential-dataflow v0.0.3
error: no associated item named `new` found for type `timely_sort::Sorter<_>` in the current scope
--> C:\Users\John\.cargo\registry\src\github.life-white.uk-1ecc6299db9ec823\differential-dataflow-0.0.3\src\operators\arrange.rs:122:26
|
122 | let mut sorter = LSBRadixSorter::new();
| ^^^^^^^^^^^^^^^^^^^
|
= help: items from traits can only be used if the trait is in scope; the following trait is implemented but not in scope, perhaps add a `use` for it:
= help: candidate #1: `use timely_sort::RadixSorterBase;`
error: no associated item named `new` found for type `timely_sort::Sorter<_>` in the current scope
--> C:\Users\John\.cargo\registry\src\github.life-white.uk-1ecc6299db9ec823\differential-dataflow-0.0.3\src\operators\arrange.rs:222:26
|
222 | let mut sorter = LSBRadixSorter::new();
| ^^^^^^^^^^^^^^^^^^^
|
= help: items from traits can only be used if the trait is in scope; the following trait is implemented but not in scope, perhaps add a `use` for it:
= help: candidate #1: `use timely_sort::RadixSorterBase;`
error: no associated item named `new` found for type `timely_sort::Sorter<_>` in the current scope
--> C:\Users\John\.cargo\registry\src\github.life-white.uk-1ecc6299db9ec823\differential-dataflow-0.0.3\src\operators\consolidate.rs:110:70
|
110 | let entry = inputs.entry_or_insert(index.time(), || (LSBRadixSorter::new(), 0, default_threshold));
| ^^^^^^^^^^^^^^^^^^^
|
= help: items from traits can only be used if the trait is in scope; the following trait is implemented but not in scope, perhaps add a `use` for it:
= help: candidate #1: `use timely_sort::RadixSorterBase;`
Note that compiling with RUST_LOG is not really a supported workflow, though the current setup is generating a lot of cycle errors in those cases and needs to be fixed.
differential-dataflow is a completely different error, and a much more serious one. Either traits-in-scope is broken or there's an inherent method that's not found.
A bit surprising that we've not seen this in cargobomb runs or other things. I'm inclined to believe that was a bug in that release of differential-dataflow -- but hard to say without closer investigation
.
cc @frankmcsherry -- any thoughts? we're looking at a (potential, unverified) regression in v0.0.3 of differential-dataflow (I see you're up to 0.1.0 now)
When PartialOrd was ret-conned to mean "the same as Ord, if Ord exists" all correctness for 0.0.3 went out the window. The behavior of sorting changed for types where partial_cmp was not identical to cmp, and I'm sure that there was fall-out.
Ah, sorry. The reason I haven't been tracking it is for that reason. The reason there is a compile error above is because the timely_sort crate had a breaking change. It got fixed in master, but can't fix 0.0.3.
Activity
est31 commentedon May 15, 2017
broken in which way? do you have an error message or ICE you can share with us?
Zoxc commentedon May 15, 2017
nalgebra:
differential-dataflow:
TimNN commentedon May 15, 2017
Looks like a duplicate of #41936, hopefully fixed by #41937 once it lands.
frewsxcv commentedon Jun 4, 2017
Is this fixed now?
Zoxc commentedon Jun 4, 2017
I think
nalgebrais fixed now. It may not compile withRUST_LOG=rustc_typeck::check::regionckdue to that failing withrustc_serialize.nikomatsakis commentedon Jun 5, 2017
What about differential-dataflow ?
Note that compiling with
RUST_LOGis not really a supported workflow, though the current setup is generating a lot of cycle errors in those cases and needs to be fixed.Zoxc commentedon Jun 6, 2017
nalgebracompiles onrustc 1.19.0-nightly (d015610db 2017-06-05),differential-dataflowgives the same error.nikomatsakis commentedon Jun 7, 2017
OK. Regression. Nominating.
nikomatsakis commentedon Jun 7, 2017
cc @rust-lang/compiler -- regression, anybody have any ideas?
eddyb commentedon Jun 7, 2017
differential-dataflowis a completely different error, and a much more serious one. Either traits-in-scope is broken or there's an inherent method that's not found.est31 commentedon Jun 8, 2017
I've tried to bisect the regression, but all I could find was rust compiler versions where the compilation failed.
Therefore, @Zoxc can you please point to a rustc version where compilation works?
Zoxc commentedon Jun 8, 2017
It did work on a crater run on top of 5aaa606. That looks pretty close to 1.16 stable though.
Zoxc commentedon Jun 8, 2017
Version
0.0.3was published oncrates.ioJun 7, 2016, so it should probably work on rust 1.9.est31 commentedon Jun 8, 2017
Still fails compilation on 1.9: http://paste.ubuntu.com/24804993/
And on 1.8 as well.
Zoxc commentedon Jun 8, 2017
I built 5aaa606 locally and it doesn't work there either :/
nikomatsakis commentedon Jun 8, 2017
A bit surprising that we've not seen this in cargobomb runs or other things. I'm inclined to believe that was a bug in that release of differential-dataflow -- but hard to say without closer investigation
.
cc @frankmcsherry -- any thoughts? we're looking at a (potential, unverified) regression in v0.0.3 of differential-dataflow (I see you're up to 0.1.0 now)
nikomatsakis commentedon Jun 8, 2017
triage: P-high
I'm marking this P-high, but mostly because I want to try and confirm if there has been a regression here or not (hence no assignee)
frankmcsherry commentedon Jun 8, 2017
When
PartialOrdwas ret-conned to mean "the same asOrd, ifOrdexists" all correctness for 0.0.3 went out the window. The behavior of sorting changed for types wherepartial_cmpwas not identical tocmp, and I'm sure that there was fall-out.nikomatsakis commentedon Jun 8, 2017
@frankmcsherry hmm, ok. This is a compilation error though.
frankmcsherry commentedon Jun 8, 2017
Ah, sorry. The reason I haven't been tracking it is for that reason. The reason there is a compile error above is because the timely_sort crate had a breaking change. It got fixed in master, but can't fix 0.0.3.
nikomatsakis commentedon Jun 8, 2017
@frankmcsherry thanks! :) I'm going to close this bug then.