Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package gap-singular for openSUSE:Factory checked in at 2025-08-28 17:18:29 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gap-singular (Old) and /work/SRC/openSUSE:Factory/.gap-singular.new.1977 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gap-singular" Thu Aug 28 17:18:29 2025 rev:3 rq:1301624 version:2025.08.26 Changes: -------- --- /work/SRC/openSUSE:Factory/gap-singular/gap-singular.changes 2024-06-06 12:33:15.713880736 +0200 +++ /work/SRC/openSUSE:Factory/.gap-singular.new.1977/gap-singular.changes 2025-08-28 17:18:57.863959477 +0200 @@ -1,0 +2,6 @@ +Thu Aug 28 00:29:24 UTC 2025 - Jan Engelhardt <jeng...@inai.de> + +- Update to release 2025.08.26 + * Support bigint, bigintvec, and bigintmat + +------------------------------------------------------------------- Old: ---- singular-2024.06.03.tar.gz New: ---- _scmsync.obsinfo build.specials.obscpio singular-2025.08.26.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gap-singular.spec ++++++ --- /var/tmp/diff_new_pack.dYTjli/_old 2025-08-28 17:18:58.315978421 +0200 +++ /var/tmp/diff_new_pack.dYTjli/_new 2025-08-28 17:18:58.319978589 +0200 @@ -17,7 +17,7 @@ Name: gap-singular -Version: 2024.06.03 +Version: 2025.08.26 Release: 0 Summary: GAP: An interface to Singular License: GPL-2.0-or-later ++++++ _scmsync.obsinfo ++++++ mtime: 1756341137 commit: 8bb308c3b4a578d726de98628b64c019708e6a126edcef0c58bd58e6c915cf85 url: https://src.opensuse.org/jengelh/gap-singular revision: master ++++++ build.specials.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/.gitignore new/.gitignore --- old/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/.gitignore 2025-08-28 02:32:32.000000000 +0200 @@ -0,0 +1 @@ +.osc ++++++ singular-2024.06.03.tar.gz -> singular-2025.08.26.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/singular-2024.06.03/CHANGES.md new/singular-2025.08.26/CHANGES.md --- old/singular-2024.06.03/CHANGES.md 2024-06-03 23:07:56.000000000 +0200 +++ new/singular-2025.08.26/CHANGES.md 2025-08-26 15:36:32.000000000 +0200 @@ -1,5 +1,9 @@ This file describes changes in the GAP package `singular`. +- 2025.08.26 + - Add support for bigint, bigintvec, and bigintmat + (contributed by Jerry James) + - 2024.06.03 - Do not overwrite variables `sing_exec`, `sing_exec_options`, `SingularTempDirectory` when the package gets loaded diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/singular-2024.06.03/PackageInfo.g new/singular-2025.08.26/PackageInfo.g --- old/singular-2024.06.03/PackageInfo.g 2024-06-03 23:07:56.000000000 +0200 +++ new/singular-2025.08.26/PackageInfo.g 2025-08-26 15:36:32.000000000 +0200 @@ -11,7 +11,7 @@ SetPackageInfo( rec( PackageName := "singular", Subtitle := "A GAP interface to Singular", -Version := "2024.06.03", +Version := "2025.08.26", Date := Concatenation( ~.Version{[ 9, 10 ]}, "/", ~.Version{[ 6, 7 ]}, "/", ~.Version{[ 1 .. 4 ]} ), License := "GPL-2.0-or-later", @@ -82,7 +82,6 @@ PDFFile := "doc/manual.pdf", SixFile := "doc/manual.six", LongTitle := "A GAP interface to Singular", - Autoload := true ), Dependencies := rec( @@ -93,7 +92,6 @@ "https://www.singular.uni-kl.de/"] ] ), AvailabilityTest := ReturnTrue, -Autoload := false, TestFile := "tst/testall.g", Keywords := [ "Interface to Singular", "Groebner bases" ] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/singular-2024.06.03/doc/chap0.html new/singular-2025.08.26/doc/chap0.html --- old/singular-2024.06.03/doc/chap0.html 2024-06-03 23:08:40.000000000 +0200 +++ new/singular-2025.08.26/doc/chap0.html 2025-08-27 16:45:28.000000000 +0200 @@ -29,10 +29,10 @@ <h2>A <strong class="pkg">GAP</strong> interface to Singular</h2> <p> - 2024.06.03</p> + 2025.08.26</p> <p> - 3 June 2024 + 26 August 2025 </p> </div> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/singular-2024.06.03/doc/chap0.txt new/singular-2025.08.26/doc/chap0.txt --- old/singular-2024.06.03/doc/chap0.txt 2024-06-03 23:08:34.000000000 +0200 +++ new/singular-2025.08.26/doc/chap0.txt 2025-08-27 16:45:24.000000000 +0200 @@ -6,10 +6,10 @@ [1X A [5XGAP[105X interface to Singular [101X - 2024.06.03 + 2025.08.26 - 3 June 2024 + 26 August 2025 Marco Costantini diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/singular-2024.06.03/doc/chap0_mj.html new/singular-2025.08.26/doc/chap0_mj.html --- old/singular-2024.06.03/doc/chap0_mj.html 2024-06-03 23:08:40.000000000 +0200 +++ new/singular-2025.08.26/doc/chap0_mj.html 2025-08-27 16:45:28.000000000 +0200 @@ -32,10 +32,10 @@ <h2>A <strong class="pkg">GAP</strong> interface to Singular</h2> <p> - 2024.06.03</p> + 2025.08.26</p> <p> - 3 June 2024 + 26 August 2025 </p> </div> Binary files old/singular-2024.06.03/doc/manual.pdf and new/singular-2025.08.26/doc/manual.pdf differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/singular-2024.06.03/doc/title.xml new/singular-2025.08.26/doc/title.xml --- old/singular-2024.06.03/doc/title.xml 2024-06-03 23:08:34.000000000 +0200 +++ new/singular-2025.08.26/doc/title.xml 2025-08-27 16:45:24.000000000 +0200 @@ -9,7 +9,7 @@ A &GAP; interface to Singular </Subtitle> <Version> - 2024.06.03 + 2025.08.26 </Version> <Author> Marco Costantini<Alt Only="LaTeX"><Br/></Alt> @@ -29,6 +29,6 @@ </Author> <Date> - 3 June 2024 + 26 August 2025 </Date> </TitlePage> \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/singular-2024.06.03/gap/singular.g new/singular-2025.08.26/gap/singular.g --- old/singular-2024.06.03/gap/singular.g 2024-06-03 23:07:56.000000000 +0200 +++ new/singular-2025.08.26/gap/singular.g 2025-08-26 15:36:32.000000000 +0200 @@ -1144,6 +1144,32 @@ +BindGlobal( "ParseGapIntmatToSingBigintmat", function ( mat ) + local str, dim, i, j; + dim := DimensionsMat( mat ); + str := "(x->{bigintmat m["; + Append( str, String( dim[1] ) ); + Append( str, "]["); + Append( str, String( dim[2] ) ); + Append( str, "] = " ); + for i in [ 1 .. dim[1] ] do + Append( str, "\n" ); + for j in [ 1 .. dim[2] ] do + Append( str, String( mat[i][j] ) ); + if not (i = dim[1] and j = dim[2]) then + Append( str, "," ); + fi; + if j mod 50 = 0 then + Append( str, "\n" ); + fi; + od; + od; + Append( str, "; m})(0)" ); + return str; +end ); + + + BindGlobal( "ParseGapIntvecToSingIntvec", function ( vec ) local str, dim, i; dim := Length( vec ); @@ -1163,6 +1189,24 @@ +BindGlobal( "ParseGapIntvecToSingBigintvec", function ( vec ) + local str, dim, i; + dim := Length( vec ); + str := "bigintvec("; + for i in [ 1 .. dim ] do + Append( str, String( vec[i] ) ); + if not i = dim then + Append( str, "," ); + fi; + if i mod 50 = 0 then + Append( str, "\n" ); + fi; + od; + Append( str, ")" ); + return str; +end ); + + BindGlobal( "ParseGapModuleToSingModule", function ( M ) @@ -1851,10 +1895,37 @@ intvec := [ "Variables of type intvec are lists of integers.", obj -> IsRowVector( obj ) and ForAll( obj, IsSingularInt ), ParseGapIntvecToSingIntvec, - obj -> List( SplitString( obj, ',' ), Int ), + obj -> List( SplitString( obj, ',', ' ' ), Int ), ], + bigint := [ "Variables of type bigint represent arbitrarily long integers.", + obj -> IsInt( obj ) and ( SingularVersion >= 4000 or + # because it may be still unknown + SingularVersion = 0 ), + String, + Int + ], + + + bigintmat := [ "Variables of type bigintmat are matrices with arbitrarily \ +long integer entries.", + obj -> IsMatrix( obj ) and + ForAll( obj, x -> ForAll( x, IsInt ) ) and + ( SingularVersion >= 4000 or SingularVersion = 0 ), + ParseGapIntmatToSingBigintmat, + ], + + + bigintvec := [ "Variables of type bigintvec are lists of arbitrarily long \ +integers.", + obj -> IsRowVector( obj ) and ForAll( obj, IsInt ) and + ( SingularVersion >= 4400 or SingularVersion = 0 ), + ParseGapIntvecToSingBigintvec, + obj -> List( SplitString( obj, ',', ' ' ), Int ), + ], + + link := [ "Links are the communication channels of SINGULAR, i.e., \ something SINGULAR can write to and/or read from.", ReturnFalse, # not implemented @@ -2004,19 +2075,6 @@ ], - bigint := [ "Variables of type bigint represent the arbitrary long \ -integers. They can only be constructed from other types (int, number).", -# obj -> IsInt( obj ) and ( SingularVersion >= 3002 or -# # because it may be still unknown -# SingularVersion = 0 ), -# obj -> Concatenation( "bigint(", String( obj ), ")" ), -ReturnFalse, -, - Int - ], - - - package := [ "The data type package is used to group identifiers into \ collections. Introduced in Singular 3.0.0.", ReturnFalse, # makes no sense in Gap @@ -2030,10 +2088,10 @@ # the record entries in the order that we have given them (a change introduced # in GAP 4.5). So we here list the order in which they should be tested -SingularDataTypeTestOrder := [ "def", "ideal", "int", "intmat", "intvec", "link", - "map", "matrix", "module", "number", "poly", "proc", "qring", "resolution", - "ring", "string", "vector", "list", "?unknown type?", "none", "bigint", - "package" ]; +SingularDataTypeTestOrder := [ "def", "ideal", "int", "intmat", "intvec", + "bigint", "bigintvec", "bigintmat", "link", "map", "matrix", "module", + "number", "poly", "proc", "qring", "resolution", "ring", "string", "vector", + "list", "?unknown type?", "none", "package" ]; # And check for sanity that this set is same as the names in the record if Set(SingularDataTypeTestOrder) <> Set(RecNames(SingularDataTypes)) then @@ -2160,8 +2218,8 @@ return ideal; - # intmat - elif type_output = "intmat" then + # intmat / bigintmat + elif type_output = "intmat" or type_output = "bigintmat" then list:= List( SplitString( obj, ',' ,' '), Int ); command := Concatenation( "nrows( ", singname, " );" ); nrows := Int( SingCommandInStreamOutStream( "", command ) ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/singular-2024.06.03/tst/testall.tst new/singular-2025.08.26/tst/testall.tst --- old/singular-2024.06.03/tst/testall.tst 2024-06-03 23:07:56.000000000 +0200 +++ new/singular-2025.08.26/tst/testall.tst 2025-08-26 15:36:32.000000000 +0200 @@ -538,6 +538,10 @@ [ [ 12, 34 ], [ 56, 78 ] ] gap> intvec:=[98765,4321]; [ 98765, 4321 ] +gap> bigint:=18446744073709551616; +18446744073709551616 +gap> bigintmat:=[[18446744073709551616,34],[56,432109876543210]]; +[ [ 18446744073709551616, 34 ], [ 56, 432109876543210 ] ] gap> map:=AlgebraGeneralMappingByImages(ring,ring,[x,y],[x+y,x-y]); [ x, y ] -> [ x+y, x-y ] gap> matrix:=[[x+y, x*y],[x+y+x*y,x^2+y^2]]; @@ -557,27 +561,29 @@ # gap> list1 := [ ideal, int, intmat, intvec, map, matrix, module, number, -> poly, proc, ring, string, vector]; +> poly, proc, ring, string, vector, bigint, bigintmat ]; [ <two-sided ideal in GF(5)[x,y], (2 generators)>, 123456, [ [ 12, 34 ], [ 56, 78 ] ], [ 98765, 4321 ], [ x, y ] -> [ x+y, x-y ], [ [ x+y, x*y ], [ x*y+x+y, x^2+y^2 ] ], <free left module over PolynomialRing( GF(5), ["x", "y"] ), with 2 generators>, Z(5)^3, x^3+y^3+Z(5)^3*x^2+Z(5)^3*x*y+y^2+Z(5)^3*y, function( ) ... end, GF(5)[x,y], "ciao", - [ x^3+y^3, Z(5)^3, x*y+y^2+Z(5)^3*y ] ] + [ x^3+y^3, Z(5)^3, x*y+y^2+Z(5)^3*y ], 18446744073709551616, + [ [ 18446744073709551616, 34 ], [ 56, 432109876543210 ] ] ] gap> List( list1, SingularType); [ "ideal", "int", "intmat", "intvec", "map", "matrix", "module", "number", - "poly", "proc", "ring", "string", "vector" ] + "poly", "proc", "ring", "string", "vector", "bigint", "bigintmat" ] # gap> list2 := [ ideal, int, intmat, intvec, matrix, module, number, -> poly, string, vector]; +> poly, string, vector, bigint, bigintmat ]; [ <two-sided ideal in GF(5)[x,y], (2 generators)>, 123456, [ [ 12, 34 ], [ 56, 78 ] ], [ 98765, 4321 ], [ [ x+y, x*y ], [ x*y+x+y, x^2+y^2 ] ], <free left module over PolynomialRing( GF(5), ["x", "y"] ), with 2 generators>, Z(5)^3, x^3+y^3+Z(5)^3*x^2+Z(5)^3*x*y+y^2+Z(5)^3*y, - "ciao", [ x^3+y^3, Z(5)^3, x*y+y^2+Z(5)^3*y ] ] + "ciao", [ x^3+y^3, Z(5)^3, x*y+y^2+Z(5)^3*y ], 18446744073709551616, + [ [ 18446744073709551616, 34 ], [ 56, 432109876543210 ] ] ] gap> list3 := SingularInterface( "id_func", [list2], "def" ); #I running SingularInterface( "id_func", [ "list" ], "def" )... #I done SingularInterface. @@ -591,7 +597,8 @@ [ [ x+y, x*y ], [ x*y+x+y, x^2+y^2 ] ], <free left module over PolynomialRing( GF(5), ["x", "y"] ), with 2 generators>, Z(5)^3, x^3+y^3+Z(5)^3*x^2+Z(5)^3*x*y+y^2+Z(5)^3*y, - "ciao", [ x^3+y^3, Z(5)^3, x*y+y^2+Z(5)^3*y ] ] + "ciao", [ x^3+y^3, Z(5)^3, x*y+y^2+Z(5)^3*y ], 18446744073709551616, + [ [ 18446744073709551616, 34 ], [ 56, 432109876543210 ] ] ] # gap> for i in [2,3,4,5,7,8,9,10] do @@ -619,7 +626,7 @@ # this should be at the end of the test file: # gap> [ SingularNr.Process, SingularNr.Input, SingularNr.Output ]; -[ 0, 1136, 1136 ] +[ 0, 1156, 1156 ] gap> SingularBaseRing; GF(5)[x,y] gap> CoefficientsRing( SingularBaseRing );