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 > <javascript:>> 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 >> <javascript:>> 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 <javascript:>. >>> To post to this group, send email to sage-...@googlegroups.com >>> <javascript:>. >>> 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.