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

experiment with resurrecting the recursive solver #351

Closed
1 of 3 tasks
nikomatsakis opened this issue Mar 17, 2020 · 5 comments
Closed
1 of 3 tasks

experiment with resurrecting the recursive solver #351

nikomatsakis opened this issue Mar 17, 2020 · 5 comments
Assignees
Labels
current-sprint Being worked on in the current sprint

Comments

@nikomatsakis
Copy link
Contributor

nikomatsakis commented Mar 17, 2020

We should experiment with returning to a "recursive style" solver in chalk. As described in this gist, recursive solving does offer some potential advantages:

  • if we extend the setup, it may resolve the ambiguous associated type problem (ironic since we previously removed the recursive solver in part because we couldn't make it handle associated types well)
  • less overall work, at the cost of completeness
  • cleaner handling for multiple threads doing queries at once without locking (the cache is separated from the main solver stack)
  • smoother integration into systems like chalk

Work items:

This issue has been assigned to @flodiebold via this comment.

@nikomatsakis
Copy link
Contributor Author

@flodiebold is working on this

@nikomatsakis nikomatsakis added the current-sprint Being worked on in the current sprint label Mar 17, 2020
@jackh726
Copy link
Member

@rustbot assign @flodiebold

@jackh726
Copy link
Member

Dang it that didn't work.

@nikomatsakis
Copy link
Contributor Author

@rustbot assign @flodiebold

@rustbot rustbot self-assigned this Apr 15, 2020
@jackh726
Copy link
Member

I would say that the "experiment" is done. Any follow up issues (including #399) can just be separate.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
current-sprint Being worked on in the current sprint
Projects
None yet
Development

No branches or pull requests

3 participants