diff -Nru ginac-1.8.2/aclocal.m4 ginac-1.8.3/aclocal.m4 --- ginac-1.8.2/aclocal.m4 2022-01-01 17:41:43.000000000 +0000 +++ ginac-1.8.3/aclocal.m4 2022-03-23 20:32:13.000000000 +0000 @@ -1406,7 +1406,14 @@ am_cv_python_pythondir=`$PYTHON -c " $am_python_setup_sysconfig if can_use_sysconfig: - sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'}) + if hasattr(sysconfig, 'get_default_scheme'): + scheme = sysconfig.get_default_scheme() + else: + scheme = sysconfig._get_default_scheme() + if scheme == 'posix_local': + # Debian's default scheme installs to /usr/local/ but we want to find headers in /usr/ + scheme = 'posix_prefix' + sitedir = sysconfig.get_path('purelib', scheme, vars={'base':'$am_py_prefix'}) else: from distutils import sysconfig sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix') @@ -1448,7 +1455,14 @@ am_cv_python_pyexecdir=`$PYTHON -c " $am_python_setup_sysconfig if can_use_sysconfig: - sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_exec_prefix'}) + if hasattr(sysconfig, 'get_default_scheme'): + scheme = sysconfig.get_default_scheme() + else: + scheme = sysconfig._get_default_scheme() + if scheme == 'posix_local': + # Debian's default scheme installs to /usr/local/ but we want to find headers in /usr/ + scheme = 'posix_prefix' + sitedir = sysconfig.get_path('platlib', scheme, vars={'platbase':'$am_py_exec_prefix'}) else: from distutils import sysconfig sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_exec_prefix') diff -Nru ginac-1.8.2/check/exam_inifcns_nstdsums.cpp ginac-1.8.3/check/exam_inifcns_nstdsums.cpp --- ginac-1.8.2/check/exam_inifcns_nstdsums.cpp 2022-01-01 15:57:09.000000000 +0000 +++ ginac-1.8.3/check/exam_inifcns_nstdsums.cpp 2022-01-15 11:10:02.000000000 +0000 @@ -128,7 +128,8 @@ using GiNaC::log; int digitsbuf = Digits; Digits = 17; - ex prec = 5 * pow(10, -(ex)Digits); + // 15.01.2022: prec set to 10*pow(10,-Digits) to avoid exam failure in sporadic cases + ex prec = 10 * pow(10, -(ex)Digits); numeric almostone("0.999999999999999999"); unsigned result = 0; diff -Nru ginac-1.8.2/check/exam_matrices.cpp ginac-1.8.3/check/exam_matrices.cpp --- ginac-1.8.2/check/exam_matrices.cpp 2022-01-01 15:57:09.000000000 +0000 +++ ginac-1.8.3/check/exam_matrices.cpp 2022-02-14 11:35:45.000000000 +0000 @@ -367,7 +367,7 @@ bool caught = false; try { m5 = inverse(m4); - } catch (std::runtime_error err) { + } catch (std::runtime_error &err) { caught = true; } if (!caught) { diff -Nru ginac-1.8.2/check/exam_misc.cpp ginac-1.8.3/check/exam_misc.cpp --- ginac-1.8.2/check/exam_misc.cpp 2022-01-01 15:57:09.000000000 +0000 +++ ginac-1.8.3/check/exam_misc.cpp 2022-03-23 20:20:35.000000000 +0000 @@ -192,6 +192,24 @@ ++result; } + // This used to fail in GiNaC 1.8.2 with subs_options::no_pattern + e1 = 1/x; + e2 = e1.subs(x == 1/x); + if (!e2.is_equal(x)) { + clog << "(1/x).subs(x==1/x) erroneously returned " << e2 << " instead of x" << endl; + ++result; + } + e2 = e1.subs(x == 1/x, subs_options::no_pattern); + if (!e2.is_equal(x)) { + clog << "(1/x).subs(x==1/x, subs_options::no_pattern) erroneously returned " << e2 << " instead of x" << endl; + ++result; + } + e2 = e1.subs(x == 1/x, subs_options::algebraic); + if (!e2.is_equal(x)) { + clog << "(1/x).subs(x==1/x, subs_options::algebraic) erroneously returned " << e2 << " instead of x" << endl; + ++result; + } + return result; } diff -Nru ginac-1.8.2/configure ginac-1.8.3/configure --- ginac-1.8.2/configure 2022-01-01 17:41:47.000000000 +0000 +++ ginac-1.8.3/configure 2022-03-23 20:32:17.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for GiNaC 1.8.2. +# Generated by GNU Autoconf 2.71 for GiNaC 1.8.3. # # Report bugs to . # @@ -621,8 +621,8 @@ # Identity of this package. PACKAGE_NAME='GiNaC' PACKAGE_TARNAME='ginac' -PACKAGE_VERSION='1.8.2' -PACKAGE_STRING='GiNaC 1.8.2' +PACKAGE_VERSION='1.8.3' +PACKAGE_STRING='GiNaC 1.8.3' PACKAGE_BUGREPORT='ginac-list@ginac.de' PACKAGE_URL='https://www.ginac.de/' @@ -1417,7 +1417,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures GiNaC 1.8.2 to adapt to many kinds of systems. +\`configure' configures GiNaC 1.8.3 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1488,7 +1488,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of GiNaC 1.8.2:";; + short | recursive ) echo "Configuration of GiNaC 1.8.3:";; esac cat <<\_ACEOF @@ -1624,7 +1624,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -GiNaC configure 1.8.2 +GiNaC configure 1.8.3 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2061,7 +2061,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by GiNaC $as_me 1.8.2, which was +It was created by GiNaC $as_me 1.8.3, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3552,7 +3552,7 @@ # Define the identity of the package. PACKAGE='ginac' - VERSION='1.8.2' + VERSION='1.8.3' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -3656,7 +3656,7 @@ fi -LT_VERSION_INFO="12:1:1" +LT_VERSION_INFO="12:2:1" @@ -6909,7 +6909,7 @@ lt_cv_deplibs_check_method=pass_all ;; -netbsd*) +netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else @@ -7293,7 +7293,7 @@ fi : ${AR=ar} -: ${AR_FLAGS=cru} +: ${AR_FLAGS=cr} @@ -7817,11 +7817,8 @@ test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 - (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s "$nlist"; then + $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&5 + if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&5 && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" @@ -9116,8 +9113,8 @@ _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 - echo "$AR cru libconftest.a conftest.o" >&5 - $AR cru libconftest.a conftest.o 2>&5 + echo "$AR cr libconftest.a conftest.o" >&5 + $AR cr libconftest.a conftest.o 2>&5 echo "$RANLIB libconftest.a" >&5 $RANLIB libconftest.a 2>&5 cat > conftest.c << _LT_EOF @@ -9149,11 +9146,11 @@ # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in - 10.0,*86*-darwin8*|10.0,*-darwin[91]*) + 10.0,*86*-darwin8*|10.0,*-darwin[912]*) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; 10.[012][,.]*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; - 10.*) + 10.*|11.*) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; esac ;; @@ -9458,7 +9455,7 @@ LIBTOOL_DEPS=$ltmain # Always use our own libtool. -LIBTOOL="${CONFIG_SHELL-$SHELL} "'$(top_builddir)/libtool' +LIBTOOL='$(SHELL) $(top_builddir)/libtool' @@ -10022,6 +10019,12 @@ lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; + # flang / f18. f95 an alias for gfortran or flang on Debian + flang* | f18* | f95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) @@ -10503,6 +10506,9 @@ openbsd* | bitrig*) with_gnu_ld=no ;; + linux* | k*bsd*-gnu | gnu*) + link_all_deplibs=no + ;; esac ld_shlibs=yes @@ -10757,7 +10763,7 @@ fi ;; - netbsd*) + netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= @@ -11434,6 +11440,7 @@ if test yes = "$lt_cv_irix_exported_symbol"; then archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' fi + link_all_deplibs=no else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' @@ -11455,7 +11462,7 @@ esac ;; - netbsd*) + netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else @@ -12574,6 +12581,18 @@ dynamic_linker='GNU/Linux ld.so' ;; +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + netbsd*) version_type=sunos need_lib_prefix=no @@ -13966,7 +13985,7 @@ # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' else GXX=no @@ -14462,7 +14481,7 @@ # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes = "$GXX"; then @@ -14527,7 +14546,7 @@ # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes = "$GXX"; then @@ -14866,7 +14885,7 @@ # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' else # FIXME: insert proper C++ library support @@ -14950,7 +14969,7 @@ # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' else # g++ 2.7 appears to require '-G' NOT '-shared' on this # platform. @@ -14961,7 +14980,7 @@ # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' fi hardcode_libdir_flag_spec_CXX='$wl-R $wl$libdir' @@ -15474,7 +15493,7 @@ ;; esac ;; - netbsd*) + netbsd* | netbsdelf*-gnu) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise @@ -15854,6 +15873,9 @@ ;; esac ;; + linux* | k*bsd*-gnu | gnu*) + link_all_deplibs_CXX=no + ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; @@ -16551,6 +16573,18 @@ dynamic_linker='GNU/Linux ld.so' ;; +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + netbsd*) version_type=sunos need_lib_prefix=no @@ -18642,7 +18676,7 @@ *-*-aix*) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#if defined __powerpc64__ || defined __LP64__ +#if defined __powerpc64__ || defined _ARCH_PPC64 int ok; #else error fail @@ -18932,7 +18966,7 @@ # be generating 64-bit code. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#if defined __powerpc64__ || defined __LP64__ +#if defined __powerpc64__ || defined _ARCH_PPC64 int ok; #else error fail @@ -19058,7 +19092,7 @@ fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_elf" >&5 printf "%s\n" "$gl_cv_elf" >&6; } - if test $gl_cv_elf = yes; then + if test $gl_cv_elf; then # Extract the ELF class of a file (5th byte) in decimal. # Cf. https://en.wikipedia.org/wiki/Executable_and_Linkable_Format#File_header if od -A x < /dev/null >/dev/null 2>/dev/null; then @@ -19075,22 +19109,19 @@ echo } fi - # Use 'expr', not 'test', to compare the values of func_elfclass, because on - # Solaris 11 OpenIndiana and Solaris 11 OmniOS, the result is 001 or 002, - # not 1 or 2. case $HOST_CPU_C_ABI_32BIT in yes) # 32-bit ABI. acl_is_expected_elfclass () { - expr "`func_elfclass | sed -e 's/[ ]//g'`" = 1 > /dev/null + test "`func_elfclass | sed -e 's/[ ]//g'`" = 1 } ;; no) # 64-bit ABI. acl_is_expected_elfclass () { - expr "`func_elfclass | sed -e 's/[ ]//g'`" = 2 > /dev/null + test "`func_elfclass | sed -e 's/[ ]//g'`" = 2 } ;; *) @@ -19896,7 +19927,14 @@ am_cv_python_pythondir=`$PYTHON -c " $am_python_setup_sysconfig if can_use_sysconfig: - sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'}) + if hasattr(sysconfig, 'get_default_scheme'): + scheme = sysconfig.get_default_scheme() + else: + scheme = sysconfig._get_default_scheme() + if scheme == 'posix_local': + # Debian's default scheme installs to /usr/local/ but we want to find headers in /usr/ + scheme = 'posix_prefix' + sitedir = sysconfig.get_path('purelib', scheme, vars={'base':'$am_py_prefix'}) else: from distutils import sysconfig sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix') @@ -19939,7 +19977,14 @@ am_cv_python_pyexecdir=`$PYTHON -c " $am_python_setup_sysconfig if can_use_sysconfig: - sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_exec_prefix'}) + if hasattr(sysconfig, 'get_default_scheme'): + scheme = sysconfig.get_default_scheme() + else: + scheme = sysconfig._get_default_scheme() + if scheme == 'posix_local': + # Debian's default scheme installs to /usr/local/ but we want to find headers in /usr/ + scheme = 'posix_prefix' + sitedir = sysconfig.get_path('platlib', scheme, vars={'platbase':'$am_py_exec_prefix'}) else: from distutils import sysconfig sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_exec_prefix') @@ -21000,7 +21045,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by GiNaC $as_me 1.8.2, which was +This file was extended by GiNaC $as_me 1.8.3, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -21069,7 +21114,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -GiNaC config.status 1.8.2 +GiNaC config.status 1.8.3 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" @@ -22306,7 +22351,6 @@ cat <<_LT_EOF >> "$cfgfile" #! $SHELL # Generated automatically by $as_me ($PACKAGE) $VERSION -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # Provide generalized library-building support services. @@ -22332,7 +22376,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# along with this program. If not, see . # The names of the tagged configurations supported by this script. diff -Nru ginac-1.8.2/debian/changelog ginac-1.8.3/debian/changelog --- ginac-1.8.2/debian/changelog 2022-02-20 19:43:32.000000000 +0000 +++ ginac-1.8.3/debian/changelog 2022-04-22 17:09:53.000000000 +0000 @@ -1,3 +1,27 @@ +ginac (1.8.3-3) unstable; urgency=low + + * Make debian/not-installed portable to other archs, sigh. + + -- Richard B. Kreckel Fri, 22 Apr 2022 19:09:53 +0200 + +ginac (1.8.3-2) unstable; urgency=low + + * Add debian/not-installed file. + * Specify debhelper-compat (= 13) as Build-Deponds, and remove the + debian/compat file. + * Upgrade debian/watch file to version 4. + * Drop Build-Depends on cdbs. + * Do not duplicate named field Section: math inherited from source package + ginac in installation package ginac-tools. + + -- Richard B. Kreckel Fri, 22 Apr 2022 12:22:13 +0200 + +ginac (1.8.3-1) unstable; urgency=low + + * New upstream release. + + -- Richard B. Kreckel Wed, 23 Mar 2022 22:19:43 +0100 + ginac (1.8.2-3) unstable; urgency=low * Configure with --disable-rpath, so dependent packages don't get lintian diff -Nru ginac-1.8.2/debian/compat ginac-1.8.3/debian/compat --- ginac-1.8.2/debian/compat 2020-01-07 20:59:44.000000000 +0000 +++ ginac-1.8.3/debian/compat 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -12 diff -Nru ginac-1.8.2/debian/control ginac-1.8.3/debian/control --- ginac-1.8.2/debian/control 2022-01-15 16:12:06.000000000 +0000 +++ ginac-1.8.3/debian/control 2022-04-22 11:38:49.000000000 +0000 @@ -2,8 +2,8 @@ Section: math Priority: optional Maintainer: Richard Kreckel -Build-Depends: cdbs (>= 0.4.28), debhelper (>= 9), libcln-dev, libgmp-dev, libreadline-dev, pkg-config (>= 0.18) | pkgconf, python3:any, texinfo -Standards-Version: 4.6.0.1 +Build-Depends: debhelper-compat (= 13), libcln-dev, libgmp-dev, libreadline-dev, pkg-config (>= 0.18) | pkgconf, python3:any, texinfo +Standards-Version: 4.6.0 Homepage: http://www.ginac.de/ Package: libginac11 @@ -34,7 +34,6 @@ Package: ginac-tools Architecture: any -Section: math Depends: ${shlibs:Depends}, ${misc:Depends} Recommends: doc-base Description: GiNaC symbolic framework support tools diff -Nru ginac-1.8.2/debian/not-installed ginac-1.8.3/debian/not-installed --- ginac-1.8.2/debian/not-installed 1970-01-01 00:00:00.000000000 +0000 +++ ginac-1.8.3/debian/not-installed 2022-04-22 17:09:53.000000000 +0000 @@ -0,0 +1,2 @@ +usr/lib/*/libginac.la +usr/share/info/ginac-examples.info diff -Nru ginac-1.8.2/debian/patches/relax-prec-in-exam_inifcns_nstdsums.diff ginac-1.8.3/debian/patches/relax-prec-in-exam_inifcns_nstdsums.diff --- ginac-1.8.2/debian/patches/relax-prec-in-exam_inifcns_nstdsums.diff 2022-01-15 16:19:12.000000000 +0000 +++ ginac-1.8.3/debian/patches/relax-prec-in-exam_inifcns_nstdsums.diff 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -Description: prec set to 10*pow(10,-Digits) in inifcns_test_HLi -Origin: upstream -Applied-Upstream: 9c577d1ff8a40e821d214ce875587edfd4325f23 -Last-Update: 2022-01-15 ---- -This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ ---- a/check/exam_inifcns_nstdsums.cpp -+++ b/check/exam_inifcns_nstdsums.cpp -@@ -128,7 +128,8 @@ static unsigned inifcns_test_HLi() - using GiNaC::log; - int digitsbuf = Digits; - Digits = 17; -- ex prec = 5 * pow(10, -(ex)Digits); -+ // 15.01.2022: prec set to 10*pow(10,-Digits) to avoid exam failure in sporadic cases -+ ex prec = 10 * pow(10, -(ex)Digits); - numeric almostone("0.999999999999999999"); - unsigned result = 0; - diff -Nru ginac-1.8.2/debian/patches/series ginac-1.8.3/debian/patches/series --- ginac-1.8.2/debian/patches/series 2022-01-15 16:13:37.000000000 +0000 +++ ginac-1.8.3/debian/patches/series 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -relax-prec-in-exam_inifcns_nstdsums.diff diff -Nru ginac-1.8.2/debian/watch ginac-1.8.3/debian/watch --- ginac-1.8.2/debian/watch 2020-10-15 18:11:20.000000000 +0000 +++ ginac-1.8.3/debian/watch 2022-04-22 09:48:22.000000000 +0000 @@ -1,2 +1,2 @@ -version=3 +version=4 https://www.ginac.de/Download.html ginac-(.+)\.(?:zip|tgz|tbz|txz|(?:tar\.(?:gz|bz2|xz))) diff -Nru ginac-1.8.2/doc/examples/compile1.cpp ginac-1.8.3/doc/examples/compile1.cpp --- ginac-1.8.2/doc/examples/compile1.cpp 2022-01-01 15:57:09.000000000 +0000 +++ ginac-1.8.3/doc/examples/compile1.cpp 2022-02-13 23:12:40.000000000 +0000 @@ -40,7 +40,7 @@ // First using compile_ex { - double result; + double result = 0.0; double point = 0.2; start = clock(); for (int i=0; i<100000; ++i) { @@ -58,7 +58,7 @@ // Then without compile_ex { - ex result; + ex result = 0.0; ex point = 0.2; start = clock(); for (int i=0; i<100000; ++i) { diff -Nru ginac-1.8.2/doc/tutorial/ginac.info ginac-1.8.3/doc/tutorial/ginac.info --- ginac-1.8.2/doc/tutorial/ginac.info 2022-01-01 17:50:55.000000000 +0000 +++ ginac-1.8.3/doc/tutorial/ginac.info 2022-03-23 20:33:02.000000000 +0000 @@ -5,7 +5,7 @@ * ginac: (ginac). C++ library for symbolic computation. END-INFO-DIR-ENTRY -This is a tutorial that documents GiNaC 1.8.2, an open framework for +This is a tutorial that documents GiNaC 1.8.3, an open framework for symbolic computation within the C++ programming language. Copyright (C) 1999-2022 Johannes Gutenberg University Mainz, Germany @@ -25,7 +25,7 @@ GiNaC ***** -This is a tutorial that documents GiNaC 1.8.2, an open framework for +This is a tutorial that documents GiNaC 1.8.3, an open framework for symbolic computation within the C++ programming language. * Menu: @@ -88,7 +88,7 @@ =========== The GiNaC framework for symbolic computation within the C++ programming -language is Copyright (C) 1999-2021 Johannes Gutenberg University Mainz, +language is Copyright (C) 1999-2022 Johannes Gutenberg University Mainz, Germany. This program is free software; you can redistribute it and/or modify it @@ -1001,7 +1001,7 @@ classes therein serve as foundation classes for GiNaC. CLN stands for Class Library for Numbers or alternatively for Common Lisp Numbers. In order to find out more about CLN's internals, the reader is referred to -the documentation of that library. *note (cln)Introduction::, for more +the documentation of that library. *Note (cln)Top::, for more information. Suffice to say that it is by itself build on top of another library, the GNU Multiple Precision library GMP, which is an extremely fast library for arbitrary long integers and rationals as well @@ -4682,7 +4682,7 @@ ex machin_pi(int degr) { symbol x; - ex pi_expansion = series_to_poly(atan(x).series(x,degr)); + ex pi_expansion = series_to_poly(atan(x).series(x==0,degr)); ex pi_approx = 16*pi_expansion.subs(x==numeric(1,5)) -4*pi_expansion.subs(x==numeric(1,239)); return pi_approx; @@ -7306,10 +7306,10 @@ GiNaC supplies all necessary data in 'ginac.pc' (installed into '/usr/local/lib/pkgconfig' by default). To compile a simple program use (1) - g++ -o simple `pkg-config --cflags --libs ginac` simple.cpp + g++ -o simple simple.cpp `pkg-config --cflags --libs ginac` This command line might expand to (for example): - g++ -o simple -lginac -lcln simple.cpp + g++ -o simple simple.cpp -lginac -lcln Not only is the form using 'pkg-config' easier to type, it will work on any system, no matter how GiNaC was configured. @@ -8062,55 +8062,55 @@ Node: The class hierarchy30549 Node: Symbols32920 Node: Numbers39790 -Node: Constants51232 -Node: Fundamental containers51867 -Node: Lists54699 -Node: Mathematical functions58519 -Node: Relations60410 -Node: Integrals62216 -Node: Matrices64809 -Node: Indexed objects73194 -Node: Non-commutative objects99146 -Node: Methods and functions121854 -Node: Information about expressions124445 -Node: Numerical evaluation135183 -Node: Substituting expressions136358 -Node: Pattern matching and advanced substitutions139758 -Node: Applying a function on subexpressions150275 -Node: Visitors and tree traversal154807 -Node: Polynomial arithmetic161716 -Node: Rational expressions174449 -Node: Symbolic differentiation178585 -Node: Series expansion180497 -Node: Symmetrization184056 -Node: Built-in functions185351 -Node: Multiple polylogarithms190300 -Node: Iterated integrals196795 -Node: Complex expressions199288 -Node: Solving linear systems of equations201105 -Node: Input/output202526 -Ref: csrc printing204813 -Node: Extending GiNaC222207 -Node: What does not belong into GiNaC223147 -Node: Symbolic functions224332 -Node: Printing236425 -Node: Structures248435 -Node: Adding classes260149 -Ref: Adding classes-Footnote-1274153 -Node: A comparison with other CAS274268 -Node: Advantages274866 -Node: Disadvantages277891 -Ref: Disadvantages-Footnote-1279055 -Node: Why C++?279384 -Node: Internal structures280208 -Node: Expressions are reference counted280485 -Node: Internal representation of products and sums284274 -Node: Package tools286766 -Ref: Package tools-Footnote-1288783 -Node: Configure script options288951 -Node: Example package290315 -Node: Bibliography292952 -Node: Concept index294254 +Node: Constants51223 +Node: Fundamental containers51858 +Node: Lists54690 +Node: Mathematical functions58510 +Node: Relations60401 +Node: Integrals62207 +Node: Matrices64800 +Node: Indexed objects73185 +Node: Non-commutative objects99137 +Node: Methods and functions121845 +Node: Information about expressions124436 +Node: Numerical evaluation135174 +Node: Substituting expressions136349 +Node: Pattern matching and advanced substitutions139749 +Node: Applying a function on subexpressions150266 +Node: Visitors and tree traversal154798 +Node: Polynomial arithmetic161707 +Node: Rational expressions174440 +Node: Symbolic differentiation178576 +Node: Series expansion180488 +Node: Symmetrization184050 +Node: Built-in functions185345 +Node: Multiple polylogarithms190294 +Node: Iterated integrals196789 +Node: Complex expressions199282 +Node: Solving linear systems of equations201099 +Node: Input/output202520 +Ref: csrc printing204807 +Node: Extending GiNaC222201 +Node: What does not belong into GiNaC223141 +Node: Symbolic functions224326 +Node: Printing236419 +Node: Structures248429 +Node: Adding classes260143 +Ref: Adding classes-Footnote-1274147 +Node: A comparison with other CAS274262 +Node: Advantages274860 +Node: Disadvantages277885 +Ref: Disadvantages-Footnote-1279049 +Node: Why C++?279378 +Node: Internal structures280202 +Node: Expressions are reference counted280479 +Node: Internal representation of products and sums284268 +Node: Package tools286760 +Ref: Package tools-Footnote-1288777 +Node: Configure script options288945 +Node: Example package290309 +Node: Bibliography292946 +Node: Concept index294248  End Tag Table diff -Nru ginac-1.8.2/doc/tutorial/ginac.texi ginac-1.8.3/doc/tutorial/ginac.texi --- ginac-1.8.2/doc/tutorial/ginac.texi 2022-01-01 17:50:10.000000000 +0000 +++ ginac-1.8.3/doc/tutorial/ginac.texi 2022-03-23 20:30:40.000000000 +0000 @@ -135,7 +135,7 @@ @section License The GiNaC framework for symbolic computation within the C++ programming -language is Copyright @copyright{} 1999-2021 Johannes Gutenberg +language is Copyright @copyright{} 1999-2022 Johannes Gutenberg University Mainz, Germany. This program is free software; you can redistribute it and/or @@ -1194,7 +1194,7 @@ The classes therein serve as foundation classes for GiNaC. CLN stands for Class Library for Numbers or alternatively for Common Lisp Numbers. In order to find out more about CLN's internals, the reader is referred to -the documentation of that library. @inforef{Introduction, , cln}, for +the documentation of that library. @xref{Top,,, cln, The CLN Manual}, for more information. Suffice to say that it is by itself build on top of another library, the GNU Multiple Precision library GMP, which is an extremely fast library for arbitrary long integers and rationals as well @@ -5700,7 +5700,7 @@ ex machin_pi(int degr) @{ symbol x; - ex pi_expansion = series_to_poly(atan(x).series(x,degr)); + ex pi_expansion = series_to_poly(atan(x).series(x==0,degr)); ex pi_approx = 16*pi_expansion.subs(x==numeric(1,5)) -4*pi_expansion.subs(x==numeric(1,239)); return pi_approx; @@ -8782,12 +8782,12 @@ directory @var{prefix} one should set the @var{PKG_CONFIG_PATH} environment variable to @var{prefix}/lib/pkgconfig for this to work.} @example -g++ -o simple `pkg-config --cflags --libs ginac` simple.cpp +g++ -o simple simple.cpp `pkg-config --cflags --libs ginac` @end example This command line might expand to (for example): @example -g++ -o simple -lginac -lcln simple.cpp +g++ -o simple simple.cpp -lginac -lcln @end example Not only is the form using @command{pkg-config} easier to type, it will diff -Nru ginac-1.8.2/doc/tutorial/stamp-vti ginac-1.8.3/doc/tutorial/stamp-vti --- ginac-1.8.2/doc/tutorial/stamp-vti 2022-01-01 17:50:54.000000000 +0000 +++ ginac-1.8.3/doc/tutorial/stamp-vti 2022-03-23 20:33:01.000000000 +0000 @@ -1,4 +1,4 @@ -@set UPDATED 1 January 2022 -@set UPDATED-MONTH January 2022 -@set EDITION 1.8.2 -@set VERSION 1.8.2 +@set UPDATED 23 March 2022 +@set UPDATED-MONTH March 2022 +@set EDITION 1.8.3 +@set VERSION 1.8.3 diff -Nru ginac-1.8.2/doc/tutorial/version.texi ginac-1.8.3/doc/tutorial/version.texi --- ginac-1.8.2/doc/tutorial/version.texi 2022-01-01 17:43:42.000000000 +0000 +++ ginac-1.8.3/doc/tutorial/version.texi 2022-03-23 20:33:01.000000000 +0000 @@ -1,4 +1,4 @@ -@set UPDATED 1 January 2022 -@set UPDATED-MONTH January 2022 -@set EDITION 1.8.2 -@set VERSION 1.8.2 +@set UPDATED 23 March 2022 +@set UPDATED-MONTH March 2022 +@set EDITION 1.8.3 +@set VERSION 1.8.3 diff -Nru ginac-1.8.2/ginac/clifford.cpp ginac-1.8.3/ginac/clifford.cpp --- ginac-1.8.2/ginac/clifford.cpp 2022-01-01 15:57:10.000000000 +0000 +++ ginac-1.8.3/ginac/clifford.cpp 2022-02-13 23:19:21.000000000 +0000 @@ -1099,7 +1099,7 @@ ev.reserve(e1.nops()); cv.reserve(e1.nops()); // separate clifford and non-clifford entries - for (int i= 0; i < e1.nops(); ++i) { + for (size_t i= 0; i < e1.nops(); ++i) { if (is_a(e1.op(i)) && is_a(e1.op(i).op(0))) cv.push_back(e1.op(i)); else @@ -1281,7 +1281,7 @@ bool found=false, same_value_found=false; ex dummy_ind=0; ev.reserve(e1.nops()); - for (int i=0; i < e1.nops();++i) { + for (size_t i=0; i < e1.nops(); ++i) { // look for a Clifford unit with the same metric and representation label, // if found remember its index if (is_a(e1.op(i)) && ex_to(e1.op(i)).get_representation_label() == rl diff -Nru ginac-1.8.2/ginac/exprseq.h ginac-1.8.3/ginac/exprseq.h --- ginac-1.8.2/ginac/exprseq.h 2022-01-01 15:57:10.000000000 +0000 +++ ginac-1.8.3/ginac/exprseq.h 2022-02-16 22:54:31.000000000 +0000 @@ -32,7 +32,9 @@ typedef container exprseq; /** Declaration of container::reg_info for exprseq. */ +#ifndef _MSC_VER // workaround error C2766: explicit specialization; 'reg_info' has already been defined template<> registered_class_info exprseq::reg_info; +#endif // defined in exprseq.cpp template<> bool exprseq::info(unsigned inf) const; diff -Nru ginac-1.8.2/ginac/lst.h ginac-1.8.3/ginac/lst.h --- ginac-1.8.2/ginac/lst.h 2022-01-01 15:57:10.000000000 +0000 +++ ginac-1.8.3/ginac/lst.h 2022-02-16 22:54:40.000000000 +0000 @@ -32,7 +32,9 @@ typedef container lst; /** Declaration of container::reg_info for lst. */ +#ifndef _MSC_VER // workaround error C2766: explicit specialization; 'reg_info' has already been defined template<> registered_class_info lst::reg_info; +#endif /** Specialization of container::get_default_flags() for lst. */ template<> inline unsigned lst::get_default_flags() { return status_flags::not_shareable; } diff -Nru ginac-1.8.2/ginac/normal.cpp ginac-1.8.3/ginac/normal.cpp --- ginac-1.8.2/ginac/normal.cpp 2022-01-01 15:57:10.000000000 +0000 +++ ginac-1.8.3/ginac/normal.cpp 2022-02-14 08:57:39.000000000 +0000 @@ -1957,7 +1957,6 @@ // Factorize denominator and compute cofactors epvector yun = sqrfree_yun(denom, x); - size_t yun_max_exponent = yun.empty() ? 0 : ex_to(yun.back().coeff).to_int(); exvector factor, cofac; for (size_t i=0; i(yun[i].coeff); @@ -2195,9 +2194,9 @@ return dynallocate({replace_with_symbol(*this, repl, rev_lookup, modifier), _ex1}); normal_map_function map_normal; - int nmod = modifier.nops(); // To watch new modifiers to the replacement list + size_t nmod = modifier.nops(); // To watch new modifiers to the replacement list ex result = replace_with_symbol(map(map_normal), repl, rev_lookup, modifier); - for (int imod = nmod; imod < modifier.nops(); ++imod) { + for (size_t imod = nmod; imod < modifier.nops(); ++imod) { exmap this_repl; this_repl.insert(std::make_pair(modifier.op(imod).op(0), modifier.op(imod).op(1))); result = result.subs(this_repl, subs_options::no_pattern); @@ -2313,7 +2312,7 @@ exvector nums, dens; nums.reserve(seq.size()+1); dens.reserve(seq.size()+1); - int nmod = modifier.nops(); // To watch new modifiers to the replacement list + size_t nmod = modifier.nops(); // To watch new modifiers to the replacement list for (auto & it : seq) { ex n = ex_to(recombine_pair_to_ex(it)).normal(repl, rev_lookup, modifier); nums.push_back(n.op(0)); @@ -2332,7 +2331,7 @@ auto num_it = nums.begin(), num_itend = nums.end(); auto den_it = dens.begin(), den_itend = dens.end(); //std::clog << " num = " << *num_it << ", den = " << *den_it << std::endl; - for (int imod = nmod; imod < modifier.nops(); ++imod) { + for (size_t imod = nmod; imod < modifier.nops(); ++imod) { while (num_it != num_itend) { *num_it = num_it->subs(modifier.op(imod), subs_options::no_pattern); ++num_it; @@ -2378,7 +2377,7 @@ exvector num; num.reserve(seq.size()); exvector den; den.reserve(seq.size()); ex n; - int nmod = modifier.nops(); // To watch new modifiers to the replacement list + size_t nmod = modifier.nops(); // To watch new modifiers to the replacement list for (auto & it : seq) { n = ex_to(recombine_pair_to_ex(it)).normal(repl, rev_lookup, modifier); num.push_back(n.op(0)); @@ -2388,8 +2387,8 @@ num.push_back(n.op(0)); den.push_back(n.op(1)); auto num_it = num.begin(), num_itend = num.end(); - auto den_it = den.begin(), den_itend = den.end(); - for (int imod = nmod; imod < modifier.nops(); ++imod) { + auto den_it = den.begin(); + for (size_t imod = nmod; imod < modifier.nops(); ++imod) { while (num_it != num_itend) { *num_it = num_it->subs(modifier.op(imod), subs_options::no_pattern); ++num_it; @@ -2412,14 +2411,14 @@ ex power::normal(exmap & repl, exmap & rev_lookup, lst & modifier) const { // Normalize basis and exponent (exponent gets reassembled) - int nmod = modifier.nops(); // To watch new modifiers to the replacement list + size_t nmod = modifier.nops(); // To watch new modifiers to the replacement list ex n_basis = ex_to(basis).normal(repl, rev_lookup, modifier); - for (int imod = nmod; imod < modifier.nops(); ++imod) + for (size_t imod = nmod; imod < modifier.nops(); ++imod) n_basis = n_basis.subs(modifier.op(imod), subs_options::no_pattern); nmod = modifier.nops(); ex n_exponent = ex_to(exponent).normal(repl, rev_lookup, modifier); - for (int imod = nmod; imod < modifier.nops(); ++imod) + for (size_t imod = nmod; imod < modifier.nops(); ++imod) n_exponent = n_exponent.subs(modifier.op(imod), subs_options::no_pattern); n_exponent = n_exponent.op(0) / n_exponent.op(1); @@ -2500,7 +2499,7 @@ // Re-insert replaced symbols if (!repl.empty()) { - for(int i=0; i < modifier.nops(); ++i) + for(size_t i=0; i < modifier.nops(); ++i) e = e.subs(modifier.op(i), subs_options::no_pattern); e = e.subs(repl, subs_options::no_pattern); } @@ -2527,7 +2526,7 @@ if (repl.empty()) return e.op(0); else { - for(int i=0; i < modifier.nops(); ++i) + for(size_t i=0; i < modifier.nops(); ++i) e = e.subs(modifier.op(i), subs_options::no_pattern); return e.op(0).subs(repl, subs_options::no_pattern); @@ -2552,7 +2551,7 @@ if (repl.empty()) return e.op(1); else { - for(int i=0; i < modifier.nops(); ++i) + for(size_t i=0; i < modifier.nops(); ++i) e = e.subs(modifier.op(i), subs_options::no_pattern); return e.op(1).subs(repl, subs_options::no_pattern); @@ -2577,7 +2576,7 @@ if (repl.empty()) return e; else { - for(int i=0; i < modifier.nops(); ++i) + for(size_t i=0; i < modifier.nops(); ++i) e = e.subs(modifier.op(i), subs_options::no_pattern); return e.subs(repl, subs_options::no_pattern); @@ -2688,7 +2687,7 @@ ex power::to_polynomial(exmap & repl) const { if (exponent.info(info_flags::posint)) - return pow(basis.to_rational(repl), exponent); + return pow(basis.to_polynomial(repl), exponent); else if (exponent.info(info_flags::negint)) { ex basis_pref = collect_common_factors(basis); diff -Nru ginac-1.8.2/ginac/power.cpp ginac-1.8.3/ginac/power.cpp --- ginac-1.8.2/ginac/power.cpp 2022-01-01 15:57:10.000000000 +0000 +++ ginac-1.8.3/ginac/power.cpp 2022-03-23 17:57:42.000000000 +0000 @@ -619,7 +619,7 @@ if (!are_ex_trivially_equal(basis, subsed_basis) || !are_ex_trivially_equal(exponent, subsed_exponent)) - return power(subsed_basis, subsed_exponent).subs_one_level(m, options); + return dynallocate(subsed_basis, subsed_exponent); if (!(options & subs_options::algebraic)) return subs_one_level(m, options); diff -Nru ginac-1.8.2/ginac/version.h ginac-1.8.3/ginac/version.h --- ginac-1.8.2/ginac/version.h 2022-01-01 15:59:15.000000000 +0000 +++ ginac-1.8.3/ginac/version.h 2022-03-23 20:30:40.000000000 +0000 @@ -30,7 +30,7 @@ #define GINACLIB_MINOR_VERSION 8 /* Micro version of GiNaC */ -#define GINACLIB_MICRO_VERSION 2 +#define GINACLIB_MICRO_VERSION 3 // GiNaC library version information. It has very little to do with GiNaC // version number. In particular, library version is OS dependent. @@ -56,7 +56,7 @@ // * change matrix inverse to use default argument (twice) // * check for interfaces marked as deprecated #define GINAC_LT_CURRENT 12 -#define GINAC_LT_REVISION 1 +#define GINAC_LT_REVISION 2 #define GINAC_LT_AGE 1 /* diff -Nru ginac-1.8.2/ginac.pc ginac-1.8.3/ginac.pc --- ginac-1.8.2/ginac.pc 2022-01-01 17:42:00.000000000 +0000 +++ ginac-1.8.3/ginac.pc 2022-03-23 20:33:39.000000000 +0000 @@ -5,7 +5,7 @@ Name: GiNaC Description: C++ library for symbolic calculations -Version: 1.8.2 +Version: 1.8.3 Requires: cln >= 1.2.2 Libs: -L${libdir} -lginac -Wl,-rpath -Wl,${libdir} Cflags: -I${includedir} diff -Nru ginac-1.8.2/GiNaC.spec ginac-1.8.3/GiNaC.spec --- ginac-1.8.2/GiNaC.spec 2022-01-01 17:42:00.000000000 +0000 +++ ginac-1.8.3/GiNaC.spec 2022-03-23 20:33:39.000000000 +0000 @@ -1,5 +1,5 @@ %define name ginac -%define version 1.8.2 +%define version 1.8.3 %define release 1 Summary: C++ library for symbolic calculations diff -Nru ginac-1.8.2/ginsh/ginsh.1.in ginac-1.8.3/ginsh/ginsh.1.in --- ginac-1.8.2/ginsh/ginsh.1.in 2022-01-01 17:49:59.000000000 +0000 +++ ginac-1.8.3/ginsh/ginsh.1.in 2022-02-07 19:27:24.000000000 +0000 @@ -368,6 +368,9 @@ .BI series( expression ", " relation-or-symbol ", " order ) \- series expansion .br +.BI series_to_poly( series ) +\- convert a series into a polynomial by dropping the Order() term +.br .BI sprem( expression ", " expression ", " symbol ) \- sparse pseudo-remainder of polynomials .br diff -Nru ginac-1.8.2/ginsh/ginsh_parser.cpp ginac-1.8.3/ginsh/ginsh_parser.cpp --- ginac-1.8.2/ginsh/ginsh_parser.cpp 2022-01-01 16:02:35.000000000 +0000 +++ ginac-1.8.3/ginsh/ginsh_parser.cpp 2022-03-23 20:33:01.000000000 +0000 @@ -2183,6 +2183,12 @@ return e[0].series(e[1], ex_to(e[2]).to_int()); } +static ex f_series_to_poly(const exprseq &e) +{ + CHECK_ARG(0, pseries, series_to_poly); + return series_to_poly(ex_to(e[0])); +} + static ex f_sprem(const exprseq &e) { return sprem(e[0], e[1], e[2]); @@ -2390,6 +2396,7 @@ {"rem", f_rem, 3}, {"resultant", f_resultant, 3}, {"series", f_series, 3}, + {"series_to_poly", f_series_to_poly, 1}, {"sprem", f_sprem, 3}, {"sqrfree", f_sqrfree1, 1}, {"sqrfree", f_sqrfree2, 2}, diff -Nru ginac-1.8.2/ginsh/ginsh_parser.ypp ginac-1.8.3/ginsh/ginsh_parser.ypp --- ginac-1.8.2/ginsh/ginsh_parser.ypp 2022-01-01 15:57:10.000000000 +0000 +++ ginac-1.8.3/ginsh/ginsh_parser.ypp 2022-02-06 18:19:01.000000000 +0000 @@ -530,6 +530,12 @@ return e[0].series(e[1], ex_to(e[2]).to_int()); } +static ex f_series_to_poly(const exprseq &e) +{ + CHECK_ARG(0, pseries, series_to_poly); + return series_to_poly(ex_to(e[0])); +} + static ex f_sprem(const exprseq &e) { return sprem(e[0], e[1], e[2]); @@ -737,6 +743,7 @@ {"rem", f_rem, 3}, {"resultant", f_resultant, 3}, {"series", f_series, 3}, + {"series_to_poly", f_series_to_poly, 1}, {"sprem", f_sprem, 3}, {"sqrfree", f_sqrfree1, 1}, {"sqrfree", f_sqrfree2, 2}, diff -Nru ginac-1.8.2/m4/ax_cxx_compile_stdcxx.m4 ginac-1.8.3/m4/ax_cxx_compile_stdcxx.m4 --- ginac-1.8.2/m4/ax_cxx_compile_stdcxx.m4 2022-01-01 15:57:10.000000000 +0000 +++ ginac-1.8.3/m4/ax_cxx_compile_stdcxx.m4 2022-03-23 20:30:40.000000000 +0000 @@ -10,8 +10,8 @@ # # Check for baseline language coverage in the compiler for the specified # version of the C++ standard. If necessary, add switches to CXX and -# CXXCPP to enable support. VERSION may be '11' (for the C++11 standard) -# or '14' (for the C++14 standard). +# CXXCPP to enable support. VERSION may be '11', '14', '17', or '20' for +# the respective C++ standard version. # # The second argument, if specified, indicates whether you insist on an # extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g. @@ -36,13 +36,14 @@ # Copyright (c) 2016, 2018 Krzesimir Nowak # Copyright (c) 2019 Enji Cooper # Copyright (c) 2020 Jason Merrill +# Copyright (c) 2021 Jörn Heusipp # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. This file is offered as-is, without any # warranty. -#serial 12 +#serial 14 dnl This macro is based on the code from the AX_CXX_COMPILE_STDCXX_11 macro dnl (serial version number 13). @@ -51,6 +52,7 @@ m4_if([$1], [11], [ax_cxx_compile_alternatives="11 0x"], [$1], [14], [ax_cxx_compile_alternatives="14 1y"], [$1], [17], [ax_cxx_compile_alternatives="17 1z"], + [$1], [20], [ax_cxx_compile_alternatives="20"], [m4_fatal([invalid first argument `$1' to AX_CXX_COMPILE_STDCXX])])dnl m4_if([$2], [], [], [$2], [ext], [], @@ -151,7 +153,6 @@ _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 ) - dnl Test body for checking C++14 support m4_define([_AX_CXX_COMPILE_STDCXX_testbody_14], @@ -159,12 +160,24 @@ _AX_CXX_COMPILE_STDCXX_testbody_new_in_14 ) +dnl Test body for checking C++17 support + m4_define([_AX_CXX_COMPILE_STDCXX_testbody_17], _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 _AX_CXX_COMPILE_STDCXX_testbody_new_in_14 _AX_CXX_COMPILE_STDCXX_testbody_new_in_17 ) +dnl Test body for checking C++20 support + +m4_define([_AX_CXX_COMPILE_STDCXX_testbody_20], + _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 + _AX_CXX_COMPILE_STDCXX_testbody_new_in_14 + _AX_CXX_COMPILE_STDCXX_testbody_new_in_17 + _AX_CXX_COMPILE_STDCXX_testbody_new_in_20 +) + + dnl Tests for new features in C++11 m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_11], [[ @@ -960,3 +973,33 @@ #endif // __cplusplus < 201703L ]]) + + +dnl Tests for new features in C++20 + +m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_20], [[ + +#ifndef __cplusplus + +#error "This is not a C++ compiler" + +#elif __cplusplus < 202002L + +#error "This is not a C++20 compiler" + +#else + +#include + +namespace cxx20 +{ + +// As C++20 supports feature test macros in the standard, there is no +// immediate need to actually test for feature availability on the +// Autoconf side. + +} // namespace cxx20 + +#endif // __cplusplus < 202002L + +]]) diff -Nru ginac-1.8.2/m4/host-cpu-c-abi.m4 ginac-1.8.3/m4/host-cpu-c-abi.m4 --- ginac-1.8.2/m4/host-cpu-c-abi.m4 2022-01-01 15:57:10.000000000 +0000 +++ ginac-1.8.3/m4/host-cpu-c-abi.m4 2022-03-23 20:30:40.000000000 +0000 @@ -1,5 +1,5 @@ -# host-cpu-c-abi.m4 serial 14 -dnl Copyright (C) 2002-2021 Free Software Foundation, Inc. +# host-cpu-c-abi.m4 serial 13 +dnl Copyright (C) 2002-2020 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -211,7 +211,7 @@ # be generating 64-bit code. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( - [[#if defined __powerpc64__ || defined __LP64__ + [[#if defined __powerpc64__ || defined _ARCH_PPC64 int ok; #else error fail @@ -605,7 +605,7 @@ # be generating 64-bit code. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( - [[#if defined __powerpc64__ || defined __LP64__ + [[#if defined __powerpc64__ || defined _ARCH_PPC64 int ok; #else error fail diff -Nru ginac-1.8.2/m4/lib-ld.m4 ginac-1.8.3/m4/lib-ld.m4 --- ginac-1.8.2/m4/lib-ld.m4 2022-01-01 15:57:10.000000000 +0000 +++ ginac-1.8.3/m4/lib-ld.m4 2022-03-23 20:30:40.000000000 +0000 @@ -1,5 +1,5 @@ -# lib-ld.m4 serial 10 -dnl Copyright (C) 1996-2003, 2009-2021 Free Software Foundation, Inc. +# lib-ld.m4 serial 9 +dnl Copyright (C) 1996-2003, 2009-2020 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -122,7 +122,7 @@ *-*-aix*) AC_COMPILE_IFELSE( [AC_LANG_SOURCE( - [[#if defined __powerpc64__ || defined __LP64__ + [[#if defined __powerpc64__ || defined _ARCH_PPC64 int ok; #else error fail diff -Nru ginac-1.8.2/m4/lib-link.m4 ginac-1.8.3/m4/lib-link.m4 --- ginac-1.8.2/m4/lib-link.m4 2022-01-01 15:57:10.000000000 +0000 +++ ginac-1.8.3/m4/lib-link.m4 2022-03-23 20:30:40.000000000 +0000 @@ -1,5 +1,5 @@ -# lib-link.m4 serial 32 -dnl Copyright (C) 2001-2021 Free Software Foundation, Inc. +# lib-link.m4 serial 31 +dnl Copyright (C) 2001-2020 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -631,20 +631,7 @@ ;; -l*) dnl Handle this in the next round. - dnl But on GNU systems, ignore -lc options, because - dnl - linking with libc is the default anyway, - dnl - linking with libc.a may produce an error - dnl "/usr/bin/ld: dynamic STT_GNU_IFUNC symbol `strcmp' with pointer equality in `/usr/lib/libc.a(strcmp.o)' can not be used when making an executable; recompile with -fPIE and relink with -pie" - dnl or may produce an executable that always crashes, see - dnl . - dep=`echo "X$dep" | sed -e 's/^X-l//'` - if test "X$dep" != Xc \ - || case $host_os in - linux* | gnu* | k*bsd*-gnu) false ;; - *) true ;; - esac; then - names_next_round="$names_next_round $dep" - fi + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) dnl Handle this in the next round. Throw away the .la's diff -Nru ginac-1.8.2/m4/lib-prefix.m4 ginac-1.8.3/m4/lib-prefix.m4 --- ginac-1.8.2/m4/lib-prefix.m4 2022-01-01 15:57:10.000000000 +0000 +++ ginac-1.8.3/m4/lib-prefix.m4 2022-03-23 20:30:40.000000000 +0000 @@ -1,5 +1,5 @@ -# lib-prefix.m4 serial 19 -dnl Copyright (C) 2001-2005, 2008-2021 Free Software Foundation, Inc. +# lib-prefix.m4 serial 17 +dnl Copyright (C) 2001-2005, 2008-2020 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -180,8 +180,8 @@ ], [gl_cv_elf=yes], [gl_cv_elf=no]) - ]) - if test $gl_cv_elf = yes; then + ]) + if test $gl_cv_elf; then # Extract the ELF class of a file (5th byte) in decimal. # Cf. https://en.wikipedia.org/wiki/Executable_and_Linkable_Format#File_header if od -A x < /dev/null >/dev/null 2>/dev/null; then @@ -198,23 +198,20 @@ echo } fi - # Use 'expr', not 'test', to compare the values of func_elfclass, because on - # Solaris 11 OpenIndiana and Solaris 11 OmniOS, the result is 001 or 002, - # not 1 or 2. changequote(,)dnl case $HOST_CPU_C_ABI_32BIT in yes) # 32-bit ABI. acl_is_expected_elfclass () { - expr "`func_elfclass | sed -e 's/[ ]//g'`" = 1 > /dev/null + test "`func_elfclass | sed -e 's/[ ]//g'`" = 1 } ;; no) # 64-bit ABI. acl_is_expected_elfclass () { - expr "`func_elfclass | sed -e 's/[ ]//g'`" = 2 > /dev/null + test "`func_elfclass | sed -e 's/[ ]//g'`" = 2 } ;; *) diff -Nru ginac-1.8.2/m4/libtool.m4 ginac-1.8.3/m4/libtool.m4 --- ginac-1.8.2/m4/libtool.m4 2021-11-05 13:14:15.000000000 +0000 +++ ginac-1.8.3/m4/libtool.m4 2022-02-20 20:55:17.000000000 +0000 @@ -28,7 +28,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# along with this program. If not, see . ]) # serial 58 LT_INIT @@ -86,7 +86,7 @@ LIBTOOL_DEPS=$ltmain # Always use our own libtool. -LIBTOOL="${CONFIG_SHELL-$SHELL} "'$(top_builddir)/libtool' +LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl _LT_SETUP @@ -728,7 +728,6 @@ cat <<_LT_EOF >> "$cfgfile" #! $SHELL # Generated automatically by $as_me ($PACKAGE) $VERSION -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # Provide generalized library-building support services. @@ -1042,8 +1041,8 @@ _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD - echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD - $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD + echo "$AR cr libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD + $AR cr libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD cat > conftest.c << _LT_EOF @@ -1072,11 +1071,11 @@ # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in - 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) + 10.0,*86*-darwin8*|10.0,*-darwin[[912]]*) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; 10.[[012]][[,.]]*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; - 10.*) + 10.*|11.*) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; esac ;; @@ -1493,7 +1492,7 @@ m4_defun([_LT_PROG_AR], [AC_CHECK_TOOLS(AR, [ar], false) : ${AR=ar} -: ${AR_FLAGS=cru} +: ${AR_FLAGS=cr} _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) @@ -2887,6 +2886,18 @@ dynamic_linker='GNU/Linux ld.so' ;; +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + netbsd*) version_type=sunos need_lib_prefix=no @@ -3546,7 +3557,7 @@ lt_cv_deplibs_check_method=pass_all ;; -netbsd*) +netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else @@ -4052,7 +4063,8 @@ if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm - if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then + $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&AS_MESSAGE_LOG_FD + if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&AS_MESSAGE_LOG_FD && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" @@ -4424,7 +4436,7 @@ ;; esac ;; - netbsd*) + netbsd* | netbsdelf*-gnu) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise @@ -4692,6 +4704,12 @@ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; + # flang / f18. f95 an alias for gfortran or flang on Debian + flang* | f18* | f95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) @@ -4936,6 +4954,9 @@ ;; esac ;; + linux* | k*bsd*-gnu | gnu*) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; @@ -4998,6 +5019,9 @@ openbsd* | bitrig*) with_gnu_ld=no ;; + linux* | k*bsd*-gnu | gnu*) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes @@ -5252,7 +5276,7 @@ fi ;; - netbsd*) + netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= @@ -5773,6 +5797,7 @@ if test yes = "$lt_cv_irix_exported_symbol"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' fi + _LT_TAGVAR(link_all_deplibs, $1)=no else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' @@ -5794,7 +5819,7 @@ esac ;; - netbsd*) + netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else @@ -6420,7 +6445,7 @@ # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' else GXX=no @@ -6795,7 +6820,7 @@ # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes = "$GXX"; then @@ -6860,7 +6885,7 @@ # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes = "$GXX"; then @@ -7199,7 +7224,7 @@ # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' else # FIXME: insert proper C++ library support @@ -7283,7 +7308,7 @@ # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' else # g++ 2.7 appears to require '-G' NOT '-shared' on this # platform. @@ -7294,7 +7319,7 @@ # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir' diff -Nru ginac-1.8.2/NEWS ginac-1.8.3/NEWS --- ginac-1.8.2/NEWS 2022-01-01 16:08:56.000000000 +0000 +++ ginac-1.8.3/NEWS 2022-03-23 20:31:25.000000000 +0000 @@ -1,5 +1,10 @@ This file records noteworthy changes. +1.8.3 (23 March 2022) +* series_to_poly() can be used from ginsh. +* Fix power::to_polynomial() for posint exponents. +* Fix power::subs() in some special cases. + 1.8.2 (1 January 2022) * Fix elusive bug in comparing relational objects. * Ensure modular_form_kernel::series() includes an Order term.