Stream: t-compiler

Topic: regression: overflow evaluating, Send/Sync?


Jake Goulding (Jun 06 2019 at 14:45, on Zulip):

(presumably due to PR #60444; the running hypothesis that niko and I share is that most instances of this are cases where the input code was unsound, and thus the fallout is expected. I don't think we can readily warning-cycle this change.)

@pnkfelix I don't see how my code could have been unsound...

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

@Jake Goulding the code may be just fine, but the trait resolution algorithm was unsound

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

i.e., it permitted things that could be used to go wrong

nikomatsakis (Jun 06 2019 at 14:55, on Zulip):

that said, if you have a minimized version of your code...

Jake Goulding (Jun 06 2019 at 14:56, on Zulip):

I rather assume that the problem is that the structs are very deep, so minimal might be hard

https://crater-reports.s3.amazonaws.com/beta-1.36-2/beta-2019-05-30/reg/fuzzy-pickles-0.1.0/log.txt

Jake Goulding (Jun 06 2019 at 14:57, on Zulip):

fuzzy-pickles is a Rust parser, so the AST types are nested

Jake Goulding (Jun 06 2019 at 14:59, on Zulip):

I could try with something like struct A0(A1); repeated for N=500; or such.

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

I think fuzzy-pickles did work once we increased the overflow counter?

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

still, hmm, I am looking at some improved caching,

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

I wonder if that might actually affect the value of the recursion counter too

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

I suppose it would

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

if only we had a chalk like system which has no recursion counter

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

/me someday

Jake Goulding (Jun 06 2019 at 15:03, on Zulip):

My gut says that some caching would help, or an iterative solution instead of recursive?

pnkfelix (Jun 06 2019 at 15:08, on Zulip):

I think fuzzy-pickles did work once we increased the overflow counter?

yes, that is what I found at least.

Jake Goulding (Jun 06 2019 at 15:10, on Zulip):

I added a repro, but 63 nested structs will trigger the overflow

Jake Goulding (Jun 06 2019 at 15:12, on Zulip):

In my case, I also have things like Vec which count as 3 types

Last update: Nov 22 2019 at 04:45UTC