-
Notifications
You must be signed in to change notification settings - Fork 247
Maybe --cubical-compatible
is a mistake for stdlib 2.0?
#1939
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
Comments
With Agda 2.6.3, if you do not want to use cubical features, there is an advantage to use std-lib 1.7.1 ( I agree that I want the option of not having the cubical compatible definitions for uses of the standard library if I do not want to do anything cubical. It is faster to build (20-25% I think) and it is more robust, as the linked issue shows. Ideally, one would just have The alternative would be to release two versions of the standard library, one |
Do we have cubical customers (independently from the cubical lib)? |
This is/appears to be currently a problem for all users during development (until and unless Agsy is upgraded to incorporate richer search spaces) but only for library developers/maintainers when merging PRs. Accordingly I think, but perhaps more fieldwork is required to confirm this, that the least worst solution/advice to users might be:
Going backwards to |
(And, correspondingly, imagining a time in the future when cubical features are more robust/just as efficient to typecheck... ;-)) |
BTW/FWIW, I think that PR #1935 was premature, (we might at least have had a shot at releasing 2.0 before proceeding), but rolling it back would be ... also a mistake. I'm 'happy' to take a performance hit on typechecking --without-K only code, for the sake of maintaining a single active (and compatible!) Agda and stdlib release, even if that may require patience and some intelligent compromise. |
It is not only Agsy which is affected by I am afraid more leaks of cubical stuff into regular Agda via |
Uh-huh, I see (more or less). But does my suggestion work in advance of any of these proposed changes being made? |
@jamesmckinna wrote:
I take this is the suggestion. To make this work, one would need an easy way to switch the library between these two modes. |
Hmmm, perhaps I have misunderstood something: if I import a library module marked as But if I subsequently try to merge such a module into the library, then |
Would it make sense to split the library into two folders, each with their own .agda-lib file? That way it would be a lot easier to switch between --without-K and --cubical-compatible for the part that does not use --with-K. |
I don't think this is ideal. I don't want to rely on a locally patched variant of a library. I think that at some point you suggested something like the following:
With this approach we could merge
However, I still think this is preferable to making the (unpatched) standard library unusable for users of Cubical Agda. |
Why could not that be single directory, just tracking existence of additional "cubical" info in individual files instead? Like for non-cubical usage that info could be just dropped/tree-shaked while compiling. And otherwise AFAIU having that info during compilation is okay in |
Suggest we close, and accept that this particular ship has sailed? There are various other issues on the main tracker concerning performance... but such things also tend to get solved by waiting long enough (sic)... |
Closing as suggested. I agree that we want to avoid duplicating the library at all costs.
I agree with @andreasabel that this seems like the best upstream fix. |
See this issue about Agsy failing, and
--without-K
being the fix.If cubical truly want to use
stdlib
, there is likely a need for a concerted effort to make them compatible (such as: remove the duplication!)The text was updated successfully, but these errors were encountered: