Implement a --cubical=no-glue option#7861
Conversation
andreasabel
left a comment
There was a problem hiding this comment.
I'd approve; but merging has to wait until after the 2.8.0 release
|
Documentation is missing. Is the idea that it should be possible to import modules that use |
Please discuss the design of such a feature before you implement it. |
6ca176e to
3a758f7
Compare
|
It would be good to have a decision on #7835 before adding yet another module-level variant of cubical agda. |
I have just added some minimal documentation (for the flag and on the Cubical page), let me know if you think we need more.
Yes, that is what I have in mind. |
|
I think the documentation should include something about how the options interact (which is somewhat complicated in the case of |
c1bfd10 to
59e6946
Compare
59e6946 adds more detailed documentation as a subsection. I also included a table on how they interact, please let me know if there is any mistake: |
Should |
|
@Mergifyio rebase |
✅ Branch has been successfully rebased |
The flag --cubical now takes a string as input. Empty string `--cubical` or `--cubical=full` represents full Cubical, `--cubical=compatible` aliases `--cubical-compatible`, `--cubical=erased` aliases `--erased-cubical`, and `--cubical=no-glue` replaces the previously implemented `--cubical-without-glue`.
|
This is now ready for another round of review. The technical changes stay the same, while the
The user manual is also updated. I kept all the old flags for backwards compatibility, but new flags are shown in documentation, code comment, and error messages to "prepare" the users for the shift. We can schedule the deprecation for another release if we wanted to. |
|
Agda dev meeting 2025-10-15: sorry for the delay in handling this. This PR has proponents and no opponents, so we agree to merge it (if review process is successful). @jespercockx will handle it. |
jespercockx
left a comment
There was a problem hiding this comment.
I looked through this PR and everything looks good for it to be merged!
|
I brought this back up to date with current master (doing a merge since it's anyway the plan to squash this PR). (Edit: one advantage of doing a merge commit is that it makes Github prevent me from accidentally rebasing this PR instead of squashing it.) |
|
Let's merge this now and see what people have to say about it before the release of 2.9! |

This pull request aims to implement a
--cubical-without-gluepragma option that allows one to use Cubical features, but disallowing the primitive Glue type. This is in anticipation of my ongoing project to implement Cubical with UIP as mentioned in #3750 .The key changes made were
--cubical-without-glueflag with tests--cubical-without-glueflag by a customInfectiveImportrecordCWithoutGlue :: Cubicaldatatype constructor--erased-cubicalwhich do not use Glue in erased positions are changed to--cubical-without-glueinsteadA question I have in mind: now that we will have 3 different cubical options (not counting
--cubical-compatible): Full, Erased, and WithoutGlue, perhaps it is more ergonomic/intuitive to unify the command line flags (--cubical,--erased-cubical,--cubical-without-glue) that set the same variable into--cubical=[full,erased,noglue]instead (with--cubicalmeaning--cubical=fullby default)?This is my first time contributing to Agda, please let me know if there is anything I missed. Many thanks in advance!