Skip to content

Conversation

@dawedawe
Copy link
Contributor

@dawedawe dawedawe commented May 25, 2023

The last time this was tried it didn't really work out.
But as there is an RFC it should be worth to work on.
So, to test the waters, here's a very early draft based on the work of @AviAvni
It's doing pretty much the same but uses a field in cenv instead of a function parameter to pass around. collects the attributed vals in a different way.

There's still a lot to do and I'll need help from more experienced people. Given the amount of support for the proposal last time, I hope we can make more progress this time.

Move work of Avi Avni to current sources but use a field in cenv instead of a function parameter to pass around
@Happypig375
Copy link
Member

per fsharp/fslang-design#82 (comment), I don't think an attribute is the way to go.

@dsyme
Copy link
Contributor

dsyme commented May 26, 2023

Please see this discussion comment: fsharp/fslang-design#82 (comment)

@vzarytovskii
Copy link
Member

This should also be under a language version flag.

dawedawe added 2 commits June 6, 2023 17:09
# Conflicts:
#	src/Compiler/FSComp.txt
#	src/Compiler/Facilities/LanguageFeatures.fs
#	src/Compiler/Facilities/LanguageFeatures.fsi
@dawedawe
Copy link
Contributor Author

dawedawe commented Jun 6, 2023

This should also be under a language version flag.

Yes, absolutely. Thanks.

@dawedawe
Copy link
Contributor Author

dawedawe commented Jul 3, 2023

An open question:

  • How should we handle partial applications?
    • Should we warn as they are not "real" algorithmic tail calls and their existence could be a sign for non-tailrec design?
    • Should we ignore them as they don't necessarily lead to stack overflows?

@dawedawe
Copy link
Contributor Author

dawedawe commented Jul 7, 2023

For those following along, I thing this PR is superseded by #15503
Please go there for the lastest work.

@dawedawe dawedawe closed this Jul 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

5 participants