Give Stdlib its own repository - #19975
Conversation
|
Is this supposed to be part of 9.0? |
|
Well, it would be better if it could be. That would avoid having a branch/release in the current intermediate state with stdlib only in a directory. That being said, it shouldn't delay the branching/release. |
Don't know how I made that stupid typo, it's obviously
No idea what |
Why? This is precisely what people who want so-called "composed builds" usually do: they clone one repo in a sub-folder on another (one way or the other). |
|
Sounds like the best way for me to get confused about which git repo we are in. |
|
In any case, in terms of directory structure, this should get you in the exact same situation as the current Coq master, so it's completely orthogonal to the current PR. |
|
@coqbot merge now |
Yes, that's what I would expect. And it has been tested to work successfully with compositional Dune builds (after a few adjustments to the Dune files IIRC). |
|
FTR about the said adjustments: https://coq.zulipchat.com/#narrow/channel/237656-Coq-devs-.26-plugin-devs/topic/stdlib.20composed.20build/near/486512903 |
|
@proux01 could you please fix this? I agree it's a regression from the directory-splitting PR, not the repository-splitting one, but it is still a regression. Breaking interactive editing with non-installed coq as well as composed builds significantly affects my workflow (and probably others', as @ Zimmi48 suggests above). Maybe the workaround you link to works well, but I am an unsophisticated dune user, and don't understand it, so wouldn't be able to troubleshoot if it ever goes wrong or stops working. |
|
I unfortunately have no idea how to fix this dune thing. Have you tried the composed build setting discussed above? it might be linked. My understanding is that composed build is only used by a couple of users which doesn't help considering dune for Coq remains a pretty brittle thing already (particularly inside Coq itself with this dunestrap thing still lying around and apparently preventing proper composed builds). |
|
Of the two steps reported to make composed builds work:
the first has actually already been fixed in the PR that removed the stdlib sub-directory. The second one means that having composed builds work require running "normal" Dune Coq support rather than the one that ships with the |
|
Apparently we currently cannot: https://coq.zulipchat.com/#narrow/channel/237656-Coq-devs-.26-plugin-devs/topic/stdlib.20composed.20build/near/486516060 |
The async and vok builds were actually relevant for the stdlib, now that the stdlib is not in the Coq repos anymore these builds do almost nothing tho. |
|
Are you saying that we could actually get rid of dunestrap (or at least make dune.disabled the default) ? |
I am saying that the async and vos builds that dunestrap support seem not to be relevant anymore. I guess they should be removed from CI too? As to whether we could build
Note that we proposed to vendor dune back in the day, however that rejected, IMHO for the wrong reasons (c.f. #8615) |
|
Ok, but concretely, what are the benefits of keeping dunestrap? the only one I can get out of you above message is
But what do we concretely get today out of this? that is important enough to justify disabling composed build for instance? Sure, having full control over the build system like we still do with rocq_makefile would be good, but considering we don't get that anyway, I still fail to get the benefit of this kind of intermediate solution (but again, I'm no expert here). |
|
Benefit @proux01 is that if you want to modify the rules you don't need to patch dune and wait for a new dune release. This used to be relevant when we were building the stdlib. With the current status quo of just a few .v files in the coq source tree, indeed this doesn't seem very important. On the other hand, it is well-known in the build system communities that use cases are very hard to anticipate, so I would personally think about the future roadmap in terms of build tooling for Coq before going and removing the custom rule generator as to be sure we are not missing anything. |
I understand but my current feeling is that this is not very effective in practice (only my small experience on the recent renamings) What about the following course of action:
That should enable to evaluate the situation for some time without loosing the possibility to come back to dunestrap, WDYT? |
|
Using builtin rules means we depend on coqc |
|
Thank you all for looking into this. Fwiw, my concern above was primarily driven by interactive editing of stdlib when iterating on a WIP coq change that breaks it, not composed builds in the full sense (which I think are also great, but not that specifically important between stdlib and coq alone). |
Reopening of #19686 to clearup github push history.
Follow up of #19530 (the new Stdlib repo for testing is at https://github.com/coq/stdlib-test (final URL should be https://github.com/coq/stdlib))
stdlib-testfor test-suite (the 10% of Coq test-suite that ends up in stdlib)stdlib-refman-htmlfor refmanstdlib-htmlfor doc