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

SglPPow package as suggested for SmallGrp? #11

Closed
olexandr-konovalov opened this issue Sep 5, 2017 · 9 comments
Closed

SglPPow package as suggested for SmallGrp? #11

olexandr-konovalov opened this issue Sep 5, 2017 · 9 comments

Comments

@olexandr-konovalov
Copy link
Member

olexandr-konovalov commented Sep 5, 2017

Should SglPPow (https://www.gap-system.org/Packages/sglppow.html) be specified in PackageInfo.g as suggested package?

For example, if it is loaded, SglPPow works for some more orders.

@markuspf
Copy link
Member

markuspf commented Sep 6, 2017

Maybe you could provide a pull-request that does that?

@fingolfin
Copy link
Member

This issue asks a question, but completely fails to give any motivation for this -- so, I'd say "NO! Unless you can give arguments why it should do so"

@olexandr-konovalov
Copy link
Member Author

olexandr-konovalov commented Sep 15, 2017

@fingolfin In a few more words, the behaviour of NrSmallGroups, AllSmallGroups etc. depends on whether SglPPow is loaded or not, and that may come as a surprise to an unsuspecting user. Further discussion is in the PR implementing this - please see #14.

@fingolfin
Copy link
Member

I completely disagree that this is a justification for loading sglppow by default. In the future, we will add more extensions to the library of small groups, in separate packages. It doesn't make sense to have them all autoload. Indeed, isn't the long term to not even autoload smallgrp itself?

@olexandr-konovalov
Copy link
Member Author

I think this is purely a question of sorting out package dependencies, so the intention to not even autoload smallgrp itself is secondary here. In this case the whole bunch of packages will not be loaded, and that's fine with me.

We define that package B is suggested for A is "B is not essential for A but should be loaded if it is available (for example because B provides some improvements of the main system that are useful for A)".

This is the case here. When the package is loaded, SmallGroup, NumberSmallGroups and SmallGroupsInformation are covering further orders.

I think that GAP users are used to the fact that the GAP small group library is always available in GAP. They may also know that for some orders above 2000 there are collections of groups too (although time to time I hear claims about 2000 as upper limit). So one could be used to asking NrSmallGroups etc. to decide whether groups of a given order are available or not.

Hence I do think that the SmallGrp package should have SglPPow as suggested. If there are still objections, it should definitely write in README and some visible place in the manual that the user may be interested to use SglPPow as well.

@fingolfin
Copy link
Member

The sglppow only exists for a relatively short time, so I don't agree that people will "expect" it to be present. And if I release a package in a few weeks which extends NumberSmallGroups to order up to 20000, people definitely will not "expect" it to be present.

I am also quite suprised to hear you argue in this direction in view of gap-system/gap#1135 -- there, you seem to work in the opposite direction: removing packages that people "expect" to be present, and whose absence will mean functionality that previously was "just there" won't be, and things which were fast will be slower, etc.

@fingolfin
Copy link
Member

Let me clarify what I want: I don't want sglppow to be auto loaded. I am fine if people are told in some way that it might be useful (in the README; in the form of info messages; or some other means). But I am very unhappy about adding three packages (sglppow, liering, liepring) to the list of packages loaded into every GAP session in a default GAP installation, for IMHO no good reason at all.

@olexandr-konovalov
Copy link
Member Author

@fingolfin first, I never said that people will expect sglppow to be present! To the contrary, I suspect that many people didn't know about it yet.

My actual point was that the surprise factor for a user will be that there are collections of groups or small orders that are NOT automatically present. Because usually one just asks AllSmallGroups without loading any additional components.

Also, I consider that this leads to more packages will be loaded in a default GAP installation as a side effect of package dependencies for SmallGrp. So it's not directly contradicting to the direction of movement in #1135 (which however raised quite diverse responses). If SmallGrp would be taken out from default session, those three packages would not be loaded too.

The idea of Info messages seems to be most suitable for the purpose. One could modify functions to produce info messages when requested order is p^7 for p>11 or 3^8 and recommend to load SglPPow. I think this will completely cover the needs of informing the user about SglPPow without expanding dependencies. I will try to submit a pull request. Put a reminder in #22.

@olexandr-konovalov
Copy link
Member Author

olexandr-konovalov commented Sep 19, 2017

Maybe i was unclear in the last comment. My point was that currently in GAP 4.8 a user may be surprised that there are collections of groups or small orders that are NOT automatically present. Using dependencies specified in PackageInfo.g we may be able to improved that by loading SglPPow as suggested package. But if instead of doing that, we will be able to produce an Info message, I wil find it quite suitable.

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

No branches or pull requests

3 participants