fix cpp/java benchmark program: wrong output due to logic error #595
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.
The C++/Java program for the
deriv
benchmark produces wrong output, due to logical error in several pattern match cases. This PR fixes the benchmark programs.I re-run the benchmark locally, the overall result is unchanged compared to the figures in README.
BTW: I notice that the C++/Java version of
deriv
performs more sharing than the Koka/OCaml version in some cases. For example in this case:the
Val(n)
node is reused directly in C++/Java. This seems a bit unfair? It should not impact benchmark result a lot though, due to Koka's FBIP/OCaml's bump allocation.