-
Notifications
You must be signed in to change notification settings - Fork 30
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
Recursion detected does not make sense #20
Comments
I agree. If you need recursion, you'll now have to implement solutions "clever" enough to go under the radar of the App Checker. Probably with even more interesting recursion bugs as a result. Recursion requirements wont go away. Maybe Microsoft could give us some sort of framework to use to ensure that endless recursions are avoidable. |
In my old dayes (1990's) on Telefoon switches software we also banned recursion, |
This discussion is interesting 😊, thanks for bringing it up. @PaulHeisterkamp: how would you detect runaway recursions? We already have some protection we can toggle on for environments that get stack overflow crashes a lot, but it comes with a performance penalty. Should all environments pay that price so developers can use recursions without warning? @PalleAgermark: what kind of framework? The only thing that comes to my mind is what F# does with the One idea could be to disallow recursion (where detected) unless a method is decorated with a |
@AndreasHassing I would vote for the [Recursive] attribute to reduce the effort for checking recursion depth. In addition to that I would limit to a "static" number e. g. 100 |
Recursion detected: I think this rule do not make sense because a modern programming language it should be possible to use recursions. The argument for banning recursions is "...we had recursion related problems in production environments to often...". For me this is also no agreement for putting the recursions on a "black list". I think it would make more sense to add runtime checks to restrict the recursion depth.
The text was updated successfully, but these errors were encountered: