Uh oh!
There was an error while loading. Please reload this page.
Fix17713 - Reverting PR - 17649 - Make the interaction between #line and #nowarn directives consistent - #17724
Conversation
|
Uh oh!
There was an error while loading. Please reload this page.
vzarytovskii
commented
Sep 13, 2024
FYI @Martin521, it was blocking our sourcebuild pipeline (Kevin tried to fix it yesterday, but no luck apparently). |
How can I reproduce this? |
KevinRansom
commented
Sep 16, 2024
@Martin521 Build the bootstrapper with an F# 9.0 compiler with these changes. |
Ok, if that is a requirement, then this fix can never be done in one step. EDIT: It can be done in one step, with just one additional #nowarn in fsyaccpars. See below. |
This comment was marked as outdated.
This comment was marked as outdated.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
|
Actually, with just this additional |
KevinRansom
commented
Sep 16, 2024
@Martin521 we are going with the reversion for now, we need to have a fuller discussion on how we want nowarn to work if we decide to change it. Here is my discussion of why I believe reversion is the way to go right now: #17748 (comment) |
Martin521
commented
Sep 16, 2024
The "scoped nowarn" RFC discussion thread might be an appropriate place for a fuller discussion. |
vzarytovskii
commented
Sep 16, 2024
Yeah, we should continue there. @KevinRansom@T-Gro we should discuss it on some of the upcoming triage sessions |
ellahathaway
commented
Sep 16, 2024
Please make sure that this flows into .NET 9.0. I believe fsharp's |
ellahathaway
commented
Oct 8, 2024
@dotnet/fsharp - This change needs to be ported into .NET 9. What is the best way to get this backported to the |
This language feature caused bootstrapping issues for this repo introducing additional unintended warnings when building the F# bootstrapper with F# 9.0.
This was first noticed by the sourcebuildteam who have a strict bootstrapping requirement for delivery to Linux distributions.
Additionally the langversion:8 implementation produced different error output from the 8.0.* version of the compiler.
The way that we use #line and # n filename in the product is quite extensive and fragile. It is clear that we need a more robust solution highlighted by the issue the original PR was intended to solve, this has highlighted that we do need to address the consistency issue. Everyone on the team agreed that the current implementation that we are going back to is not ideal, but this reversion allows us to identify a better design for a fix.
The warnings by bootstrapping with F# 9.0 produced are: