-
Notifications
You must be signed in to change notification settings - Fork 106
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
work-in-progress Dune conversion #1025
Conversation
The previous method would "guess" that the source version of _oasis can be found from the current build directory by just using ../_oasis. This works for ocamlbuild but not for dune.
This file gets concatenated by qtest to the extraction of each src/bat*.ml file with inline tests. This is the easiest way we found to disable a few warnings (which are disabled when compiling the src/bat*.ml files normally) inside inline tests.
This is now fixed. The PR is now based on top of master (the rebase was very easy). |
In any case, the ocamlbuild-based system is still working, right? In the end, won't the 'make install' just invoke 'dune install'? It will review and merge all this. It will take me some time though. |
Yes. I worked around the
This depends on whether
|
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.
Ok, so many changes...
We should drop the benchmarks out of the window (or save them in another repository,
out of batteries), because they have a significant maintenance cost.
This PR includes the current state of my work on moving Batteries to use a Dune build system.
(I have timed out on what I can do in the next few days/weeks, but the current state is arguably a good stopping point.)
What works:
build/
are handled correctlysrc
, including documentation!benchsuite
benchmarksexamples
examplesWhat is left to do:
.cmo
files to an ocamlfind sub-packageinstall
rule to copy dune build artifacts)To summarize the TODO list: currently Batteries install a specific META files with toplevel support (BatteriesHelp and various .cmo support modules are provided, activated by the
battop.ml
script). This is not compatible with Dune, which intentionally does not give access to.cmo
files (basically, it wants people to install.cma
files only), and generates a META file that does not support the relevantarchive(toploop) ...
predicate for implicit toplevel loading. I believe that a good solution would be to change the toplevel-support code to be its own findlib subpackage (batteries.toplevel
), and changebattop.ml
to use this. Then hopefullydune install
would work as expected.The PR is built on top of my previous dune work, as submitted in #1016. I have not yet rebased it on top of the split changes proposed by @UnixJunkie. @UnixJunkie, if you would like to also split the current PR in smaller pieces, please feel free to. I separated it in smaller commits to make it easier to review in any case.