-
Notifications
You must be signed in to change notification settings - Fork 81
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
Compile ocamlbuild using Dune #274
base: master
Are you sure you want to change the base?
Conversation
Date aside, this is quite a simplification compared to what ocamlbuild had before 💯 |
I think actually merging this isn't even a terrible idea; given the amount of projects already using jbuilder it's about as likely to be installed as ocamlbuild itself. That said, given the lack of active development of ocamlbuild there isn't much benefit either. |
Sounds amusing and potentially useful to have this capability, but there are two points that I would like clarification on:
|
Small ping. @dra27, do you think that just keeping the ocamlbuild-specific .ml files in-repo would allow the bootstrap to keep working? |
That's weird - I most definitely authored a long comment complete a check-list of required changes several days ago... which somewhat spectacularly appears not to have been saved by GitHub...! I'll reconstruct what I wrote in the morning |
I'm preparing another ocamlbuild release today, and looking at this issue again. My conclusion is the same: why not use Dune as ocamlbuild build system, but I really would like to keep the ability to bootstrap ocamlbuild using itself, because it is one of the most effective way to do quality control. @dra27 wrote, to describe the difficulty:
I'm not sure why that would be required. The bootstrap happens in a separate subdirectory, it doesn't need to do about the dune build outputs, and it can rebuild the packs on its own. Wouldn't keeping the |
I'm just updating this. Can I check I understand the bootstrap process properly:
Is there any way to have the second step use an ocamlbuild which is still in the source tree? i.e. |
OK, somewhat violating my "don't do work just before a concert" rule, I have just figured out a small patch which allows the bootstrap to work. I'll tidy it up and push it after the concert - it needs a bit of polish, which I shall aim to do later! |
Apologies for not clarifying this earlier. My actual workflow is rather like like
in particular, installing is not required. (This impression is given by a dubious choice of default value for the OCAMLBUILD variable in the script.) Note that there is no hurry for this. Have a great concert! |
Hmm, I tried that before - it doesn't seem to work?
|
Hm, it does look like you need to install first indeed... |
A good time for reviving this by the way, with the dune-2.0 release |
This PR replaces the GNU make build system with Dune. The old
Makefile
is kept for convenience targets only.Persuading ocamlbuild to compile itself using Dune "wrapped" libraries instead of packs would have required me to consume more prosecco than would then allow me to operate a computer but, honestly, having upgraded the project to build with Dune, why would you want to bootstrap it with ocamlbuild?
Testsuite and dependent modules all pass (well, WFM, anyway), and you can even build the man page. Welcome to Dune!