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

Stop converting constructors universe instances (and parameters too) #6942

Closed
mattam82 opened this issue Mar 8, 2018 · 4 comments
Closed
Labels
kind: performance Improvements to performance and efficiency.

Comments

@mattam82
Copy link
Member

mattam82 commented Mar 8, 2018

Description of the problem

The invariants of conversion and unification should ensure that we only compare terms that have a common supertype. In this case it means for constructors we could stop converting their universe instances and parameters (they have indeed to be applied to the same number of parameters and by invariant they should be convertible). This could have an impact on unification, to be experimented.

@SkySkimmer SkySkimmer added the kind: performance Improvements to performance and efficiency. label Apr 25, 2018
@SkySkimmer
Copy link
Contributor

I experimented with skipping conversion of parameters (and domain of lambdas), see https://github.com/coq/coq/wiki/Performance-experiments#skipping-conversion-of-parameters-of-constructors-and-of-the-domain-of-lambdas-failed
TLDR with the current right-to-left order of processing application arguments converting parameters/domains allows early failure so it doesn't work out.

@ppedrot
Copy link
Member

ppedrot commented Nov 5, 2018

Wasn't that solved by #6747?

@SkySkimmer
Copy link
Contributor

No, that was only the universe instances.

@SkySkimmer
Copy link
Contributor

Doesn't work out as a perf improvement in practice.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind: performance Improvements to performance and efficiency.
Projects
None yet
Development

No branches or pull requests

3 participants