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

Upgrade to OCaml 5.0 as default #1137

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open

Upgrade to OCaml 5.0 as default #1137

wants to merge 5 commits into from

Conversation

sim642
Copy link
Member

@sim642 sim642 commented Aug 16, 2023

Closes #1003.

We can finally do this because mlgmpidl and apron have been released on opam for OCaml 5.0.

TODO

@sim642 sim642 added setup Dependencies, CI, releasing dependencies Pull requests that update a dependency file labels Aug 16, 2023
@sim642 sim642 added this to the v2.2.0 milestone Aug 16, 2023
@sim642 sim642 self-assigned this Aug 16, 2023
@sim642 sim642 marked this pull request as ready for review August 16, 2023 09:07
@sim642
Copy link
Member Author

sim642 commented Sep 12, 2023

I did an sv-benchmarks run comparing OCaml 4.14 with OCaml 5.0 and the results are concerning. We might have to postpone making OCaml 5.0 the default and simply cherry-pick the changes from here to at least make Goblint OCaml 5.0 compatible, even if we don't use it by default.

Memory usage is significantly higher, almost 10× in some cases:
image

CPU time is also affected but that could be simply due to working with more memory:
image

(Full results)

@sim642 sim642 modified the milestones: v2.2.0, v2.3.0 Sep 12, 2023
@sim642 sim642 mentioned this pull request Sep 13, 2023
4 tasks
@sim642 sim642 modified the milestones: v2.3.0, v2.4.0 Nov 15, 2023
@michael-schwarz
Copy link
Member

Should we investigate what the performance is like with OCaml 5.1?

@sim642
Copy link
Member Author

sim642 commented Apr 5, 2024

I tried 5.1 at some point and it wasn't much better, still a regression from 4.14.
OCaml 5.2 is around the corner, so that's another thing to try.

@michael-schwarz
Copy link
Member

Sounds like 5.2 (released today) also won't fix our problems: https://discuss.ocaml.org/t/ocaml-5-2-0-released/14638

OCaml 5.2.0 is still a somewhat experimental release compared to the OCaml 4.14 branch. In particular

  • [...]
  • Ephemeron performances need to be investigated.

@FelixKrayer
Copy link
Contributor

Just as a quick note here:
The version of the dependency of camlidl will have to be changed to version 1.12, as the current camlidl = 1.11 requires ocaml < 5.0.

@sim642
Copy link
Member Author

sim642 commented Jun 20, 2024

All the dependencies in the Goblint lock file are for 4.14 anyway: the lock file also specifies OCaml 4.14. The non-locked dependencies allow appropriate versions to be installed on OCaml 5.0, 5.1 and 5.2.

@sim642 sim642 modified the milestones: v2.4.0, v2.5.0 Jun 25, 2024
@sim642 sim642 modified the milestones: v2.5.0, v2.6.0 Nov 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file setup Dependencies, CI, releasing
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Make setup fails due to "invalid extra arguments" to opam switch create Upgrade to OCaml 5.0.0
3 participants