Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package e-antic for openSUSE:Factory checked in at 2024-01-10 21:52:29 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/e-antic (Old) and /work/SRC/openSUSE:Factory/.e-antic.new.21961 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "e-antic" Wed Jan 10 21:52:29 2024 rev:12 rq:1137849 version:2.0.1 Changes: -------- --- /work/SRC/openSUSE:Factory/e-antic/e-antic.changes 2023-12-25 19:05:51.242694751 +0100 +++ /work/SRC/openSUSE:Factory/.e-antic.new.21961/e-antic.changes 2024-01-10 21:52:46.273218634 +0100 @@ -1,0 +2,7 @@ +Tue Jan 9 23:46:26 UTC 2024 - Jan Engelhardt <[email protected]> + +- Update to release 2.0.1 + * Fixed segfault when using non-intrusive pointers to renf_class + such as the ones returned by parent() from Python. + +------------------------------------------------------------------- Old: ---- e-antic-2.0.0.tar.gz New: ---- e-antic-2.0.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ e-antic.spec ++++++ --- /var/tmp/diff_new_pack.713m3F/_old 2024-01-10 21:52:46.749235920 +0100 +++ /var/tmp/diff_new_pack.713m3F/_new 2024-01-10 21:52:46.753236066 +0100 @@ -1,7 +1,7 @@ # # spec file for package e-antic # -# Copyright (c) 2023 SUSE LLC +# Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -19,7 +19,7 @@ %define skip_python2 1 %define lname libeantic3 Name: e-antic -Version: 2.0.0 +Version: 2.0.1 Release: 0 Summary: Real Embedded Algebraic Number Theory in C License: LGPL-2.1-or-later AND LGPL-3.0-or-later ++++++ e-antic-2.0.0.tar.gz -> e-antic-2.0.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/e-antic-2.0.0/ChangeLog new/e-antic-2.0.1/ChangeLog --- old/e-antic-2.0.0/ChangeLog 2023-12-14 16:21:12.502258929 +0100 +++ new/e-antic-2.0.1/ChangeLog 2024-01-09 22:13:08.561089523 +0100 @@ -4,6 +4,16 @@ .. current developments +v2.0.1 +==================== + +**Fixed:** + +* Fixed segfault when using non-intrusive pointers to ``renf_class`` such as the ones returned by ``parent()`` from Python. +* Fixed compilation with GCC 13.2.1. + + + v2.0.0 ==================== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/e-antic-2.0.0/README.md new/e-antic-2.0.1/README.md --- old/e-antic-2.0.0/README.md 2023-12-14 16:21:12.385592269 +0100 +++ new/e-antic-2.0.1/README.md 2024-01-09 22:13:08.434428083 +0100 @@ -89,8 +89,8 @@ You can try out the projects in this repository in a very limited environment online by clicking the following links: -* **libeantic** [](https://mybinder.org/v2/gh/flatsurf/e-antic/2.0.0?filepath=binder%2FSample.libeantic.ipynb) -* **pyeantic** [](https://mybinder.org/v2/gh/flatsurf/e-antic/2.0.0?filepath=binder%2FSample.pyeantic.ipynb) +* **libeantic** [](https://mybinder.org/v2/gh/flatsurf/e-antic/2.0.1?filepath=binder%2FSample.libeantic.ipynb) +* **pyeantic** [](https://mybinder.org/v2/gh/flatsurf/e-antic/2.0.1?filepath=binder%2FSample.pyeantic.ipynb) ## Build with conda-forge Dependencies diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/e-antic-2.0.0/configure new/e-antic-2.0.1/configure --- old/e-antic-2.0.0/configure 2023-12-14 19:43:38.979045194 +0100 +++ new/e-antic-2.0.1/configure 2024-01-09 22:16:27.873796738 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for e-antic 2.0.0. +# Generated by GNU Autoconf 2.71 for e-antic 2.0.1. # # Report bugs to <[email protected]>. # @@ -610,8 +610,8 @@ # Identity of this package. PACKAGE_NAME='e-antic' PACKAGE_TARNAME='e-antic' -PACKAGE_VERSION='2.0.0' -PACKAGE_STRING='e-antic 2.0.0' +PACKAGE_VERSION='2.0.1' +PACKAGE_STRING='e-antic 2.0.1' PACKAGE_BUGREPORT='[email protected]' PACKAGE_URL='' @@ -1248,7 +1248,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 e-antic 2.0.0 to adapt to many kinds of systems. +\`configure' configures e-antic 2.0.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1315,7 +1315,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of e-antic 2.0.0:";; + short | recursive ) echo "Configuration of e-antic 2.0.1:";; esac cat <<\_ACEOF @@ -1396,7 +1396,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -e-antic configure 2.0.0 +e-antic configure 2.0.1 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -1433,7 +1433,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by e-antic $as_me 2.0.0, which was +It was created by e-antic $as_me 2.0.1, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -2387,7 +2387,7 @@ # Define the identity of the package. PACKAGE='e-antic' - VERSION='2.0.0' + VERSION='2.0.1' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -3155,7 +3155,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by e-antic $as_me 2.0.0, which was +This file was extended by e-antic $as_me 2.0.1, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -3210,7 +3210,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -e-antic config.status 2.0.0 +e-antic config.status 2.0.1 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/e-antic-2.0.0/configure.ac new/e-antic-2.0.1/configure.ac --- old/e-antic-2.0.0/configure.ac 2023-12-14 16:21:12.382258935 +0100 +++ new/e-antic-2.0.1/configure.ac 2024-01-09 22:13:08.431094888 +0100 @@ -2,7 +2,7 @@ dnl We need at least autoconf 2.69 for this configure.ac to work. AC_PREREQ([2.69]) -AC_INIT([e-antic], [2.0.0], [[email protected]]) +AC_INIT([e-antic], [2.0.1], [[email protected]]) AC_CONFIG_MACRO_DIR([m4]) AM_INIT_AUTOMAKE([1.14.1 subdir-objects tar-pax foreign]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/e-antic-2.0.0/doc/configure new/e-antic-2.0.1/doc/configure --- old/e-antic-2.0.0/doc/configure 2023-12-14 19:43:38.335699400 +0100 +++ new/e-antic-2.0.1/doc/configure 2024-01-09 22:16:27.237150761 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for e-antic-doc 2.0.0. +# Generated by GNU Autoconf 2.71 for e-antic-doc 2.0.1. # # Report bugs to <[email protected]>. # @@ -610,8 +610,8 @@ # Identity of this package. PACKAGE_NAME='e-antic-doc' PACKAGE_TARNAME='e-antic-doc' -PACKAGE_VERSION='2.0.0' -PACKAGE_STRING='e-antic-doc 2.0.0' +PACKAGE_VERSION='2.0.1' +PACKAGE_STRING='e-antic-doc 2.0.1' PACKAGE_BUGREPORT='[email protected]' PACKAGE_URL='' @@ -1253,7 +1253,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 e-antic-doc 2.0.0 to adapt to many kinds of systems. +\`configure' configures e-antic-doc 2.0.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1324,7 +1324,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of e-antic-doc 2.0.0:";; + short | recursive ) echo "Configuration of e-antic-doc 2.0.1:";; esac cat <<\_ACEOF @@ -1399,7 +1399,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -e-antic-doc configure 2.0.0 +e-antic-doc configure 2.0.1 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -1436,7 +1436,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by e-antic-doc $as_me 2.0.0, which was +It was created by e-antic-doc $as_me 2.0.1, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -2390,7 +2390,7 @@ # Define the identity of the package. PACKAGE='e-antic-doc' - VERSION='2.0.0' + VERSION='2.0.1' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -3406,7 +3406,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by e-antic-doc $as_me 2.0.0, which was +This file was extended by e-antic-doc $as_me 2.0.1, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -3461,7 +3461,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -e-antic-doc config.status 2.0.0 +e-antic-doc config.status 2.0.1 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/e-antic-2.0.0/doc/configure.ac new/e-antic-2.0.1/doc/configure.ac --- old/e-antic-2.0.0/doc/configure.ac 2023-12-14 16:21:12.385592269 +0100 +++ new/e-antic-2.0.1/doc/configure.ac 2024-01-09 22:13:08.434428083 +0100 @@ -2,7 +2,7 @@ dnl We need at least autoconf 2.69 for this configure.ac to work. AC_PREREQ([2.69]) -AC_INIT([e-antic-doc], [2.0.0], [[email protected]]) +AC_INIT([e-antic-doc], [2.0.1], [[email protected]]) AC_CONFIG_AUX_DIR([.]) AM_INIT_AUTOMAKE([1.14.1 subdir-objects tar-pax foreign]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/e-antic-2.0.0/doc/manual/pyeantic/conf.py new/e-antic-2.0.1/doc/manual/pyeantic/conf.py --- old/e-antic-2.0.0/doc/manual/pyeantic/conf.py 2023-12-14 16:21:12.385592269 +0100 +++ new/e-antic-2.0.1/doc/manual/pyeantic/conf.py 2024-01-09 22:13:08.434428083 +0100 @@ -18,7 +18,7 @@ author = 'the e-antic authors' # The full version, including alpha/beta/rc tags -release = '2.0.0' +release = '2.0.1' # -- General configuration --------------------------------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/e-antic-2.0.0/libeantic/configure new/e-antic-2.0.1/libeantic/configure --- old/e-antic-2.0.0/libeantic/configure 2023-12-14 19:43:31.315563476 +0100 +++ new/e-antic-2.0.1/libeantic/configure 2024-01-09 22:16:20.180714378 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for libeantic 2.0.0. +# Generated by GNU Autoconf 2.71 for libeantic 2.0.1. # # Report bugs to <[email protected]>. # @@ -621,8 +621,8 @@ # Identity of this package. PACKAGE_NAME='libeantic' PACKAGE_TARNAME='libeantic' -PACKAGE_VERSION='2.0.0' -PACKAGE_STRING='libeantic 2.0.0' +PACKAGE_VERSION='2.0.1' +PACKAGE_STRING='libeantic 2.0.1' PACKAGE_BUGREPORT='[email protected]' PACKAGE_URL='' @@ -1396,7 +1396,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 libeantic 2.0.0 to adapt to many kinds of systems. +\`configure' configures libeantic 2.0.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1467,7 +1467,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libeantic 2.0.0:";; + short | recursive ) echo "Configuration of libeantic 2.0.1:";; esac cat <<\_ACEOF @@ -1593,7 +1593,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libeantic configure 2.0.0 +libeantic configure 2.0.1 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -1968,7 +1968,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libeantic $as_me 2.0.0, which was +It was created by libeantic $as_me 2.0.1, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3456,7 +3456,7 @@ # Define the identity of the package. PACKAGE='libeantic' - VERSION='2.0.0' + VERSION='2.0.1' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -3646,9 +3646,9 @@ fi -libeantic_version_info=3:0:0 +libeantic_version_info=3:1:0 -libeanticxx_version_info=3:0:0 +libeanticxx_version_info=3:1:0 # Check whether --enable-silent-rules was given. @@ -19450,7 +19450,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by libeantic $as_me 2.0.0, which was +This file was extended by libeantic $as_me 2.0.1, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -19518,7 +19518,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -libeantic config.status 2.0.0 +libeantic config.status 2.0.1 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/e-antic-2.0.0/libeantic/configure.ac new/e-antic-2.0.1/libeantic/configure.ac --- old/e-antic-2.0.0/libeantic/configure.ac 2023-12-14 16:21:12.382258935 +0100 +++ new/e-antic-2.0.1/libeantic/configure.ac 2024-01-09 22:13:08.431094888 +0100 @@ -2,7 +2,7 @@ dnl We need at least autoconf 2.69 for this configure.ac to work. AC_PREREQ([2.69]) -AC_INIT([libeantic], [2.0.0], [[email protected]]) +AC_INIT([libeantic], [2.0.1], [[email protected]]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_AUX_DIR([.]) @@ -12,8 +12,8 @@ dnl Set to c+1:0:0 on a non-backwards-compatible change. dnl Set to c+1:0:a+1 on a backwards-compatible change. dnl Set to c:r+1:a if the interface is unchanged. -AC_SUBST([libeantic_version_info], [3:0:0]) -AC_SUBST([libeanticxx_version_info], [3:0:0]) +AC_SUBST([libeantic_version_info], [3:1:0]) +AC_SUBST([libeanticxx_version_info], [3:1:0]) AM_SILENT_RULES([yes]) # non-verbose make; override with ./configure --disable-silent-rules diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/e-antic-2.0.0/libeantic/e-antic/local.h.in new/e-antic-2.0.1/libeantic/e-antic/local.h.in --- old/e-antic-2.0.0/libeantic/e-antic/local.h.in 2023-12-14 16:21:12.382258935 +0100 +++ new/e-antic-2.0.1/libeantic/e-antic/local.h.in 2024-01-09 22:13:08.431094888 +0100 @@ -17,8 +17,8 @@ #define E_ANTIC_VERSION_MAJOR 2 #define E_ANTIC_VERSION_MINOR 0 -#define E_ANTIC_VERSION_PATCHLEVEL 0 -#define E_ANTIC_VERSION "2.0.0" +#define E_ANTIC_VERSION_PATCHLEVEL 1 +#define E_ANTIC_VERSION "2.0.1" #define E_ANTIC_RELEASE (E_ANTIC_VERSION_MAJOR * 10000 + \ E_ANTIC_VERSION_MINOR * 100 + \ E_ANTIC_VERSION_PATCHLEVEL) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/e-antic-2.0.0/libeantic/test/renf_elem/t-get_d.cpp new/e-antic-2.0.1/libeantic/test/renf_elem/t-get_d.cpp --- old/e-antic-2.0.0/libeantic/test/renf_elem/t-get_d.cpp 2023-12-13 04:13:57.580948591 +0100 +++ new/e-antic-2.0.1/libeantic/test/renf_elem/t-get_d.cpp 2023-12-19 04:50:13.372610313 +0100 @@ -111,24 +111,24 @@ if (renf_elem_cmp_fmpq(a, dmax, nf) < 0) { - REQUIRE(isinf(floor)); + REQUIRE(std::isinf(floor)); REQUIRE(floor < 0); } else { - REQUIRE((!isinf(floor) || floor > 0)); + REQUIRE((!std::isinf(floor) || floor > 0)); } d_get_fmpq(DBL_MAX, dmax); if (renf_elem_cmp_fmpq(a, dmax, nf) > 0) { - REQUIRE(isinf(ceil)); + REQUIRE(std::isinf(ceil)); REQUIRE(ceil > 0); } else { - REQUIRE((!isinf(ceil) || ceil < 0)); + REQUIRE((!std::isinf(ceil) || ceil < 0)); } fmpq_clear(dmax); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/e-antic-2.0.0/pyeantic/configure new/e-antic-2.0.1/pyeantic/configure --- old/e-antic-2.0.0/pyeantic/configure 2023-12-14 19:43:36.012321072 +0100 +++ new/e-antic-2.0.1/pyeantic/configure 2024-01-09 22:16:24.870561123 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for pyeantic 2.0.0. +# Generated by GNU Autoconf 2.71 for pyeantic 2.0.1. # # Report bugs to <[email protected]>. # @@ -621,8 +621,8 @@ # Identity of this package. PACKAGE_NAME='pyeantic' PACKAGE_TARNAME='pyeantic' -PACKAGE_VERSION='2.0.0' -PACKAGE_STRING='pyeantic 2.0.0' +PACKAGE_VERSION='2.0.1' +PACKAGE_STRING='pyeantic 2.0.1' PACKAGE_BUGREPORT='[email protected]' PACKAGE_URL='' @@ -1388,7 +1388,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 pyeantic 2.0.0 to adapt to many kinds of systems. +\`configure' configures pyeantic 2.0.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1459,7 +1459,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of pyeantic 2.0.0:";; + short | recursive ) echo "Configuration of pyeantic 2.0.1:";; esac cat <<\_ACEOF @@ -1586,7 +1586,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -pyeantic configure 2.0.0 +pyeantic configure 2.0.1 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -1804,7 +1804,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by pyeantic $as_me 2.0.0, which was +It was created by pyeantic $as_me 2.0.1, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3075,7 +3075,7 @@ # Define the identity of the package. PACKAGE='pyeantic' - VERSION='2.0.0' + VERSION='2.0.1' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -14239,7 +14239,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by pyeantic $as_me 2.0.0, which was +This file was extended by pyeantic $as_me 2.0.1, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -14298,7 +14298,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -pyeantic config.status 2.0.0 +pyeantic config.status 2.0.1 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/e-antic-2.0.0/pyeantic/configure.ac new/e-antic-2.0.1/pyeantic/configure.ac --- old/e-antic-2.0.0/pyeantic/configure.ac 2023-12-14 16:21:12.385592269 +0100 +++ new/e-antic-2.0.1/pyeantic/configure.ac 2024-01-09 22:13:08.434428083 +0100 @@ -2,7 +2,7 @@ dnl We need at least autoconf 2.69 for this configure.ac to work. AC_PREREQ([2.69]) -AC_INIT([pyeantic], [2.0.0], [[email protected]]) +AC_INIT([pyeantic], [2.0.1], [[email protected]]) AC_CONFIG_MACRO_DIR([m4]) AM_INIT_AUTOMAKE([1.14.1 tar-pax foreign]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/e-antic-2.0.0/pyeantic/src/pyeantic/__init__.py new/e-antic-2.0.1/pyeantic/src/pyeantic/__init__.py --- old/e-antic-2.0.0/pyeantic/src/pyeantic/__init__.py 2023-10-17 22:05:17.152028405 +0200 +++ new/e-antic-2.0.1/pyeantic/src/pyeantic/__init__.py 2024-01-09 22:12:13.083463608 +0100 @@ -1,7 +1,7 @@ r""" Python Wrappers for E-ANTIC ->>> import pyeantic +>>> import pyeantic # random output due to deprecation warnings """ ###################################################################### # This file is part of e-antic. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/e-antic-2.0.0/pyeantic/src/pyeantic/cppyy_eantic.py new/e-antic-2.0.1/pyeantic/src/pyeantic/cppyy_eantic.py --- old/e-antic-2.0.0/pyeantic/src/pyeantic/cppyy_eantic.py 2023-10-18 03:32:28.081458522 +0200 +++ new/e-antic-2.0.1/pyeantic/src/pyeantic/cppyy_eantic.py 2024-01-09 22:12:13.083463608 +0100 @@ -3,7 +3,7 @@ EXAMPLES:: - >>> from pyeantic import eantic + >>> from pyeantic import eantic # random output due to deprecation warnings >>> K = eantic.renf("x^2 - 2", "x", "[1.4 +/- 1]") >>> x = eantic.renf_elem(K, "x"); x (x ~ 1.4142136) @@ -105,12 +105,35 @@ proxy.__reduce__ = reduce def unwrap_intrusive_ptr(K): + r""" + Return a reference to a ``renf_class`` that makes sure that keeps itself + alive by holding on to an intrusive pointer to that same ``renf_class``. + + INPUT: + + - ``K`` -- a reference or pointer or intrusive pointer to a ``renf_class`` + + EXAMPLES: + + Without this machinery, the following would be a segfault because ``K`` + just immediately gets garbage collected again:: + + sage: from pyeantic import eantic + sage: K = eantic.renf("x^2 - 2", "x", "1 +/- 1") + sage: K.gen().parent() + NumberField(x^2 - 2, [1.41421356237309504880168872420969807857 +/- 2.22e-39]) + + """ if isinstance(K, eantic.renf_class): K = cppyy.gbl.boost.intrusive_ptr['const eantic::renf_class'](K) - if isinstance(K, cppyy.gbl.boost.intrusive_ptr['const eantic::renf_class']): - K = K.get() - K.__intrusive__ = K - return K + + if not isinstance(K, cppyy.gbl.boost.intrusive_ptr['const eantic::renf_class']): + raise TypeError("argument must be an intrusive_ptr to a renf_class") + + wrapped = K.get() + wrapped.__lifeline = K + + return wrapped def intrusive_ptr_deserialize(intrusive): cppyy.include('e-antic/cereal.hpp') @@ -180,7 +203,8 @@ return eantic.renf_elem_class() K = args[0] - K = unwrap_intrusive_ptr(K) + if isinstance(K, cppyy.gbl.boost.intrusive_ptr['const eantic::renf_class']): + K = unwrap_intrusive_ptr(K) if len(args) == 1: if isinstance(K, eantic.renf_class): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/e-antic-2.0.0/pyeantic/src/pyeantic/real_embedded_number_field.py new/e-antic-2.0.1/pyeantic/src/pyeantic/real_embedded_number_field.py --- old/e-antic-2.0.0/pyeantic/src/pyeantic/real_embedded_number_field.py 2023-10-17 22:05:17.152028405 +0200 +++ new/e-antic-2.0.1/pyeantic/src/pyeantic/real_embedded_number_field.py 2024-01-09 22:12:13.083463608 +0100 @@ -50,7 +50,7 @@ EXAMPLES:: - sage: from pyeantic import RealEmbeddedNumberField + sage: from pyeantic import RealEmbeddedNumberField # random output due to deprecation warnings sage: K = NumberField(x^2 - 2, 'a', embedding=sqrt(AA(2))) sage: K = RealEmbeddedNumberField(K) sage: a = K.gen() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/e-antic-2.0.0/pyeantic/src/pyeantic/sage_conversion.py new/e-antic-2.0.1/pyeantic/src/pyeantic/sage_conversion.py --- old/e-antic-2.0.0/pyeantic/src/pyeantic/sage_conversion.py 2023-10-17 22:05:17.152028405 +0200 +++ new/e-antic-2.0.1/pyeantic/src/pyeantic/sage_conversion.py 2024-01-09 22:12:13.083463608 +0100 @@ -30,7 +30,7 @@ EXAMPLES:: - sage: from pyeantic.sage_conversion import sage_nf_to_eantic + sage: from pyeantic.sage_conversion import sage_nf_to_eantic # random output due to deprecation warnings sage: x = polygen(QQ) sage: K = NumberField(x**3 - 3, 'a', embedding=AA(3)**Rational((1,3))) sage: L = sage_nf_to_eantic(K)
