-
Notifications
You must be signed in to change notification settings - Fork 805
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
Merge main to release/dev17.8 #15611
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Co-authored-by: Tomas Grosup <tomasgrosup@microsoft.com>
…5503) * Add TailCall attribute Move work of Avi Avni to current sources but use a field in cenv instead of a function parameter to pass around * Adjust error number after merge * add two test cases for type members * Don't try to split empty CurriedArgInfos * Add more member tests * seems like we need to build up the env.mustTailCall set earlier in the traversal to have the content ready when checking members which call each other * Fix an error from migrating the old PR to current sources. * As cenv is mutated in loops, doing "with" copies isn't that great as the failing CI shows. Making isTailCall also mutable is error prone as one has to switch back to orig values in many places. So refactor to use a flag like Avi did. This should fix the side effects (shown by the failing CI) and more tailrec specific tests * update baselines for FSharp.Core to include TailCallAttribute * warn for rec call in binding, still very WIP * - improve check for problematic bindings to tailcall attributed functions - add tests * improve seq support * add language version flag * improve tests a bit * add tests for async expressions * add tests for module rec * Improve handling of ModuleOrNamespaceContents.TMDefDo and extend testing * suppress some invalid warnings by keeping track of ranges that are annotated with [<TailRec>] * fix build * use Stamp instead of LogicalName as the Map key * fix error number after merge * remove TailCall check code from PostInferenceChecks.fs * Add new file TailCallChecks.fs to focus on tail call checks * first steps to remove limits calculations * remove last bits of limits * don't bother with attribute checking here * remove more unneeded code * small optimization * Adjust error number after main merge * add TailCallChecks.fs to .fantomasignore * remove last non-tailrec error reporting from dedicated file * - add fsi file - trim down some more * simplify * Remove resumable checks * remove external handling * remove isInAppExpr * remove returnScope * remove boundTyparNames * remove argVals from env * let's drop quote and reflect, too, for now * remove usesQuotations * get rid of range-based approach, collect TailRec-attributed bindings upfront and just traverse these * fold instead of mutate * format * make tests more challenging * do the TailCall checks during the main traversal * WIP: move TailCallChecks into main3 after optimization * format * let TailCallChecks.fs be formatted * bring over support for TyLambda bodies from other branch * adjust expected errors * fix the doubled error messages * fix seq analysis * cleanup * cover some more rec constructs * remove commented code from tests * Rename the type "IsTailCall" to "TailCall" * model boolean as dedicated type "TailCallReturnType" * remove unused members of type "PermitByRefExpr" * remove unused mustTailCallExprs from env * add comment to explain origin of PermitByRefExpr * First stab at support for continuation-passing-style * - refactor approach for CPS support to be much simpler - more CPS tests * one env ought to be enough for everyone * report time for "TailCall Checks" * clean up unused function args * improve some comments and names * add API docs for TailCall attribute * add xml comment for TailCallChecks.CheckImplFile * Update src/FSharp.Core/prim-types.fsi Co-authored-by: Petr <psfinaki@users.noreply.github.com> * remove some superfluous stuff from CheckLambdas * More detailed comment * extend test with an inner class type * optimize * update xlf * adjust error messages after xlf update * revert white space changes that sneaked in during rebase --------- Co-authored-by: Petr <psfinaki@users.noreply.github.com>
* internalerror with MakeValueAssign fixed? * Add in optional setting for solution-wide background analysis * fix * telementry - lang service started will report background analysis flag
201851d
to
a8d2a9c
Compare
KevinRansom
approved these changes
Jul 17, 2023
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is an automatically generated pull request from main into release/dev17.8.
Once all conflicts are resolved and all the tests pass, you are free to merge the pull request. 🐯
Troubleshooting conflicts
Identify authors of changes which introduced merge conflicts
Scroll to the bottom, then for each file containing conflicts copy its path into the following searches:
Usually the most recent change to a file between the two branches is considered to have introduced the conflicts, but sometimes it will be necessary to look for the conflicting lines and check the blame in each branch. Generally the author whose change introduced the conflicts should pull down this PR, fix the conflicts locally, then push up a commit resolving the conflicts.
Resolve merge conflicts using your local repo
Sometimes merge conflicts may be present on GitHub but merging locally will work without conflicts. This is due to differences between the merge algorithm used in local git versus the one used by GitHub.
git fetch --all git checkout -t upstream/merges/main-to-release/dev17.8 git reset --hard upstream/release/dev17.8 git merge upstream/main # Fix merge conflicts git commit git push upstream merges/main-to-release/dev17.8 --force