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

fix cpp/java benchmark program: wrong output due to logic error #595

Merged
merged 1 commit into from
Jan 29, 2025

Conversation

Guest0x0
Copy link
Contributor

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:

    (f,Val(n))             -> add(Val(n),f)

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.

@daanx daanx merged commit ed7dca6 into koka-lang:dev Jan 29, 2025
@daanx
Copy link
Member

daanx commented Jan 29, 2025

Very nice! Thanks for fixing this -- and good to hear it didn't invalidate the benchmarks! That would have been a terrible mistake otherwise :-) All the best, Daan

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants