-
Notifications
You must be signed in to change notification settings - Fork 160
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
Call GroupByGenerators/GroupWithGenerators with a collection? #2703
Comments
Is calling A user might use |
@markuspf First we should decide whether we want to admit a non-list collection as an argument at all. |
I think we shold allow collections (that are not lists), because code like above ( Now, converting just any collection to a list throws up my issue with turning things into lists that really shouldn't be; what collections would people want to use to generate groups from? |
@markuspf If we want to allow collections then I would add a special (One could also think of a conjugacy class as an argument, but this is perhaps an exotic example, In all other cases (in particular for |
I never used |
We need a fix for this problem, otherwise CTblLib tests still exhibit this kind of failures, see e.g. https://travis-ci.org/gap-system/gap-docker-pkg-tests-stable-4.10-staging/jobs/438054210 |
@alex-konovalov I don't see why we "need" to address this to resolve the CTblLib tests: as far as I can tell, it experiences many failures, which are not all caused by this, no? |
@fingolfin I never said that fixing this will make CTblLib tests pass. Its tests have many diffs caused by other reasons - for example, there are diffs because the output may be different dependently on whether SpinSym package is loaded or not. Still I think that this issue should have slightly higher priority - first, it's not a matter of slightly different output like in many other test failures, but a break loop happening. Second, this diff was not there before, so at least fixing it help to fight further tests deterioration. I hope that we can fix this, and @ThomasBreuer will be able to make a new release soon, addressing remaining diffs in the tests, and then I will be able to move CTblLib from staging build (https://travis-ci.org/gap-system/gap-docker-pkg-tests-stable-4.10-staging) to the build for packages which have their tests passing (https://travis-ci.org/gap-system/gap-docker-pkg-tests-stable-4.10). I am regularly monitoring the latter build, and investigate/report when tests fail. This is not the case for the "staging" tests - if they fail, the responsibility to check whether failures are serious or harmless stays with their package authors. Note that the "staging" build now has only 11 packages, while now 90 packages ready for GAP 4.10 release have their tests passing. I think it's a shame that among those 11 packages there are some which are loaded in GAP by default - we should be careful to not to break them, but we are not doing this efficiently. We can do better. |
P.S. So, what was the conclusion about the fix or where it is needed and where - in the library by adding new methods for objects that have
It looks that everyone in this thread was happy about adding a special treatment of objects with known generators? |
There were no new developments here, and I will remove the milestone for now. The fix, if need be, can be achieved purely in CTblLib by calling |
change the default methods for `GroupByGenerators` and `GroupWithGenerators` such that the problem gets fixed that had been introduced with pull request gap-system#2522 and discussed in issue gap-system#2703
In GAP <= 4.9, this worked: gap> GroupByGenerators( Group( (1,2) ) ); Group([ (), (1,2) ]) In GAP 4.10, this was broken and instead lead to a "method not found" error. While strictly speaking this was never documented behavior, we restore it to avoid regressions in code that relied on this undocumented behavior. Resolves gap-system#2703
In GAP <= 4.9, this worked: gap> GroupByGenerators( Group( (1,2) ) ); Group([ (), (1,2) ]) In GAP 4.10, this was broken and instead lead to a "method not found" error. While strictly speaking this was never documented behavior, we restore it to avoid regressions in code that relied on this undocumented behavior. Resolves gap-system#2703
In GAP <= 4.9, this worked: gap> GroupByGenerators( Group( (1,2) ) ); Group([ (), (1,2) ]) In GAP 4.10, this was broken and instead lead to a "method not found" error. While strictly speaking this was never documented behavior, we restore it to avoid regressions in code that relied on this undocumented behavior. Resolves gap-system#2703
In GAP <= 4.9, this worked: gap> GroupWithGenerators( Group( (1,2) ) ); Group([ (), (1,2) ]) In GAP 4.10, this was broken and instead lead to a "method not found" error. While strictly speaking this was never documented behavior, we restore it to avoid regressions in code that relied on this undocumented behavior. Resolves gap-system#2703
In GAP <= 4.9, this worked: gap> GroupWithGenerators( Group( (1,2) ) ); Group([ (), (1,2) ]) In GAP 4.10, this was broken and instead lead to a "method not found" error. While strictly speaking this was never documented behavior, we restore it to avoid regressions in code that relied on this undocumented behavior. Resolves #2703
In GAP <= 4.9, this worked: gap> GroupWithGenerators( Group( (1,2) ) ); Group([ (), (1,2) ]) In GAP 4.10, this was broken and instead lead to a "method not found" error. While strictly speaking this was never documented behavior, we restore it to avoid regressions in code that relied on this undocumented behavior. Resolves #2703
In GAP <= 4.9, this worked: gap> GroupWithGenerators( Group( (1,2) ) ); Group([ (), (1,2) ]) In GAP 4.10, this was broken and instead lead to a "method not found" error. While strictly speaking this was never documented behavior, we restore it to avoid regressions in code that relied on this undocumented behavior. Resolves gap-system#2703
In GAP <= 4.9, this worked: gap> GroupWithGenerators( Group( (1,2) ) ); Group([ (), (1,2) ]) In GAP 4.10, this was broken and instead lead to a "method not found" error. While strictly speaking this was never documented behavior, we restore it to avoid regressions in code that relied on this undocumented behavior. Resolves gap-system#2703
@alex-konovalov had noticed a test failure,
see #1619 (comment).
This failure is a side-effect of the changes from pull request #2522.
The operations
GroupByGenerators
andGroupWithGenerators
are documentedfor a list of generators.
However, their methods accept a collection as the first argument,
and call
AsList
in order to create a list from it if necessary.With the abovementioned changes, a new function
MakeGroupyType
was introducedthat assumes the generators to be a list, and this is where the error happens.
Thus the following works in GAP 4.9 but not in the master branch.
I see several possibilities to fix this problem.
Change the method installations for
GroupByGenerators
andGroupWithGenerators
such that only a list & collection or an empty list is accepted as the first argument.
This fits to the documentation,
the problem is that existing code may be broken that uses the undocumented feature.
Change the method installations for
GroupByGenerators
andGroupWithGenerators
such that a non-list collection given as the first argument gets replaced by a list in the beginning.
Proceed like in 1. but add new methods requiring a collection as the first argument and then
delegating to the methods for lists;
add comments to these methods that they might become obsolete at some time.
What do others think?
The text was updated successfully, but these errors were encountered: