Skip to content
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

ramp up stdlib version? #371

Open
HuStmpHrrr opened this issue Apr 12, 2023 · 14 comments · Fixed by #372
Open

ramp up stdlib version? #371

HuStmpHrrr opened this issue Apr 12, 2023 · 14 comments · Fixed by #372

Comments

@HuStmpHrrr
Copy link
Member

The current release is 1.7.2.

@JacquesCarette
Copy link
Collaborator

Yep, definitely should do. Not sure when I'll get time, right now is scarily busy for me.

@jpoiret
Copy link
Contributor

jpoiret commented May 2, 2023

At least from my testing, the library type-checks fine with the newer Agda and stdlib versions. #372 is a simple PR to update the requirements, I didn't know what to do with the README since it refers to the latest release.

@HuStmpHrrr
Copy link
Member Author

I think we can make a small release to match the agda and stdlib version?

@JacquesCarette
Copy link
Collaborator

Yes, we can. @HuStmpHrrr if you have the time to do it, please do so. I may not get to it until late this week.

@HuStmpHrrr
Copy link
Member Author

I will wait for the change of the PR and then we are good to go.

@HuStmpHrrr HuStmpHrrr linked a pull request May 8, 2023 that will close this issue
@andreasabel
Copy link
Member

If you never use cubical, you can stick to 1.7.1, which uses --without-K instead of --cubical-compatible and is thus 20% faster to build.
If agda-categories, do you use --without-K or --cubical-compatible? (Or just vanilla (implicit) --with-K?)

@jpoiret
Copy link
Contributor

jpoiret commented May 9, 2023

@andreasabel once the stdlib is fully built, --cubical-compatible doesn't have a performance impact on users of the library, right?

@JacquesCarette
Copy link
Collaborator

agda-categories still uses --without-K (and safe). We should also add --exact-split, but that is almost always a no-op.

@andreasabel
Copy link
Member

andreasabel commented May 10, 2023

@andreasabel once the stdlib is fully built, --cubical-compatible doesn't have a performance impact on users of the library, right?

Not if you have unlimited memory with O(1) access. ;-)
Seriously, I have not benchmarked, but --cubical-compatible generates extra definitions and extra clauses, and these reside in memory, so I am positive about some impact, even though I cannot put a number to it.

@ncfavier
Copy link
Member

Do I understand correctly that it's not possible to import agda-categories (which uses --without-K) from a --cubical module in Agda 2.6.3? This used to be possible in 2.6.2.

@andreasabel
Copy link
Member

That is correct: https://agda.readthedocs.io/en/v2.6.3/language/cubical-compatible.html#cubical-compatible

Note that code that uses (only) --without-K can not be imported from code that uses --cubical.

So yes, switching to Agda 2.6.3 without bumping --without-K to --cubical-compatible will be a regression, as the library is not usable anymore from --cubical then.

I should retreat my suggestion until we have an easy way (e.g. via library-wide flag) to bump a --without-K library to --cubical-compatible.

@HuStmpHrrr HuStmpHrrr reopened this May 15, 2023
@HuStmpHrrr
Copy link
Member Author

maybe we can set a library-wide flag in the lib file? I think we have a few files that actually uses with-K, if flags in the file overrides the flags in the lib file, then I think we just set --cubical-compatible globally.

@andreasabel
Copy link
Member

we have a few files that actually uses with-K, if flags in the file overrides the flags in the lib file, then I think we just set --cubical-compatible globally.

Yes, this is exactly what I want to change in Agda, that you can override --cubical-compatible by --with-K. Currently, Agda does not allow you to do that.

@JacquesCarette
Copy link
Collaborator

I want to do some proper benchmarking to see the effect of using --cubical-compatible. It depends on where the new code gets automatically added. If it's mostly for data, then it should be minimal. But if records change too, I'm afraid that the performance changes might be substantial.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants