Skip to content
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

Upstreaming: More extensive assumptions of determinism #14

Closed
cpovirk opened this issue Jan 13, 2021 · 1 comment
Closed

Upstreaming: More extensive assumptions of determinism #14

cpovirk opened this issue Jan 13, 2021 · 1 comment

Comments

@cpovirk
Copy link
Collaborator

cpovirk commented Jan 13, 2021

ad7d132

Unless I got confused, both that and -AassumePure/-AassumeSideEffectFree are necessary in order to get the results I'm hoping for.

When we look to upstream this, we should try the obvious alternative to my blunt approach: Instead of hardcoding if (true), make sure to propagate the value of allowNonDeterministic (which we always set to true and I don't think any framework code calls) to recursive fromNode and fromTree calls. Perhaps CF would even consider it a bug that they don't do this at present -- but I'm unsure, since I haven't thought through all the implications of undoing our purity/side-effect-free assumption.

@cpovirk
Copy link
Collaborator Author

cpovirk commented Jan 13, 2021

The difference between -AassumePure and -AassumeSideEffectFree turns out not to matter in any of our samples or the internal projects we've been testing against (at least if I tested right :)). It's still possible that this is the case only because of other things we've done (like our persistent use of /*allowNonDeterministic=*/ true); I haven't tried to dig further.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant