-
Notifications
You must be signed in to change notification settings - Fork 251
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
feat: run hint
tactics in parallel
#8435
base: master
Are you sure you want to change the base?
Conversation
• linarith | ||
• exact lt_asymm h | ||
• intro | ||
• simp_all only [not_lt] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here for example we used to run linarith
first, and as it succeeded that was all that was reported.
Now exact?
succeeds more quickly, and that prevents linarith
being reported.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've put the parallelism through some paces on my end, making sure that it e.g. doesn't propagate state between tasks, does in fact start all tasks before cancelling, leaves the outer monad in an appropriate state after takeUpToFirst
and asArray
, etc.... It behaved as expected in all cases! :)
These review comments are mostly very small and quick style changes for readability (and therefore maintainability). I tried to get rid of .2.1
style access in favor of clearer destructuring.
There's one meaningful comment in the test file, which is on how aesop
produces a warning in one case which isn't reflected in the suggestions.
I did eventually figure out how to reduce all of the MLList.Meta
code via MonadControl
, but it preferably requires a core change because the instance is a bit wonky. We can leave that for another PR! :)
Co-authored-by: thorimur <68410468+thorimur@users.noreply.github.com>
Co-authored-by: thorimur <68410468+thorimur@users.noreply.github.com>
* was inferring `Nat` as arguments for `R` * note that `[Monoid M]`/`[Monoid N]` are variables
This PR/issue depends on:
|
Note that this is more resource intensive, as all
hint
tactics will start running at once.I've worked out how to thread through cancellation hooks so as soon as one succeeds, any still running are cancelled. (If they are doing kernel computations or IO they might not listen, however!)
I've had to make this depend on #8635 to avoid breaking an
assert_not_exists
statement.