-
Notifications
You must be signed in to change notification settings - Fork 825
Remove inline IL for public 'not' function #9473
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
Conversation
For my understanding, this looks like a giant change for one line of code, does this have something to do with specific IL tests, that are generated from time to time to prevent accidental IL regressions? |
Ugh, looks like getting these ExprTests to pass locally doesn't mean anything in a CI environment. These tests are so hard to understand @abelbraaksma Yes, the huge changes are about IL that was generated many years ago and how it needs to change given that |
These FSharpQA tests are impossible to update or get to pass. I don't know how to progress with this PR. |
Ouch, sounds painful. I doubt I can help, but since it was my report to begin with, I can give it a shot (likely to strand where you stranded, but then at least we're both frustrated :p) |
From a cursory look at the tests, it appears it's the same set that I ran into for updating |
Given some other changes to these files, where similar seemingly unrelated changes had to go in just to get the tests to pass, I'm certain now that whatever the tool FSharpQA tests use to generate those baseline tools is very much out of date and shouldn't be considered to greatly. @KevinRansom sorry to call upon you here, but I have absolutely no clue how to get this FSharpQA test to pass. |
@cartermp, will take a look. I remember looking earlier and wondering if it was a real issue, which worried me cos I like the fix. |
Oops, I forgot that you continued from #9434 here. I've meanwhile taken a slightly different approach which leaves the @cartermp This new PR is green now: #9715, maybe close this in favor of that one? About this:
Some of those problems are now alleviated with #9622 (mainly by giving per-line feedback and a more predictable compile-run-cleanup cycle). But some of the failures you see in CI but not locally are caused by the fact that CI runs some tests with old FSharp.Core.dll (meaning: change the IL generated by FSharp.Core, update the tests, this will then fail when the same test is run against the 4.5 version of the lib). I ran into something similar here (#9549) where I ultimately decided to disable some tests based on what FSharp.Core version is loaded. Once we go over this again with @vzarytovskii, I hope to come to a cleaner way of writing / running these. |
Closing in favor of #9715 |
Fixes #9433
The current implementation of
not
gets funky when you pass in a call toisNull
for a reference type. Probably other quirks too. The following benchmark shows the effect:I get these timings against .NET 5:
And these for net48: