I can further add that GAP 4.9 fixes this: for computing NormalSubgroups(SmallGroup(1458,1180)); CRISP is no longer neeed.
On Saturday, February 17, 2018 at 10:30:01 AM UTC, Dima Pasechnik wrote: > > > > On Saturday, February 17, 2018 at 7:31:19 AM UTC, David Roe wrote: >> >> I realized that I ran >> sage: gap.eval('LoadAllPackages();') >> which broke libgap. >> > > Really? I don't think so. It didn't break it for me, although it did break > GAP's workspaces, which is for some reason very fragile. > (libGAP and GAP have separate workspaces in Sage) > What happened is the following, I think: copying the packages from GAP > source broke some GAP packages in Sage's > GAP pkg/ directory, namely at least sonata (mea culpa, I should have > warned you about it) > > sage: gap_reset_workspace(verbose=True) > Loading GAP package GAPDoc > Loading GAP package ctbllib > Loading GAP package sonata > Warning: this should never happen > > (and Sage hangs) > > In fact, this is coming from > > elif x==13: #@w GAP is trying to send a Window command > > in src/sage/interfaces/gap.py > I have no clue what "Window command" is. Anyway, the error message should > not be identical to the one from > > elif x==12: #@sN shouldn't happen > > I also don't know the reason for that "Window command" --- is it cause it > is meant to print some info message? > > > >> For anyone else reading this, the following fixed the problem (taken from >> gap_reset_workspace, with sonata and guava removed due to "Warning: this >> should never happen" and braid removed because I don't have it installed): >> >> g = Gap(use_workspace_cache=False, max_workspace_size=None) >> g.eval('SetUserPreference("HistoryMaxLines", 30)') >> for pkg in ['GAPDoc', 'ctbllib', 'factint', 'gapdoc', 'grape', 'design', >> 'toric', 'laguna']: >> g.load_package(pkg, verbose=True) >> g.save_workspace() >> g.quit() >> >> Thanks for the help Dima: my calculations are running smoothly again! >> David >> >> On Sat, Feb 17, 2018 at 12:57 AM, David Roe <roed...@gmail.com> wrote: >> >>> Thanks, that helps a lot. After some experimentation, it seems like >>> gap> LoadPackage("CRISP"); >>> is sufficient. >>> >>> However, when I try to do it from sage I get the following: >>> sage: gap.eval('LoadPackage("CRISP");') >>> Warning: this should never happen >>> >>> and sage hangs. Googling leads me to >>> https://groups.google.com/forum/#!topic/sage-support/60HHHL8Bw_8, which >>> I interpret as suggesting that CRISP is using LoadDynamicModule. However, >>> searching on https://github.com/bh11/crisp, I don't see any calls to >>> that function. Is there something else that could be responsible? Is >>> there a way to use CRISP through gap.eval in Sage? >>> David >>> >>> On Fri, Feb 16, 2018 at 11:40 PM, Dima Pasechnik <dim...@gmail.com> >>> wrote: >>> >>>> The problem is in the packages loaded (or not) by Sage's GAP vs by >>>> GAP's GAP. >>>> Namely, if I start Sage's gap by ./sage --gap >>>> and do >>>> gap> LoadAllPackages(); >>>> gap> NormalSubgroups(SmallGroup(1458,1180)); >>>> I'd get your error >>>> >>>> Now, if I take GAP's source for 4.8.6: >>>> >>>> https://www.gap-system.org/pub/gap/gap48/tar.bz2/gap4r8p6_2016_11_12-14_25.tar.bz2 >>>> untar it, and copy its pkg/ directory to $SAGEROOT/local/gap/latest/ >>>> start Sage's gap by ./sage --gap >>>> and do >>>> gap> LoadAllPackages(); >>>> gap> NormalSubgroups(SmallGroup(1458,1180)); >>>> [ <pc group of size 1458 with 7 generators>, Group([ f1, f2, f3^2*f4, >>>> f5, f6, f7 ]), Group([ f2, f3^2*f4, f4, f5, f6, f7 ]), >>>> Group([ f1, f3^2*f4, f4, f5, f6, f7 ]), Group([ f1, f2*f4*f6, >>>> f3^2*f4, f5, f6, f7 ]), Group([ f1, f2^2*f4*f6^2, f3^2*f4, f5, f6, f7 ]), >>>> Group([ f1, f3^2*f4, f5, f6, f7 ]), Group([ f3^2*f4, f4, f5, f6, f7 >>>> ]), Group([ f2*f4*f6, f3^2*f4, f5, f6, f7 ]), >>>> Group([ f2^2*f4*f6^2, f3^2*f4, f5, f6, f7 ]), Group([ f2, f3^2*f4, >>>> f5, f6, f7 ]), Group([ f1, f3^2*f4, f5*f6^2, f7 ]), Group([ f3^2*f4, f5, >>>> f6, f7 ]), >>>> Group([ f2*f3^2*f4, f3^2*f4^2, f5*f6^2, f6, f7 ]), Group([ f3^2*f4^2, >>>> f5*f6^2, f6, f7 ]), Group([ f2*f3*f6*f7, f5*f6^2, f6, f7 ]), >>>> Group([ f2^2*f4*f6^2, f5*f6^2, f6, f7 ]), Group([ f2*f3^2*f4, >>>> f5*f6^2, f6, f7 ]), Group([ f5*f6^2, f6, f7 ]), Group([ f3^2*f4, f5*f6^2, >>>> f7 ]), >>>> Group([ f3^2*f4^2, f5^2*f6^2, f7 ]), Group([ f5^2*f6^2, f7 ]), >>>> Group([ f5*f6^2, f7 ]), Group([ f7 ]), Group([ ]) ] >>>> >>>> --- it works. >>>> Note that LoadAllPackages() is necessary, as apparently the GAP code >>>> uses one of these packages for these >>>> computation without telling us. >>>> >>>> So this is a sort of bug, yes, in our way of packaging GAP packages >>>> (and it's a sort of GAP's bug to call a code from a package >>>> without loading it explicitly...) >>>> I don't know what package it is yet. >>>> It's very early Sat. morning here, I'll have a look at it over the >>>> weekend. >>>> >>>> >>>> On Saturday, February 17, 2018 at 3:12:25 AM UTC, David Roe wrote: >>>>> >>>>> I'm trying to use GAP's small groups library (after installing >>>>> gap_packages) and getting strange errors that don't occur in GAP when >>>>> built >>>>> from source. In particular (using gap_console to get more traceback) >>>>> >>>>> sage: gap_console() >>>>> ... >>>>> gap> NormalSubgroups(SmallGroup(1458,1180)); >>>>> Error, List Element: <list>[4] must have an assigned value in >>>>> if map[d] > max then >>>>> elm := id; >>>>> else >>>>> if not IsBound( map[d] ) then >>>>> Error( "<elm> lies not in group defined by <pcgs>" ); >>>>> fi; >>>>> ll := LeadingExponentOfPcElement( pa, elm ); >>>>> lr := lc[d]; >>>>> exp[map[d]] := ll / lr mod ros[d]; >>>>> elm := LeftQuotientPowerPcgsElement( pcgs, map[d], exp[map[d]], >>>>> elm ); >>>>> fi; at /home/roed/sage/local/gap/latest/lib/pcgsind.gi:1411 called >>>>> from >>>>> ExponentsOfPcElement( NumeratorOfModuloPcgs( pcgs ), elm, >>>>> pcgs!.depthMap ) at /home/roed/sage/local/gap/latest/lib/ >>>>> pcgsmodu.gi:931 called from >>>>> ExponentsOfPcElement( ocr.modulePcgs, x ) at >>>>> /home/roed/sage/local/gap/latest/lib/onecohom.gi:264 called from >>>>> ocr.moduleMap( n ) at /home/roed/sage/local/gap/latest/lib/ >>>>> onecohom.gi:339 called from >>>>> ocr.listToCocycle( lc ) at /home/roed/sage/local/gap/latest/lib/ >>>>> grplatt.gi:1926 called from >>>>> opr( Zero( vs ), k ) at /home/roed/sage/local/gap/latest/lib/ >>>>> grplatt.gi:1932 called from >>>>> ... at line 2 of *stdin* >>>>> >>>>> Similar problems are occurring with other groups and some other >>>>> functions. >>>>> >>>>> In the interest of finishing my calculation, I tried the following in >>>>> an attempt to have Sage use a functional GAP: >>>>> >>>>> sage: import sage.interfaces.gap >>>>> sage: sage.interfaces.gap.gap_cmd = "/home/roed/gap4r8/bin/gap.sh" >>>>> sage: gap.eval('1+1') >>>>> >>>>> which hangs. Similarly, I tried copying my functional gap >>>>> installation to $SAGE_LOCAL/gap/ and updating the "latest" symlink; this >>>>> allows gap_console() to function correctly but gap.eval() still hangs. >>>>> >>>>> I don't tend to work with spkgs very often, so I feel like there's >>>>> probably something simple I'm overlooking. Any help in installing a >>>>> functioning gap would be appreciated. I'm also happy to help investigate >>>>> what's wrong with our process for installing the small groups library. >>>>> David >>>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "sage-devel" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to sage-devel+...@googlegroups.com. >>>> To post to this group, send email to sage-...@googlegroups.com. >>>> Visit this group at https://groups.google.com/group/sage-devel. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> >> -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at https://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.