-
-
Notifications
You must be signed in to change notification settings - Fork 565
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
RootSystem __init__ builds the dual twice, breaking initialization of non-crystallographic root systems #15279
Comments
Attachment: trac_15279-init_RootSystem-dg.patch.gz |
comment:3
Looks good to me. |
Reviewer: Travis Scrimshaw |
comment:4
This sounds like a merge that went wrong, so +1 on the change. You might want to add a test if this impacts non crystalographic root systems (yes we want to progressively support them!!!). In the long run, we would want something better than just trying and hoping for the best. We should be able to tell exactly when the dual should be defined or not. |
comment:5
I don't know what to test for the non-crystallographic ones, since nothing nontrivial seems to work for them so far... Once they are actually implemented, they will have their own doctests, which of course will implicitly test Travis: thanks for looking at it! |
comment:6
Replying to @nthiery:
It would be interesting to know why/how it went wrong. The patch is from #5794, 4 years ago. Interestingly, the patch attachment: trac_5794-exceptional.patch:ticket:5794 on Trac is correct, it does remove the duplicate line. However, the patch which is merged (revision |
comment:7
There is also this suspicious commit, which was never actually reverted.
|
comment:8
More generally, the patches on Trac from #5794 are not the ones which were merged. I don't plan to further investigate this, but perhaps somebody should. |
comment:9
Is there a way to see the patches which were merged? This is spooky. Thanks for getting to the roots (oops) of this, Jeroen! |
comment:10
Replying to @darijgr:
Use |
comment:11
Replying to @jdemeyer:
Not having duplication between patches on the combinat server and on trac and not having to rebase constantly, like we will have with the new workflow, will certainly help ... Thanks for tracking this down! |
comment:12
Replying to @nthiery:
Why would one need to rebase less with the new workflow? A merge conflict is a merge conflict, and the new workflow is not going to change that. |
comment:13
Replying to @jdemeyer:
Granted, there will be as many merges as before; but unlike what we had with our patch queues those will be 3-way merges, so there will be better support from the revision control system, with less error-prone manual operations. Cheers, |
Merged: sage-5.13.beta1 |
comment:15
I am CCing Daniel Bump and Mike Hansen; maybe they can shed more light on the question what exactly ended up merged from #5794. So these seem to be the #5794-related commits in the log (thank you, Jeroen, for the help with getting it):
I can tell that changeset 13469 == trac_5794-long-time-nt.patch (modulo fuzz) and changeset 13368 == trac_5794-reviewer-nt.patch. Furthermore, changeset 13367 differs from trac_5794-more-exceptional.patch only in having The difference between changeset 13366 and trac_5794-exceptional.patch is more substantial, and is what caused the bug in the present ticket. Someone else should look into the diff to check if this is the only issue caused! The difference between changeset 13365 and trac_5794-continued.patch is again only in irreducible-vs-atomic and reducible-vs-compound. Changeset 13364 is not an attachment on #5794 and all it does is replacing some "reducible" by "compound" resp. "irreducible" by "atomic". Changeset 13363 ("this temporary patch to be taken down when root system and 5794 patches stabilize.") seems not to be from the #5794 attachments either, and I don't really understand what it does. I don't know if anyone has ever "taken it down" or reverted its edits. Changeset 13362 has noticeable differences from trac_5794-revised.patch and maybe someone should look into that. |
Relevant piece of the code:
The definition of
self.dual
is done twice, one time in a try clause, one time outside. I don't know if the breaking of non-crystallographic root systems is intentional or not (might be it is because there doesn't seem to be much functionality implemented for that), but it certainly slows down things.CC: @anneschilling @tscrim @sagetrac-sage-combinat @nthiery @mwhansen @dwbump
Component: combinatorics
Keywords: root-system, sage-combinat
Author: Darij Grinberg
Reviewer: Travis Scrimshaw
Merged: sage-5.13.beta1
Issue created by migration from https://trac.sagemath.org/ticket/15279
The text was updated successfully, but these errors were encountered: