-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Fix MT separate compilation bug (bis) #18461
Conversation
Looking at pos/i15183. It's a test using separate compilation. With my change it stopped compiling, but with or without my change it doesn't compile in joint compilation either. So my change made it consistently not compile. The failure is in whether should use? Tuple.Map[H *: T, Decoder]
to find: Tuple.Map[(Local.type, Prod.type), Decoder]
should use? Decoder[H] *: Tuple.Map[T, Decoder]
to find: (Decoder[Local.type], Decoder[Prod.type])
should use? Tuple.Map[T, Decoder]
to find: (Decoder[Prod.type]) |
@dwijnand is there a solution in sight? |
I went down the road for a long time (weeks) trying to address the general problem of making Typer and Unpickler simplify and replace types in exactly the same way - and that got very complicated. I'm taking a break on this PR, but I haven't given up on fixing this issue yet. |
Is this fixed under the new match type implementation? If so, I think it is best to revert back to what worked for 3.3.0 and leave that as is for 3.3.x. |
The "new match type implementation" is only about match types reduction, in terms of whether they reduce or not and to what, in a more constrained fashion than we currently do (meaning, things that one would hope are reduced stop reducing). But it says nothing about whether those reductions should be further simplified or normalised (which was what the original #18073 was about), or whether typer and/or unpickler should simplify and overwrite their tree types (which was what the previous #18398 and this PR are about). I don't think we can revert back to what worked in 3.3.0 as we'd be causing a regression in #16596, for example. |
3.2.x was not an LTS release. |
Replaced with #18786. |
Like I said in #18398, there are several factors involved, and I'd be happy to fix one or more of those causes, in alternative to hot-fixing specific tasty trees.