Pin ppx_deriving fork with forwarding optimizations #326
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue #265.
The pinned fork optimizes the problems mentioned in #265 (comment) by omitting eta-expansion and unit arguments in simple cases, where they are unnecessary. I also opened a PR to ppx_deriving (ocaml-ppx/ppx_deriving#252) to hopefully get these optimizations upstream, allowing us to get rid of the pin.
On the added benchmarks (https://github.com/goblint/analyzer/blob/a21f33511183074c693c15269990210b283ae045/bench/deriving/benchEq.ml), this improves the performance of derived
equal
3 times, bringing it more or less up to par with a completely manual implementation:(deriving(_module)? is the new one, deriving(_module)?_expand is the old one)