diff --git a/bin/BuildPackages.sh b/bin/BuildPackages.sh index bd767b8e94..6592c75a3e 100755 --- a/bin/BuildPackages.sh +++ b/bin/BuildPackages.sh @@ -78,23 +78,16 @@ build_carat() { # this out until a user complains. # It is not possible to move around compiled binaries because these have the # path to some data files burned in. -tar xzpf carat-2.1b1.tgz -rm -f bin +zcat carat-2.1b1.tgz | tar pxf - ln -s carat-2.1b1/bin bin -cd carat-2.1b1/functions -# Install the include Gmp first. -# (If you have already Gmp on your system, you can delete the file -# gmp-*.tar.gz and delete the target 'Gmp' from the target 'ALL' in -# carat-2.1b1/Makefile.) -tar xzpf gmp-*.tar.gz -cd .. -$MAKE TOPDIR=`pwd` Links -# Note that Gmp may use processor specific code, so this step may not be ok -# for a network installation if you want to use the package on older computers -# as well. -$MAKE TOPDIR=`pwd` Gmp -# And now the actual Carat programs. -$MAKE TOPDIR=`pwd` CFLAGS='-O2' +cd carat-2.1b1 +make TOPDIR=`pwd` +chmod -R a+rX . +cd bin +aa=`./config.guess` +for x in "`ls -d1 $GAPDIR/bin/${aa}*`"; do + ln -s "$aa" "`basename $x`" +done ) } diff --git a/cnf/gac.in b/cnf/gac.in index b4a4c0c7bb..ad603201e2 100644 --- a/cnf/gac.in +++ b/cnf/gac.in @@ -129,6 +129,7 @@ OBJECTS="\ plist.o \ pperm.o \ precord.o \ + profile.o \ range.o \ rational.o \ read.o \ diff --git a/doc/changes/changes48.xml b/doc/changes/changes48.xml index 05160dcdd8..a8f603c048 100644 --- a/doc/changes/changes48.xml +++ b/doc/changes/changes48.xml @@ -362,6 +362,117 @@ Fix for using Firefox as a default help viewer with +
+⪆ 4.8.4 (June 2016) + + +Changes in the core ⪆ system introduced in ⪆ 4.8.4 + +New features: + + + +The ⪆ distribution now includes bin/BuildPackages.sh, a script which +can be started from the pkg directory via ../bin/BuildPackages.sh +and will attempt to build as many packages as possible. It replaces the +InstPackages.sh script which was not a part of the ⪆ distribution +and had to be downloaded separately from the ⪆ website. The new script is +more robust and simplifies adding new packages with binaries, as it requires no +adjustments if the new package supports the standard ./configure; make +build procedure. + + + +Improved and extended functionality: + + + + now produces more informative error +message in the case when could +not load the requested group. + + + +An info message with the suggestion to use + will now be displayed +when returns fail +(unless ⪆ is started with -b option). + + + +The build system will now enable C++ support in GMP +only if a working C++ compiler is detected. + + + +More checks were added when embedding coefficient rings or rational numbers +into polynomial rings in order to forbid adding polynomials in different +characteristic. + + + +Fixed bugs that could lead to crashes: + + + +Fixed the crash in --cover mode when reading files +with more than 65,536 lines. + + + +Fixed bugs that could lead to incorrect results: + + + +Fixed an error in the code for partial permutations that +occurred on big-endian systems. [Reported by Bill Allombert] + + + +Fixed the kernel method for with +one argument, which failed to reduce the length of a list to the +position of the last bound entry. [Reported by Peter Schauenburg] + + + +Fixed bugs that could lead to break loops: + + + +Fixed the break loop while using +on permutation groups by removing some old code that relied on further caching +in Factorization. [Reported by Grahame Erskine] + + + +Fixed a problem with computation of maximal subgroups in an almost +simple group. [Reported by Ramon Esteban Romero] + + + +Added missing methods for +when one of the arguments is an empty list. [Reported by Wilf Wilson] + + + +Other fixed bugs: + + + +Fixed several bugs in . +[Reported by Nusa Zidaric] + + + +Fixed several problems with +on long lists in 64-bit GAP installations. + + + + + +
+ diff --git a/doc/ref/testconsistency.g b/doc/ref/testconsistency.g index 166004b40d..b135579069 100644 --- a/doc/ref/testconsistency.g +++ b/doc/ref/testconsistency.g @@ -101,13 +101,20 @@ for elt in x do else obj := EvalString( name ); man := ManSectionType( obj ); - # we allow to use "Meth" for "Oper" but probably should issue a warning - # if there is no at least one "Oper" for any "Meth" + # we allow to use "Meth" for "Oper", "Attr", "Prop" but issue a warning + # if there is no at least one "Oper", "Attr" or "Prop" for any "Meth" if ( man <> elt.name ) and not ( man in ["Attr","Prop","Oper"] and elt.name="Meth") then pos:=OriginalPositionDocument(doc[2],elt.start); Print( pos[1], ":", pos[2], " : ", name, " uses ", elt.name, " instead of ", man, "\n"); errcount:=errcount+1; fi; + if elt.name="Meth" then + if Length( Filtered( x, t -> t.attributes.Name=name and t.name in ["Attr","Prop","Oper"] ) ) = 0 then + pos:=OriginalPositionDocument(doc[2],elt.start); + Print( pos[1], ":", pos[2], " : ", name, " uses Meth with no matching Oper/Attr/Prop\n" ); + errcount:=errcount+1; + fi; + fi; fi; fi; od; diff --git a/lib/alglie.gd b/lib/alglie.gd index 4677ca0af1..8cdd3579d1 100644 --- a/lib/alglie.gd +++ b/lib/alglie.gd @@ -431,7 +431,7 @@ DeclareSynonymAttr( "NonLieNilpotentElement", NonNilpotentElement); ## ## <#GAPDoc Label="AdjointAssociativeAlgebra"> ## -## +## ## ## ## is the associative matrix algebra (with 1) generated by the matrices of @@ -791,7 +791,7 @@ DeclareOperation("PClosureSubalgebra", [IsLieAlgebra and IsJacobianElementCollec ## ## <#GAPDoc Label="FindSl2"> ## -## +## ## ## ## This function tries to find a subalgebra S of the Lie algebra diff --git a/lib/ffe.gd b/lib/ffe.gd index fd4f65a011..79c727fbfc 100644 --- a/lib/ffe.gd +++ b/lib/ffe.gd @@ -168,8 +168,8 @@ ## ## <#GAPDoc Label="DefaultField:ffe"> ## -## -## +## +## ## ## ## and diff --git a/lib/grp.gd b/lib/grp.gd index 00fd5dc3dd..a565ed4950 100644 --- a/lib/grp.gd +++ b/lib/grp.gd @@ -2893,7 +2893,7 @@ DeclareOperation( "IsCharacteristicSubgroup", [IsGroup,IsGroup] ); ## ## <#GAPDoc Label="IsPNilpotent"> ## -## +## ## ## ## A group is p-nilpotent if it possesses a normal p-complement. @@ -2910,7 +2910,7 @@ KeyDependentOperation( "IsPNilpotent", IsGroup, IsPosInt, "prime" ); ## ## <#GAPDoc Label="IsPSolvable"> ## -## +## ## ## ## A finite group is p-solvable if every chief factor either has @@ -3112,7 +3112,7 @@ KeyDependentOperation( "PCentralSeries", IsGroup, IsPosInt, "prime" ); ## ## <#GAPDoc Label="PRump"> ## -## +## ## ## ## For a prime p, the p-rump of a group G is @@ -4052,8 +4052,8 @@ DeclareAttribute( "IsomorphismFpGroup", IsGroup ); ## ## <#GAPDoc Label="IsomorphismFpGroupByGenerators"> ## -## -## +## +## ## ## ## returns an isomorphism from a finite group G @@ -4297,7 +4297,7 @@ DeclareGlobalFunction( "PowerMapOfGroupWithInvariants" ); ## ## <#GAPDoc Label="HasAbelianFactorGroup"> ## -## +## ## ## ## tests whether G / N is abelian @@ -4340,7 +4340,7 @@ DeclareGlobalFunction("HasSolvableFactorGroup"); ## ## <#GAPDoc Label="HasElementaryAbelianFactorGroup"> ## -## +## ## ## ## tests whether G / N is elementary abelian diff --git a/lib/grpfp.gd b/lib/grpfp.gd index 67bb5b44bd..d8e365e798 100644 --- a/lib/grpfp.gd +++ b/lib/grpfp.gd @@ -216,7 +216,7 @@ InstallTrueMethod(CanEasilyTestMembership, IsSubgroupFgGroup and IsWholeFamily); ## ## <#GAPDoc Label="IsFpGroup"> ## -## +## ## ## ## is a synonym for diff --git a/lib/grppc.gd b/lib/grppc.gd index 78f7e23462..6222e60f42 100644 --- a/lib/grppc.gd +++ b/lib/grppc.gd @@ -286,7 +286,7 @@ DeclareAttribute( "GeneralizedPcgs", IsGroup ); ## ## <#GAPDoc Label="CanEasilyComputePcgs"> ## -## +## ## ## ## This filter indicates whether it is possible to compute a pcgs for diff --git a/lib/grppclat.gd b/lib/grppclat.gd index b1f738accd..b4be03d5ac 100644 --- a/lib/grppclat.gd +++ b/lib/grppclat.gd @@ -68,7 +68,7 @@ DeclareGlobalFunction("InvariantElementaryAbelianSeries"); ## ## <#GAPDoc Label="InducedAutomorphism"> ## -## +## ## ## ## Let aut be an automorphism of a group G and epi be diff --git a/lib/lierep.gd b/lib/lierep.gd index 0088ddcfb3..13d1436747 100644 --- a/lib/lierep.gd +++ b/lib/lierep.gd @@ -805,7 +805,7 @@ DeclareCategory( "IsBasisOfWeightRepElementSpace", IsBasis ); ## ## <#GAPDoc Label="HighestWeightModule"> ## -## +## ## ## ## returns the highest weight module with highest weight wt of the diff --git a/lib/matint.gd b/lib/matint.gd index 7f91521139..eb4ddf9bff 100644 --- a/lib/matint.gd +++ b/lib/matint.gd @@ -195,7 +195,7 @@ DeclareOperation("SmithNormalFormIntegerMatTransforms",[IsMatrix]); ## ## <#GAPDoc Label="DiagonalizeIntMat"> ## -## +## ## ## ## This function changes mat to its SNF. @@ -233,7 +233,7 @@ DeclareGlobalFunction( "DiagonalizeIntMat" ); ## ## <#GAPDoc Label="NormalFormIntMat"> ## -## +## ## ## ## This general operation for computation of various Normal Forms @@ -338,7 +338,7 @@ DeclareAttribute( "BaseIntMat", ## ## <#GAPDoc Label="BaseIntersectionIntMats"> ## -## +## ## ## ## If m and n are matrices with integral entries, @@ -365,7 +365,7 @@ DeclareOperation( "BaseIntersectionIntMats", ## ## <#GAPDoc Label="ComplementIntMat"> ## -## +## ## ## ## Let full be a list of integer vectors generating an integral row @@ -522,7 +522,7 @@ DeclareAttribute( "AbelianInvariantsOfList", IsCyclotomicCollection ); ## ## <#GAPDoc Label="DeterminantIntMat"> ## -## +## ## ## ## determinant diff --git a/lib/matrix.gd b/lib/matrix.gd index ce266910d5..8a2c704059 100644 --- a/lib/matrix.gd +++ b/lib/matrix.gd @@ -122,7 +122,7 @@ DeclareOperation("IsLowerTriangularMat",[IsMatrix]); ## ## <#GAPDoc Label="DiagonalOfMat"> ## -## +## ## ## ## returns the diagonal of the matrix mat. If mat is not a diff --git a/lib/oprt.gd b/lib/oprt.gd index 6e44c2ece9..5a0343c8c8 100644 --- a/lib/oprt.gd +++ b/lib/oprt.gd @@ -1927,7 +1927,7 @@ DeclareOperation( "PermutationCycleOp", ## ## <#GAPDoc Label="Cycle"> ## -## +## ## ## ## returns a list of the points in the cycle of pnt under the action @@ -1947,7 +1947,7 @@ DeclareOperation( "CycleOp", [ IsObject, IsList, IsObject, IsFunction ] ); ## ## <#GAPDoc Label="Cycles"> ## -## +## ## ## ## returns a list of the cycles (as lists of points) of the action of the @@ -1967,7 +1967,7 @@ DeclareOperation( "CyclesOp", [ IsObject, IsList, IsFunction ] ); ## ## <#GAPDoc Label="CycleLength"> ## -## +## ## ## ## returns the length of the cycle of pnt under the action of the element diff --git a/lib/pcgs.gd b/lib/pcgs.gd index ec67f75434..0d3c23911a 100644 --- a/lib/pcgs.gd +++ b/lib/pcgs.gd @@ -975,7 +975,7 @@ DeclareOperation( "DepthAndLeadingExponentOfPcElement", ## ## <#GAPDoc Label="PcElementByExponents"> ## -## +## ## ## ## @@ -1006,7 +1006,7 @@ DeclareOperation( "PcElementByExponentsNC", ## ## <#GAPDoc Label="LinearCombinationPcgs"> ## -## +## ## ## ## returns the product \prod_i pcgs[i]^{{list[i]}}. diff --git a/lib/sgpres.gd b/lib/sgpres.gd index 789fe4c9e6..f1615c49fa 100644 --- a/lib/sgpres.gd +++ b/lib/sgpres.gd @@ -167,7 +167,7 @@ AbelianInvariantsSubgroupFpGroup := AbelianInvariantsSubgroupFpGroupRrs; ## ## <#GAPDoc Label="AugmentedCosetTableInWholeGroup"> ## -## +## ## ## ## For a subgroup H of a finitely presented group, this function diff --git a/lib/tietze.gd b/lib/tietze.gd index bf7b05df7f..8283fc3e55 100644 --- a/lib/tietze.gd +++ b/lib/tietze.gd @@ -102,7 +102,7 @@ DeclareGlobalFunction("AbstractWordTietzeWord"); ## ## <#GAPDoc Label="TietzeWordAbstractWord"> ## -## +## ## ## ## assumes fgens to be a list of free group generators @@ -110,7 +110,7 @@ DeclareGlobalFunction("AbstractWordTietzeWord"); ## It converts word into a Tietze word, ## i. e., a list of positive or negative generator numbers. ##

-## This function simply calls . +## This function simply calls . ## ## ## <#/GAPDoc> diff --git a/lib/vecmat.gd b/lib/vecmat.gd index 76eea4d6b3..e353d40946 100644 --- a/lib/vecmat.gd +++ b/lib/vecmat.gd @@ -404,7 +404,7 @@ end ); ## ## <#GAPDoc Label="ImmutableMatrix"> ## -## +## ## ## ## returns an immutable matrix equal to matrix which is in the optimal diff --git a/src/gap.c b/src/gap.c index 907d39cabf..dd211cb474 100644 --- a/src/gap.c +++ b/src/gap.c @@ -3305,6 +3305,7 @@ static Int PostRestore ( Last2 = GVarName( "last2" ); Last3 = GVarName( "last3" ); Time = GVarName( "time" ); + AssGVar(Time, INTOBJ_INT(0)); QUITTINGGVar = GVarName( "QUITTING" ); /* return success */ diff --git a/src/read.c b/src/read.c index 82b5fb24d3..130ffbfb01 100644 --- a/src/read.c +++ b/src/read.c @@ -692,13 +692,19 @@ void ReadCallVarAss ( } } +#ifdef HPCGAP +#define ASSIGN_ERROR_MESSAGE ":= or ::=" +#else +#define ASSIGN_ERROR_MESSAGE ":=" +#endif + /* if we need a statement */ else if ( mode == 's' || (mode == 'x' && IS_IN(TLS(Symbol), S_ASSIGN)) ) { if ( type != 'c' && type != 'C') { if (TLS(Symbol) != S_ASSIGN) - Match( S_INCORPORATE, ":= or ::=", follow); + Match( S_INCORPORATE, ASSIGN_ERROR_MESSAGE, follow); else - Match( S_ASSIGN, ":= or ::=", follow ); + Match( S_ASSIGN, ASSIGN_ERROR_MESSAGE, follow ); if ( TLS(CountNams) == 0 || !TLS(IntrCoding) ) { TLS(CurrLHSGVar) = (type == 'g' ? var : 0); } ReadExpr( follow, 'r' ); } diff --git a/trans/trans.grp b/trans/trans.grp index 8555512583..e7c5e16d2b 100644 --- a/trans/trans.grp +++ b/trans/trans.grp @@ -328,6 +328,9 @@ local l; end); InstallGlobalFunction(NrTransitiveGroups, function(deg) + if deg=1 then + return 0; + fi; if not(deg in [1..TRANSDEGREES]) then return fail; fi; @@ -342,6 +345,9 @@ InstallGlobalFunction( TransitiveGroup, function(deg,num) if not(deg in [1..TRANSDEGREES]) then Error("degree must be in [1..",TRANSDEGREES,"]"); fi; + if deg=1 then + return fail; + fi; if not IsBound(TRANSLENGTHS[deg]) then TransGrpLoad(deg,num); fi;