diff -Nru e-antic-1.2.1+ds/ChangeLog e-antic-1.3.0+ds/ChangeLog --- e-antic-1.2.1+ds/ChangeLog 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/ChangeLog 2022-12-11 16:00:27.000000000 +0000 @@ -4,6 +4,44 @@ .. current developments +v1.3.0 +==================== + +**Added:** + +* Added support for FLINT 2.8 and 2.9 +* Added short and unsigned short operators to C++ interface. + + + +v1.2.3 +==================== + +**Added:** + +* Added automatic update on conda-forge with every release. + +**Fixed:** + +* Fixed soname which was not bumped in the 1.2.2 release. + + + +v1.2.2 +==================== + +**Fixed:** + +* Fixed conda channels used for binder notebooks. +* Fixed compilation errors on recent compilers by upgrading catch2 dependency used for testing. +* Fixed deserialization of renf_class from old Python pickles. (#242 sometimes crashed when called from Python since cppyy had trouble with the exceptions being thrown.) +* Fixed "installation with conda" page in our documentation (#240) +* Added logo to documentation. (#239) +* Fixed serialization with cereal 1.3.1+. +* Fixed compiler warnings about missing prototypes for test functions. + + + v1.2.1 ==================== diff -Nru e-antic-1.2.1+ds/configure.ac e-antic-1.3.0+ds/configure.ac --- e-antic-1.2.1+ds/configure.ac 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/configure.ac 2022-12-11 16:00:27.000000000 +0000 @@ -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], [1.2.1], [vincent.delecroix@math.cnrs.fr]) +AC_INIT([e-antic], [1.3.0], [vincent.delecroix@math.cnrs.fr]) AC_CONFIG_MACRO_DIR([m4]) AM_INIT_AUTOMAKE([1.14.1 subdir-objects tar-pax foreign]) diff -Nru e-antic-1.2.1+ds/debian/changelog e-antic-1.3.0+ds/debian/changelog --- e-antic-1.2.1+ds/debian/changelog 2022-12-03 15:22:40.000000000 +0000 +++ e-antic-1.3.0+ds/debian/changelog 2022-12-11 16:45:43.000000000 +0000 @@ -1,3 +1,16 @@ +e-antic (1.3.0+ds-1) unstable; urgency=medium + + * New upstream minor version. + * Debianization: + - d/control: + - Standards-Version, bump to version 4.6.1 (no change); + - d/libeantic1.symbols, update; + - d/copyright: + - URI url, correct; + - d/s/lintian-overrides, update. + + -- Jerome Benoit Sun, 11 Dec 2022 16:45:43 +0000 + e-antic (1.2.1+ds-2) unstable; urgency=medium * Debianization: diff -Nru e-antic-1.2.1+ds/debian/control e-antic-1.3.0+ds/debian/control --- e-antic-1.2.1+ds/debian/control 2022-02-27 16:39:06.000000000 +0000 +++ e-antic-1.3.0+ds/debian/control 2022-12-11 16:07:55.000000000 +0000 @@ -16,7 +16,7 @@ libbenchmark-dev, libcereal-dev, catch2 -Standards-Version: 4.6.0 +Standards-Version: 4.6.1 Homepage: https://github.com/flatsurf/e-antic/ Vcs-Git: https://salsa.debian.org/math-team/e-antic.git Vcs-Browser: https://salsa.debian.org/math-team/e-antic diff -Nru e-antic-1.2.1+ds/debian/copyright e-antic-1.3.0+ds/debian/copyright --- e-antic-1.2.1+ds/debian/copyright 2022-02-20 18:41:04.000000000 +0000 +++ e-antic-1.3.0+ds/debian/copyright 2022-12-11 16:07:35.000000000 +0000 @@ -1,4 +1,4 @@ -Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0 +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: e-antic Upstream-Contact: Vincent Delecroix Source: https://github.com/flatsurf/e-antic diff -Nru e-antic-1.2.1+ds/debian/libeantic1.symbols e-antic-1.3.0+ds/debian/libeantic1.symbols --- e-antic-1.2.1+ds/debian/libeantic1.symbols 2022-02-20 16:05:28.000000000 +0000 +++ e-antic-1.3.0+ds/debian/libeantic1.symbols 2022-12-11 16:10:00.000000000 +0000 @@ -117,6 +117,7 @@ * Build-Depends-Package: libeantic-dev LIBEANTICXX_1.0.0@LIBEANTICXX_1.0.0 1.1.0 LIBEANTICXX_1.1.0@LIBEANTICXX_1.1.0 1.1.0 + LIBEANTICXX_1.3.0@LIBEANTICXX_1.3.0 1.3.0 _ZN6eantic10renf_class4makeEPK4renfRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@LIBEANTICXX_1.0.0 1.1.0 _ZN6eantic10renf_class4makeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_S8_l@LIBEANTICXX_1.0.0 1.1.0 _ZN6eantic10renf_class4makeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_St8functionIFS6_lEEl@LIBEANTICXX_1.1.0 1.1.0 @@ -145,6 +146,8 @@ _ZN6eantic15renf_elem_classC1ERKNS_10renf_classEj@LIBEANTICXX_1.0.0 1.1.0 _ZN6eantic15renf_elem_classC1ERKNS_10renf_classEl@LIBEANTICXX_1.0.0 1.1.0 _ZN6eantic15renf_elem_classC1ERKNS_10renf_classEm@LIBEANTICXX_1.0.0 1.1.0 + _ZN6eantic15renf_elem_classC1ERKNS_10renf_classEs@LIBEANTICXX_1.3.0 1.3.0 + _ZN6eantic15renf_elem_classC1ERKNS_10renf_classEt@LIBEANTICXX_1.3.0 1.3.0 _ZN6eantic15renf_elem_classC1ERKNS_10renf_classEx@LIBEANTICXX_1.0.0 1.1.0 _ZN6eantic15renf_elem_classC1ERKNS_10renf_classEy@LIBEANTICXX_1.0.0 1.1.0 _ZN6eantic15renf_elem_classC1ERKS0_@LIBEANTICXX_1.0.0 1.1.0 @@ -152,6 +155,8 @@ _ZN6eantic15renf_elem_classC1Ej@LIBEANTICXX_1.0.0 1.1.0 _ZN6eantic15renf_elem_classC1El@LIBEANTICXX_1.0.0 1.1.0 _ZN6eantic15renf_elem_classC1Em@LIBEANTICXX_1.0.0 1.1.0 + _ZN6eantic15renf_elem_classC1Es@LIBEANTICXX_1.3.0 1.3.0 + _ZN6eantic15renf_elem_classC1Et@LIBEANTICXX_1.3.0 1.3.0 _ZN6eantic15renf_elem_classC1Ev@LIBEANTICXX_1.0.0 1.1.0 _ZN6eantic15renf_elem_classC1Ex@LIBEANTICXX_1.0.0 1.1.0 _ZN6eantic15renf_elem_classC1Ey@LIBEANTICXX_1.0.0 1.1.0 @@ -176,6 +181,8 @@ _ZN6eantic15renf_elem_classC2ERKNS_10renf_classEj@LIBEANTICXX_1.0.0 1.1.0 _ZN6eantic15renf_elem_classC2ERKNS_10renf_classEl@LIBEANTICXX_1.0.0 1.1.0 _ZN6eantic15renf_elem_classC2ERKNS_10renf_classEm@LIBEANTICXX_1.0.0 1.1.0 + _ZN6eantic15renf_elem_classC2ERKNS_10renf_classEs@LIBEANTICXX_1.3.0 1.3.0 + _ZN6eantic15renf_elem_classC2ERKNS_10renf_classEt@LIBEANTICXX_1.3.0 1.3.0 _ZN6eantic15renf_elem_classC2ERKNS_10renf_classEx@LIBEANTICXX_1.0.0 1.1.0 _ZN6eantic15renf_elem_classC2ERKNS_10renf_classEy@LIBEANTICXX_1.0.0 1.1.0 _ZN6eantic15renf_elem_classC2ERKS0_@LIBEANTICXX_1.0.0 1.1.0 @@ -183,6 +190,8 @@ _ZN6eantic15renf_elem_classC2Ej@LIBEANTICXX_1.0.0 1.1.0 _ZN6eantic15renf_elem_classC2El@LIBEANTICXX_1.0.0 1.1.0 _ZN6eantic15renf_elem_classC2Em@LIBEANTICXX_1.0.0 1.1.0 + _ZN6eantic15renf_elem_classC2Es@LIBEANTICXX_1.3.0 1.3.0 + _ZN6eantic15renf_elem_classC2Et@LIBEANTICXX_1.3.0 1.3.0 _ZN6eantic15renf_elem_classC2Ev@LIBEANTICXX_1.0.0 1.1.0 _ZN6eantic15renf_elem_classC2Ex@LIBEANTICXX_1.0.0 1.1.0 _ZN6eantic15renf_elem_classC2Ey@LIBEANTICXX_1.0.0 1.1.0 @@ -198,6 +207,8 @@ _ZN6eantic15renf_elem_classaSEj@LIBEANTICXX_1.0.0 1.1.0 _ZN6eantic15renf_elem_classaSEl@LIBEANTICXX_1.0.0 1.1.0 _ZN6eantic15renf_elem_classaSEm@LIBEANTICXX_1.0.0 1.1.0 + _ZN6eantic15renf_elem_classaSEs@LIBEANTICXX_1.3.0 1.3.0 + _ZN6eantic15renf_elem_classaSEt@LIBEANTICXX_1.3.0 1.3.0 _ZN6eantic15renf_elem_classaSEx@LIBEANTICXX_1.0.0 1.1.0 _ZN6eantic15renf_elem_classaSEy@LIBEANTICXX_1.0.0 1.1.0 _ZN6eantic15renf_elem_classdVERK10__gmp_exprIA1_12__mpq_structS3_E@LIBEANTICXX_1.0.0 1.1.0 @@ -207,6 +218,8 @@ _ZN6eantic15renf_elem_classdVEj@LIBEANTICXX_1.0.0 1.1.0 _ZN6eantic15renf_elem_classdVEl@LIBEANTICXX_1.0.0 1.1.0 _ZN6eantic15renf_elem_classdVEm@LIBEANTICXX_1.0.0 1.1.0 + _ZN6eantic15renf_elem_classdVEs@LIBEANTICXX_1.3.0 1.3.0 + _ZN6eantic15renf_elem_classdVEt@LIBEANTICXX_1.3.0 1.3.0 _ZN6eantic15renf_elem_classdVEx@LIBEANTICXX_1.0.0 1.1.0 _ZN6eantic15renf_elem_classdVEy@LIBEANTICXX_1.0.0 1.1.0 _ZN6eantic15renf_elem_classmIERK10__gmp_exprIA1_12__mpq_structS3_E@LIBEANTICXX_1.0.0 1.1.0 @@ -216,6 +229,8 @@ _ZN6eantic15renf_elem_classmIEj@LIBEANTICXX_1.0.0 1.1.0 _ZN6eantic15renf_elem_classmIEl@LIBEANTICXX_1.0.0 1.1.0 _ZN6eantic15renf_elem_classmIEm@LIBEANTICXX_1.0.0 1.1.0 + _ZN6eantic15renf_elem_classmIEs@LIBEANTICXX_1.3.0 1.3.0 + _ZN6eantic15renf_elem_classmIEt@LIBEANTICXX_1.3.0 1.3.0 _ZN6eantic15renf_elem_classmIEx@LIBEANTICXX_1.0.0 1.1.0 _ZN6eantic15renf_elem_classmIEy@LIBEANTICXX_1.0.0 1.1.0 _ZN6eantic15renf_elem_classmLERK10__gmp_exprIA1_12__mpq_structS3_E@LIBEANTICXX_1.0.0 1.1.0 @@ -225,6 +240,8 @@ _ZN6eantic15renf_elem_classmLEj@LIBEANTICXX_1.0.0 1.1.0 _ZN6eantic15renf_elem_classmLEl@LIBEANTICXX_1.0.0 1.1.0 _ZN6eantic15renf_elem_classmLEm@LIBEANTICXX_1.0.0 1.1.0 + _ZN6eantic15renf_elem_classmLEs@LIBEANTICXX_1.3.0 1.3.0 + _ZN6eantic15renf_elem_classmLEt@LIBEANTICXX_1.3.0 1.3.0 _ZN6eantic15renf_elem_classmLEx@LIBEANTICXX_1.0.0 1.1.0 _ZN6eantic15renf_elem_classmLEy@LIBEANTICXX_1.0.0 1.1.0 _ZN6eantic15renf_elem_classpLERK10__gmp_exprIA1_12__mpq_structS3_E@LIBEANTICXX_1.0.0 1.1.0 @@ -234,6 +251,8 @@ _ZN6eantic15renf_elem_classpLEj@LIBEANTICXX_1.0.0 1.1.0 _ZN6eantic15renf_elem_classpLEl@LIBEANTICXX_1.0.0 1.1.0 _ZN6eantic15renf_elem_classpLEm@LIBEANTICXX_1.0.0 1.1.0 + _ZN6eantic15renf_elem_classpLEs@LIBEANTICXX_1.3.0 1.3.0 + _ZN6eantic15renf_elem_classpLEt@LIBEANTICXX_1.3.0 1.3.0 _ZN6eantic15renf_elem_classpLEx@LIBEANTICXX_1.0.0 1.1.0 _ZN6eantic15renf_elem_classpLEy@LIBEANTICXX_1.0.0 1.1.0 _ZN6eantic21intrusive_ptr_add_refEPKNS_10renf_classE@LIBEANTICXX_1.0.0 1.1.0 @@ -250,6 +269,8 @@ _ZN6eanticeqERKNS_15renf_elem_classEj@LIBEANTICXX_1.0.0 1.1.0 _ZN6eanticeqERKNS_15renf_elem_classEl@LIBEANTICXX_1.0.0 1.1.0 _ZN6eanticeqERKNS_15renf_elem_classEm@LIBEANTICXX_1.0.0 1.1.0 + _ZN6eanticeqERKNS_15renf_elem_classEs@LIBEANTICXX_1.3.0 1.3.0 + _ZN6eanticeqERKNS_15renf_elem_classEt@LIBEANTICXX_1.3.0 1.3.0 _ZN6eanticeqERKNS_15renf_elem_classEx@LIBEANTICXX_1.0.0 1.1.0 _ZN6eanticeqERKNS_15renf_elem_classEy@LIBEANTICXX_1.0.0 1.1.0 _ZN6eanticgtERKNS_15renf_elem_classERK10__gmp_exprIA1_12__mpq_structS5_E@LIBEANTICXX_1.0.0 1.1.0 @@ -258,6 +279,8 @@ _ZN6eanticgtERKNS_15renf_elem_classEj@LIBEANTICXX_1.0.0 1.1.0 _ZN6eanticgtERKNS_15renf_elem_classEl@LIBEANTICXX_1.0.0 1.1.0 _ZN6eanticgtERKNS_15renf_elem_classEm@LIBEANTICXX_1.0.0 1.1.0 + _ZN6eanticgtERKNS_15renf_elem_classEs@LIBEANTICXX_1.3.0 1.3.0 + _ZN6eanticgtERKNS_15renf_elem_classEt@LIBEANTICXX_1.3.0 1.3.0 _ZN6eanticgtERKNS_15renf_elem_classEx@LIBEANTICXX_1.0.0 1.1.0 _ZN6eanticgtERKNS_15renf_elem_classEy@LIBEANTICXX_1.0.0 1.1.0 _ZN6eanticlsERSoRKNS_10renf_classE@LIBEANTICXX_1.0.0 1.1.0 @@ -269,6 +292,8 @@ _ZN6eanticltERKNS_15renf_elem_classEj@LIBEANTICXX_1.0.0 1.1.0 _ZN6eanticltERKNS_15renf_elem_classEl@LIBEANTICXX_1.0.0 1.1.0 _ZN6eanticltERKNS_15renf_elem_classEm@LIBEANTICXX_1.0.0 1.1.0 + _ZN6eanticltERKNS_15renf_elem_classEs@LIBEANTICXX_1.3.0 1.3.0 + _ZN6eanticltERKNS_15renf_elem_classEt@LIBEANTICXX_1.3.0 1.3.0 _ZN6eanticltERKNS_15renf_elem_classEx@LIBEANTICXX_1.0.0 1.1.0 _ZN6eanticltERKNS_15renf_elem_classEy@LIBEANTICXX_1.0.0 1.1.0 _ZN6eanticrsERSiRNS_15renf_elem_classE@LIBEANTICXX_1.0.0 1.1.0 diff -Nru e-antic-1.2.1+ds/debian/source/lintian-overrides e-antic-1.3.0+ds/debian/source/lintian-overrides --- e-antic-1.2.1+ds/debian/source/lintian-overrides 2021-02-21 13:46:24.000000000 +0000 +++ e-antic-1.3.0+ds/debian/source/lintian-overrides 2022-12-11 16:08:34.000000000 +0000 @@ -1,2 +1,2 @@ # upstream source fetch from https://github.com/ -debian-watch-does-not-check-gpg-signature +debian-watch-does-not-check-openpgp-signature diff -Nru e-antic-1.2.1+ds/doc/configure.ac e-antic-1.3.0+ds/doc/configure.ac --- e-antic-1.2.1+ds/doc/configure.ac 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/doc/configure.ac 2022-12-11 16:00:27.000000000 +0000 @@ -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], [1.2.1], [vincent.delecroix@math.cnrs.fr]) +AC_INIT([e-antic-doc], [1.3.0], [vincent.delecroix@math.cnrs.fr]) AC_CONFIG_AUX_DIR([.]) AM_INIT_AUTOMAKE([1.14.1 subdir-objects tar-pax foreign]) diff -Nru e-antic-1.2.1+ds/doc/manual/libeantic/extra.css e-antic-1.3.0+ds/doc/manual/libeantic/extra.css --- e-antic-1.2.1+ds/doc/manual/libeantic/extra.css 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/doc/manual/libeantic/extra.css 2022-12-11 16:00:27.000000000 +0000 @@ -58,3 +58,7 @@ li.toctree-l3:first-child { display: none; } + +.wy-nav-side .wy-side-nav-search .logo { + width: 8em; +} diff -Nru e-antic-1.2.1+ds/doc/manual/libeantic/install_in_conda.md e-antic-1.3.0+ds/doc/manual/libeantic/install_in_conda.md --- e-antic-1.2.1+ds/doc/manual/libeantic/install_in_conda.md 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/doc/manual/libeantic/install_in_conda.md 2022-12-11 16:00:27.000000000 +0000 @@ -1,27 +1,7 @@ # Install e-antic in Conda You can install this package with conda. Download and install -[Miniconda](https://conda.io/miniconda.html), then run +[mambaforge](https://github.com/conda-forge/miniforge#install), and then create an environment with [conda-forge's distribution of e-antic](https://github.com/conda-forge/e-antic-feedstock) installed - conda config --add channels conda-forge - conda config --set channel_priority strict - conda create -n eantic libeantic pyeantic - conda activate eantic - -These stable builds are maintained by [conda-forge](https://github.com/conda-forge/e-antic-feedstock): - -| Name | Downloads | Version | Platforms | -| --- | --- | --- | --- | -| [![Build](https://img.shields.io/badge/recipe-e--antic-green.svg)](https://anaconda.org/conda-forge/libeantic) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/libeantic.svg)](https://anaconda.org/conda-forge/libeantic) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/libeantic.svg)](https://anaconda.org/conda-forge/libeantic) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/libeantic.svg)](https://anaconda.org/conda-forge/libeantic) | -| [![Build](https://img.shields.io/badge/recipe-pyeantic-green.svg)](https://anaconda.org/conda-forge/pyeantic) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/pyeantic.svg)](https://anaconda.org/conda-forge/pyeantic) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/pyeantic.svg)](https://anaconda.org/conda-forge/pyeantic) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/pyeantic.svg)](https://anaconda.org/conda-forge/pyeantic) | - -You can also install the latest (experimental) versions by replacing the third line above with - - conda create -n eantic -c flatsurf libeantic pyeantic - -The latest available experimental versions are: - -| Name | Downloads | Version | Platforms | -| --- | --- | --- | --- | -| [![Build](https://img.shields.io/badge/recipe-e--antic-green.svg)](https://anaconda.org/flatsurf/libeantic) | [![Conda Downloads](https://img.shields.io/conda/dn/flatsurf/libeantic.svg)](https://anaconda.org/flatsurf/libeantic) | [![Conda Version](https://img.shields.io/conda/vn/flatsurf/libeantic.svg)](https://anaconda.org/flatsurf/libeantic) | [![Conda Platforms](https://img.shields.io/conda/pn/flatsurf/libeantic.svg)](https://anaconda.org/flatsurf/libeantic) | -| [![Build](https://img.shields.io/badge/recipe-pyeantic-green.svg)](https://anaconda.org/flatsurf/pyeantic) | [![Conda Downloads](https://img.shields.io/conda/dn/flatsurf/pyeantic.svg)](https://anaconda.org/flatsurf/pyeantic) | [![Conda Version](https://img.shields.io/conda/vn/flatsurf/pyeantic.svg)](https://anaconda.org/flatsurf/pyeantic) | [![Conda Platforms](https://img.shields.io/conda/pn/flatsurf/pyeantic.svg)](https://anaconda.org/flatsurf/pyeantic) | + mamba create -n eantic libeantic pyeantic + mamba activate eantic diff -Nru e-antic-1.2.1+ds/doc/manual/libeantic/mkdocs.yml.in e-antic-1.3.0+ds/doc/manual/libeantic/mkdocs.yml.in --- e-antic-1.2.1+ds/doc/manual/libeantic/mkdocs.yml.in 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/doc/manual/libeantic/mkdocs.yml.in 2022-12-11 16:00:27.000000000 +0000 @@ -5,6 +5,7 @@ theme: name: readthedocs navigation_depth: 2 + logo: https://github.com/flatsurf/e-antic/raw/master/logo.svg?sanitize=true extra_css: - extra.css extra_javascript: diff -Nru e-antic-1.2.1+ds/doc/manual/pyeantic/conf.py e-antic-1.3.0+ds/doc/manual/pyeantic/conf.py --- e-antic-1.2.1+ds/doc/manual/pyeantic/conf.py 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/doc/manual/pyeantic/conf.py 2022-12-11 16:00:27.000000000 +0000 @@ -18,7 +18,7 @@ author = 'the e-antic authors' # The full version, including alpha/beta/rc tags -release = '1.2.1' +release = '1.3.0' # -- General configuration --------------------------------------------------- @@ -49,10 +49,19 @@ # html_theme = 'sphinx_rtd_theme' +html_logo = 'https://github.com/flatsurf/e-antic/raw/master/logo.svg?sanitize=true' + +html_theme_options = { + 'logo_only': True, + 'display_version': False, +} + # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = [] +html_static_path = ['_static'] + +html_css_files = ['extra.css'] intersphinx_mapping = { 'libeantic': ('/', ('../../libeantic/inventory/objects.inv')), diff -Nru e-antic-1.2.1+ds/doc/manual/pyeantic/_static/extra.css e-antic-1.3.0+ds/doc/manual/pyeantic/_static/extra.css --- e-antic-1.2.1+ds/doc/manual/pyeantic/_static/extra.css 1970-01-01 00:00:00.000000000 +0000 +++ e-antic-1.3.0+ds/doc/manual/pyeantic/_static/extra.css 2022-12-11 16:00:27.000000000 +0000 @@ -0,0 +1,4 @@ +.wy-nav-side .wy-side-nav-search .logo { + width: 8em; +} + diff -Nru e-antic-1.2.1+ds/libeantic/configure.ac e-antic-1.3.0+ds/libeantic/configure.ac --- e-antic-1.2.1+ds/libeantic/configure.ac 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/libeantic/configure.ac 2022-12-11 16:00:27.000000000 +0000 @@ -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], [1.2.1], [vincent.delecroix@math.cnrs.fr]) +AC_INIT([libeantic], [1.3.0], [vincent.delecroix@math.cnrs.fr]) 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], [1:5:0]) -AC_SUBST([libeanticxx_version_info], [1:5:0]) +AC_SUBST([libeantic_version_info], [2:0:1]) +AC_SUBST([libeanticxx_version_info], [2:0:1]) AM_SILENT_RULES([yes]) # non-verbose make; override with ./configure --disable-silent-rules diff -Nru e-antic-1.2.1+ds/libeantic/e-antic/cereal.hpp e-antic-1.3.0+ds/libeantic/e-antic/cereal.hpp --- e-antic-1.2.1+ds/libeantic/e-antic/cereal.hpp 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/libeantic/e-antic/cereal.hpp 2022-12-11 16:00:27.000000000 +0000 @@ -52,20 +52,47 @@ } } +namespace { + template -void load(Archive & archive, boost::intrusive_ptr & self) +uint32_t getId(Archive& archive, ...) { uint32_t id; - try { - archive(cereal::make_nvp("id", id)); - } - catch(const cereal::Exception&) + archive(id); + + return id; +} + +template ().getNodeName())> +uint32_t getId(Archive& archive, int) +{ + uint32_t id; + + // Pre-1.0.0 (unreleased) versions of serialization used cereal's builtin + // versioning. We do not use that anymore, so we have to strip it away. + if (archive.getNodeName() == std::string{"cereal_class_version"}) + archive.finishNode(); + + // Pre-1.0.0 (unreleased) version of serialization called the shared + // pointer "shared" instead of "id" so we accept both here. + if (std::string(archive.getNodeName()) == std::string{"shared"}) { - // If this object has been serialized with e-antic <1.0.0, the field is - // called "shared" instead. archive(cereal::make_nvp("shared", id)); + } else + { + archive(cereal::make_nvp("id", id)); } + return id; +} + +} + +template +void load(Archive & archive, boost::intrusive_ptr & self) +{ + const uint32_t id = getId(archive, 0 /* ignored, needed to prefer the specialized getId over the generic one */); + if ( id & static_cast(cereal::detail::msb_32bit) ) { std::string name, emb, pol; diff -Nru e-antic-1.2.1+ds/libeantic/e-antic/local.h.in e-antic-1.3.0+ds/libeantic/e-antic/local.h.in --- e-antic-1.2.1+ds/libeantic/e-antic/local.h.in 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/libeantic/e-antic/local.h.in 2022-12-11 16:00:27.000000000 +0000 @@ -16,9 +16,9 @@ /* e-antic version number */ #define E_ANTIC_VERSION_MAJOR 1 -#define E_ANTIC_VERSION_MINOR 2 -#define E_ANTIC_VERSION_PATCHLEVEL 1 -#define E_ANTIC_VERSION "1.2.1" +#define E_ANTIC_VERSION_MINOR 3 +#define E_ANTIC_VERSION_PATCHLEVEL 0 +#define E_ANTIC_VERSION "1.3.0" #define E_ANTIC_RELEASE (E_ANTIC_VERSION_MAJOR * 10000 + \ E_ANTIC_VERSION_MINOR * 100 + \ E_ANTIC_VERSION_PATCHLEVEL) diff -Nru e-antic-1.2.1+ds/libeantic/e-antic/renf_elem_class.hpp e-antic-1.3.0+ds/libeantic/e-antic/renf_elem_class.hpp --- e-antic-1.2.1+ds/libeantic/e-antic/renf_elem_class.hpp 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/libeantic/e-antic/renf_elem_class.hpp 2022-12-11 16:00:27.000000000 +0000 @@ -1,7 +1,7 @@ /* This is a -*- C++ -*- header file. Copyright (C) 2016-2018 Vincent Delecroix - 2019-2021 Julian Rüth + 2019-2022 Julian Rüth This file is part of e-antic @@ -57,6 +57,8 @@ /// // -> (x ~ 1.4142136) /// ``` class LIBEANTIC_API renf_elem_class : boost::ordered_field_operators, + boost::ordered_field_operators, + boost::ordered_field_operators, boost::ordered_field_operators, boost::ordered_field_operators, boost::ordered_field_operators, @@ -76,6 +78,8 @@ /// Create an element in the rationals. /// These are shortcuts equivalent to calling /// `renf_elem_class(*renf_class::make(), value)`. + renf_elem_class(short); + renf_elem_class(unsigned short); renf_elem_class(int); renf_elem_class(unsigned int); renf_elem_class(long); @@ -92,6 +96,8 @@ /// ==* `renf_elem_class(const renf_class&, integer/rational)` *== /// Create a rational element in the field `k`. + renf_elem_class(const renf_class& k, short); + renf_elem_class(const renf_class& k, unsigned short); renf_elem_class(const renf_class& k, int); renf_elem_class(const renf_class& k, unsigned int); renf_elem_class(const renf_class& k, long); @@ -152,6 +158,8 @@ /// a.parent() == *K /// // -> true /// ``` + renf_elem_class & operator=(short); + renf_elem_class & operator=(unsigned short); renf_elem_class & operator=(int); renf_elem_class & operator=(unsigned int); renf_elem_class & operator=(long); @@ -376,6 +384,14 @@ /// Elements in a number field and integers/rationals can be combined with /// the usual arithmetic operators `+`, `-`, `*`, `/` and the corresponding /// inplace operators `+=`, `-=`, `*=`, `/=`. + renf_elem_class & operator+=(short); + renf_elem_class & operator-=(short); + renf_elem_class & operator*=(short); + renf_elem_class & operator/=(short); + renf_elem_class & operator+=(unsigned short); + renf_elem_class & operator-=(unsigned short); + renf_elem_class & operator*=(unsigned short); + renf_elem_class & operator/=(unsigned short); renf_elem_class & operator+=(int); renf_elem_class & operator-=(int); renf_elem_class & operator*=(int); @@ -412,6 +428,12 @@ /// ==* Relational Operators with Integers & Rationals *== /// Elements in a number field and integers/rationals can be compared with /// the usual relational operators `==`, `!=`, `<`, `<=`, `>=`, `>`. + LIBEANTIC_API friend bool operator==(const renf_elem_class&, short); + LIBEANTIC_API friend bool operator<(const renf_elem_class&, short); + LIBEANTIC_API friend bool operator>(const renf_elem_class&, short); + LIBEANTIC_API friend bool operator==(const renf_elem_class&, unsigned short); + LIBEANTIC_API friend bool operator<(const renf_elem_class&, unsigned short); + LIBEANTIC_API friend bool operator>(const renf_elem_class&, unsigned short); LIBEANTIC_API friend bool operator==(const renf_elem_class&, int); LIBEANTIC_API friend bool operator<(const renf_elem_class&, int); LIBEANTIC_API friend bool operator>(const renf_elem_class&, int); diff -Nru e-antic-1.2.1+ds/libeantic/srcxx/libeanticxx.map e-antic-1.3.0+ds/libeantic/srcxx/libeanticxx.map --- e-antic-1.2.1+ds/libeantic/srcxx/libeanticxx.map 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/libeantic/srcxx/libeanticxx.map 2022-12-11 16:00:27.000000000 +0000 @@ -172,3 +172,28 @@ "eantic::renf_class::make(std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&, std::function, std::allocator > (long)>, long)"; }; } LIBEANTICXX_1.0.0; +LIBEANTICXX_1.3.0 { + global: + extern "C++" { + "eantic::renf_elem_class::renf_elem_class(short)"; + "eantic::renf_elem_class::renf_elem_class(eantic::renf_class const&, short)"; + "eantic::renf_elem_class::operator=(short)"; + "eantic::renf_elem_class::operator+=(short)"; + "eantic::renf_elem_class::operator-=(short)"; + "eantic::renf_elem_class::operator*=(short)"; + "eantic::renf_elem_class::operator/=(short)"; + "eantic::operator==(eantic::renf_elem_class const&, short)"; + "eantic::operator<(eantic::renf_elem_class const&, short)"; + "eantic::operator>(eantic::renf_elem_class const&, short)"; + "eantic::renf_elem_class::renf_elem_class(unsigned short)"; + "eantic::renf_elem_class::renf_elem_class(eantic::renf_class const&, unsigned short)"; + "eantic::renf_elem_class::operator=(unsigned short)"; + "eantic::renf_elem_class::operator+=(unsigned short)"; + "eantic::renf_elem_class::operator-=(unsigned short)"; + "eantic::renf_elem_class::operator*=(unsigned short)"; + "eantic::renf_elem_class::operator/=(unsigned short)"; + "eantic::operator==(eantic::renf_elem_class const&, unsigned short)"; + "eantic::operator<(eantic::renf_elem_class const&, unsigned short)"; + "eantic::operator>(eantic::renf_elem_class const&, unsigned short)"; + }; +} LIBEANTICXX_1.1.0; diff -Nru e-antic-1.2.1+ds/libeantic/srcxx/renf_elem_class.cpp e-antic-1.3.0+ds/libeantic/srcxx/renf_elem_class.cpp --- e-antic-1.2.1+ds/libeantic/srcxx/renf_elem_class.cpp 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/libeantic/srcxx/renf_elem_class.cpp 2022-12-11 16:00:27.000000000 +0000 @@ -1,6 +1,6 @@ /* - Copyright (C) 2018 Vincent Delecroix - Copyright (C) 2019-2022 Julian Rüth + Copyright (C) 2018 Vincent Delecroix + 2019-2022 Julian Rüth This file is part of e-antic @@ -282,6 +282,12 @@ *a = *value.a; } +renf_elem_class::renf_elem_class(short value) + : renf_elem_class(renf_class::make(), value) {} + +renf_elem_class::renf_elem_class(unsigned short value) + : renf_elem_class(renf_class::make(), value) {} + renf_elem_class::renf_elem_class(int value) : renf_elem_class(renf_class::make(), value) {} @@ -319,6 +325,12 @@ renf_elem_zero(a, nf->renf_t()); } +renf_elem_class::renf_elem_class(const renf_class& k, short value) + : renf_elem_class(k, static_cast(value)) {} + +renf_elem_class::renf_elem_class(const renf_class& k, unsigned short value) + : renf_elem_class(k, static_cast(value)) {} + renf_elem_class::renf_elem_class(const renf_class& k, int value) : renf_elem_class(k, static_cast(value)) {} @@ -527,6 +539,16 @@ if (nf) renf_elem_clear(a, nf->renf_t()); } +renf_elem_class & renf_elem_class::operator=(short value) +{ + return *this = static_cast(value); +} + +renf_elem_class & renf_elem_class::operator=(unsigned short value) +{ + return *this = static_cast(value); +} + renf_elem_class & renf_elem_class::operator=(int value) { return *this = static_cast(value); @@ -973,6 +995,72 @@ throw std::logic_error("not implemented: cannot compare renf_elem_class from different number fields"); } +renf_elem_class& renf_elem_class::operator+=(short rhs) +{ + return *this += static_cast(rhs); +} + +renf_elem_class& renf_elem_class::operator-=(short rhs) +{ + return *this -= static_cast(rhs); +} + +renf_elem_class& renf_elem_class::operator*=(short rhs) +{ + return *this *= static_cast(rhs); +} + +renf_elem_class& renf_elem_class::operator/=(short rhs) +{ + return *this /= static_cast(rhs); +} + +bool operator==(const renf_elem_class& lhs, short rhs) { + if (rhs == 0) + return lhs.is_zero(); + return lhs == static_cast(rhs); +} + +bool operator<(const renf_elem_class& lhs, short rhs) { + return lhs < static_cast(rhs); +} + +bool operator>(const renf_elem_class& lhs, short rhs) { + return lhs > static_cast(rhs); +} + +renf_elem_class& renf_elem_class::operator+=(unsigned short rhs) +{ + return *this += static_cast(rhs); +} + +renf_elem_class& renf_elem_class::operator-=(unsigned short rhs) +{ + return *this -= static_cast(rhs); +} + +renf_elem_class& renf_elem_class::operator*=(unsigned short rhs) +{ + return *this *= static_cast(rhs); +} + +renf_elem_class& renf_elem_class::operator/=(unsigned short rhs) +{ + return *this /= static_cast(rhs); +} + +bool operator==(const renf_elem_class& lhs, unsigned short rhs) { + return lhs == static_cast(rhs); +} + +bool operator<(const renf_elem_class& lhs, unsigned short rhs) { + return lhs < static_cast(rhs); +} + +bool operator>(const renf_elem_class& lhs, unsigned short rhs) { + return lhs > static_cast(rhs); +} + renf_elem_class& renf_elem_class::operator+=(int rhs) { return *this += static_cast(rhs); diff -Nru e-antic-1.2.1+ds/libeantic/test/fmpq_poly_extra/t-evaluate.c e-antic-1.3.0+ds/libeantic/test/fmpq_poly_extra/t-evaluate.c --- e-antic-1.2.1+ds/libeantic/test/fmpq_poly_extra/t-evaluate.c 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/libeantic/test/fmpq_poly_extra/t-evaluate.c 2022-12-11 16:00:27.000000000 +0000 @@ -11,7 +11,7 @@ #include "../../e-antic/fmpq_poly_extra.h" -int main() +int main(void) { slong iter; diff -Nru e-antic-1.2.1+ds/libeantic/test/fmpz_poly_extra/t-has_real_root.c e-antic-1.3.0+ds/libeantic/test/fmpz_poly_extra/t-has_real_root.c --- e-antic-1.2.1+ds/libeantic/test/fmpz_poly_extra/t-has_real_root.c 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/libeantic/test/fmpz_poly_extra/t-has_real_root.c 2022-12-11 16:00:27.000000000 +0000 @@ -11,7 +11,7 @@ #include "../../e-antic/fmpz_poly_extra.h" -int main() +int main(void) { int iter; FLINT_TEST_INIT(state); diff -Nru e-antic-1.2.1+ds/libeantic/test/fmpz_poly_extra/t-num_real_roots.c e-antic-1.3.0+ds/libeantic/test/fmpz_poly_extra/t-num_real_roots.c --- e-antic-1.2.1+ds/libeantic/test/fmpz_poly_extra/t-num_real_roots.c 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/libeantic/test/fmpz_poly_extra/t-num_real_roots.c 2022-12-11 16:00:27.000000000 +0000 @@ -13,7 +13,7 @@ #include "../../e-antic/fmpz_poly_extra.h" -int main() +int main(void) { int iter; diff -Nru e-antic-1.2.1+ds/libeantic/test/fmpz_poly_extra/t-num_real_roots_upper_bound.c e-antic-1.3.0+ds/libeantic/test/fmpz_poly_extra/t-num_real_roots_upper_bound.c --- e-antic-1.2.1+ds/libeantic/test/fmpz_poly_extra/t-num_real_roots_upper_bound.c 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/libeantic/test/fmpz_poly_extra/t-num_real_roots_upper_bound.c 2022-12-11 16:00:27.000000000 +0000 @@ -13,7 +13,7 @@ #include "../../e-antic/fmpz_poly_extra.h" -int main() +int main(void) { int iter; FLINT_TEST_INIT(state); diff -Nru e-antic-1.2.1+ds/libeantic/test/fmpz_poly_extra/t-num_real_roots_vca.c e-antic-1.3.0+ds/libeantic/test/fmpz_poly_extra/t-num_real_roots_vca.c --- e-antic-1.2.1+ds/libeantic/test/fmpz_poly_extra/t-num_real_roots_vca.c 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/libeantic/test/fmpz_poly_extra/t-num_real_roots_vca.c 2022-12-11 16:00:27.000000000 +0000 @@ -14,7 +14,7 @@ #include "../../e-antic/fmpz_poly_extra.h" -int main() +int main(void) { int iter; diff -Nru e-antic-1.2.1+ds/libeantic/test/fmpz_poly_extra/t-positive_root_upper_bound_2exp.c e-antic-1.3.0+ds/libeantic/test/fmpz_poly_extra/t-positive_root_upper_bound_2exp.c --- e-antic-1.2.1+ds/libeantic/test/fmpz_poly_extra/t-positive_root_upper_bound_2exp.c 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/libeantic/test/fmpz_poly_extra/t-positive_root_upper_bound_2exp.c 2022-12-11 16:00:27.000000000 +0000 @@ -11,7 +11,7 @@ #include "../../e-antic/fmpz_poly_extra.h" -int main() +int main(void) { int iter; FLINT_TEST_INIT(state); diff -Nru e-antic-1.2.1+ds/libeantic/test/fmpz_poly_extra/t-scale_0_1_fmpq.c e-antic-1.3.0+ds/libeantic/test/fmpz_poly_extra/t-scale_0_1_fmpq.c --- e-antic-1.2.1+ds/libeantic/test/fmpz_poly_extra/t-scale_0_1_fmpq.c 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/libeantic/test/fmpz_poly_extra/t-scale_0_1_fmpq.c 2022-12-11 16:00:27.000000000 +0000 @@ -13,7 +13,7 @@ #include "../../e-antic/fmpz_poly_extra.h" -int main() +int main(void) { int iter; FLINT_TEST_INIT(state); diff -Nru e-antic-1.2.1+ds/libeantic/test/fmpz_poly_extra/t-squarefree_part.c e-antic-1.3.0+ds/libeantic/test/fmpz_poly_extra/t-squarefree_part.c --- e-antic-1.2.1+ds/libeantic/test/fmpz_poly_extra/t-squarefree_part.c 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/libeantic/test/fmpz_poly_extra/t-squarefree_part.c 2022-12-11 16:00:27.000000000 +0000 @@ -11,7 +11,7 @@ #include "../../e-antic/fmpz_poly_extra.h" -int main() +int main(void) { int iter; FLINT_TEST_INIT(state); diff -Nru e-antic-1.2.1+ds/libeantic/test/renf/t-init.c e-antic-1.3.0+ds/libeantic/test/renf/t-init.c --- e-antic-1.2.1+ds/libeantic/test/renf/t-init.c 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/libeantic/test/renf/t-init.c 2022-12-11 16:00:27.000000000 +0000 @@ -86,7 +86,7 @@ arb_clear(emb); } -int main() +int main(void) { fmpq_poly_t p; diff -Nru e-antic-1.2.1+ds/libeantic/test/renf/t-init_nth_root_fmpq.c e-antic-1.3.0+ds/libeantic/test/renf/t-init_nth_root_fmpq.c --- e-antic-1.2.1+ds/libeantic/test/renf/t-init_nth_root_fmpq.c 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/libeantic/test/renf/t-init_nth_root_fmpq.c 2022-12-11 16:00:27.000000000 +0000 @@ -13,7 +13,7 @@ #include "../../e-antic/renf_elem.h" #include "../../e-antic/fmpz_poly_extra.h" -int main() +int main(void) { int i; diff -Nru e-antic-1.2.1+ds/libeantic/test/renf/t-randtest.c e-antic-1.3.0+ds/libeantic/test/renf/t-randtest.c --- e-antic-1.2.1+ds/libeantic/test/renf/t-randtest.c 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/libeantic/test/renf/t-randtest.c 2022-12-11 16:00:27.000000000 +0000 @@ -12,7 +12,7 @@ #include "../../e-antic/renf.h" #include "../../e-antic/fmpz_poly_extra.h" -int main() +int main(void) { int iter; FLINT_TEST_INIT(state); diff -Nru e-antic-1.2.1+ds/libeantic/test/renf/t-real_embeddings.c e-antic-1.3.0+ds/libeantic/test/renf/t-real_embeddings.c --- e-antic-1.2.1+ds/libeantic/test/renf/t-real_embeddings.c 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/libeantic/test/renf/t-real_embeddings.c 2022-12-11 16:00:27.000000000 +0000 @@ -14,7 +14,7 @@ #define MAX_DEGREE 20 -int main() +int main(void) { int iter; FLINT_TEST_INIT(state); diff -Nru e-antic-1.2.1+ds/libeantic/test/renf_elem/t-ceil.c e-antic-1.3.0+ds/libeantic/test/renf_elem/t-ceil.c --- e-antic-1.2.1+ds/libeantic/test/renf_elem/t-ceil.c 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/libeantic/test/renf_elem/t-ceil.c 2022-12-11 16:00:27.000000000 +0000 @@ -172,7 +172,7 @@ fmpq_poly_clear(p); } -int main() +int main(void) { int iter; FLINT_TEST_INIT(state); diff -Nru e-antic-1.2.1+ds/libeantic/test/renf_elem/t-cmp.c e-antic-1.3.0+ds/libeantic/test/renf_elem/t-cmp.c --- e-antic-1.2.1+ds/libeantic/test/renf_elem/t-cmp.c 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/libeantic/test/renf_elem/t-cmp.c 2022-12-11 16:00:27.000000000 +0000 @@ -243,7 +243,7 @@ TEST_CMP_CLEANUP } -int main() +int main(void) { int iter; FLINT_TEST_INIT(state); diff -Nru e-antic-1.2.1+ds/libeantic/test/renf_elem/t-cmp_fmpq.c e-antic-1.3.0+ds/libeantic/test/renf_elem/t-cmp_fmpq.c --- e-antic-1.2.1+ds/libeantic/test/renf_elem/t-cmp_fmpq.c 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/libeantic/test/renf_elem/t-cmp_fmpq.c 2022-12-11 16:00:27.000000000 +0000 @@ -17,7 +17,7 @@ return 1; } -int main() +int main(void) { int iter; FLINT_TEST_INIT(state); diff -Nru e-antic-1.2.1+ds/libeantic/test/renf_elem/t-equal_fmpq.c e-antic-1.3.0+ds/libeantic/test/renf_elem/t-equal_fmpq.c --- e-antic-1.2.1+ds/libeantic/test/renf_elem/t-equal_fmpq.c 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/libeantic/test/renf_elem/t-equal_fmpq.c 2022-12-11 16:00:27.000000000 +0000 @@ -11,7 +11,7 @@ #include "../../e-antic/renf_elem.h" -int main() +int main(void) { renf_t nf; fmpq_t d; diff -Nru e-antic-1.2.1+ds/libeantic/test/renf_elem/t-floor.c e-antic-1.3.0+ds/libeantic/test/renf_elem/t-floor.c --- e-antic-1.2.1+ds/libeantic/test/renf_elem/t-floor.c 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/libeantic/test/renf_elem/t-floor.c 2022-12-11 16:00:27.000000000 +0000 @@ -216,7 +216,7 @@ TEST_FLOOR_CLEANUP } -int main() +int main(void) { int iter; FLINT_TEST_INIT(state); diff -Nru e-antic-1.2.1+ds/libeantic/test/renf_elem/t-get_cfrac.c e-antic-1.3.0+ds/libeantic/test/renf_elem/t-get_cfrac.c --- e-antic-1.2.1+ds/libeantic/test/renf_elem/t-get_cfrac.c 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/libeantic/test/renf_elem/t-get_cfrac.c 2022-12-11 16:00:27.000000000 +0000 @@ -89,7 +89,7 @@ } } -int main() +int main(void) { renf_t nf; fmpq_t d; diff -Nru e-antic-1.2.1+ds/libeantic/test/renf_elem/t-is_rational.c e-antic-1.3.0+ds/libeantic/test/renf_elem/t-is_rational.c --- e-antic-1.2.1+ds/libeantic/test/renf_elem/t-is_rational.c 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/libeantic/test/renf_elem/t-is_rational.c 2022-12-11 16:00:27.000000000 +0000 @@ -12,7 +12,7 @@ #include "../../e-antic/renf_elem.h" -int main() +int main(void) { int iter; FLINT_TEST_INIT(state); diff -Nru e-antic-1.2.1+ds/libeantic/test/renf_elem/t-pow.c e-antic-1.3.0+ds/libeantic/test/renf_elem/t-pow.c --- e-antic-1.2.1+ds/libeantic/test/renf_elem/t-pow.c 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/libeantic/test/renf_elem/t-pow.c 2022-12-11 16:00:27.000000000 +0000 @@ -13,7 +13,7 @@ #include "../../e-antic/renf_elem.h" -int main() +int main(void) { int iter; FLINT_TEST_INIT(state); diff -Nru e-antic-1.2.1+ds/libeantic/test/renfxx/t-assignment.cpp e-antic-1.3.0+ds/libeantic/test/renfxx/t-assignment.cpp --- e-antic-1.2.1+ds/libeantic/test/renfxx/t-assignment.cpp 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/libeantic/test/renfxx/t-assignment.cpp 2022-12-11 16:00:27.000000000 +0000 @@ -1,6 +1,6 @@ /* Copyright (C) 2017 Vincent Delecroix - 2020-2021 Julian Rüth + 2020-2022 Julian Rüth This file is part of e-antic @@ -20,7 +20,7 @@ using namespace eantic; -TEMPLATE_TEST_CASE("Assign renf_elem_class from integers", "[renf_elem_class]", int, unsigned int, long, unsigned long, long long, unsigned long long) +TEMPLATE_TEST_CASE("Assign renf_elem_class from integers", "[renf_elem_class]", short, unsigned short, int, unsigned int, long, unsigned long, long long, unsigned long long) { using T = TestType; diff -Nru e-antic-1.2.1+ds/libeantic/test/renfxx/t-binop.cpp e-antic-1.3.0+ds/libeantic/test/renfxx/t-binop.cpp --- e-antic-1.2.1+ds/libeantic/test/renfxx/t-binop.cpp 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/libeantic/test/renfxx/t-binop.cpp 2022-12-11 16:00:27.000000000 +0000 @@ -1,6 +1,6 @@ /* Copyright (C) 2017 Vincent Delecroix - 2020-2021 Julian Rüth + 2020-2022 Julian Rüth This file is part of e-antic @@ -53,6 +53,18 @@ c -= b; REQUIRE(!c); + c += static_cast(1); + REQUIRE(c); + + c -= static_cast(1); + REQUIRE(!c); + + c += static_cast(1u); + REQUIRE(c); + + c -= static_cast(1u); + REQUIRE(!c); + c += 1; REQUIRE(c); @@ -124,6 +136,18 @@ c /= b; REQUIRE(c == 1); + c *= static_cast(2); + REQUIRE(c == 2); + + c /= static_cast(2); + REQUIRE(c == 1); + + c *= static_cast(2u); + REQUIRE(c == 2); + + c /= static_cast(2u); + REQUIRE(c == 1); + c *= 2; REQUIRE(c == 2); diff -Nru e-antic-1.2.1+ds/libeantic/test/renfxx/t-cereal.cpp e-antic-1.3.0+ds/libeantic/test/renfxx/t-cereal.cpp --- e-antic-1.2.1+ds/libeantic/test/renfxx/t-cereal.cpp 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/libeantic/test/renfxx/t-cereal.cpp 2022-12-11 16:00:27.000000000 +0000 @@ -11,6 +11,7 @@ #include #include +#include #include #include "../../e-antic/e-antic.hpp" @@ -22,14 +23,14 @@ using namespace eantic; -template +template T test_serialization(const T& x) { CAPTURE(x); std::stringstream s; { - ::cereal::JSONOutputArchive archive(s); + OutputArchive archive(s); archive(x); } @@ -37,7 +38,9 @@ T y; { - ::cereal::JSONInputArchive archive(s); + using InputArchive = std::conditional_t::value, ::cereal::JSONInputArchive, ::cereal::BinaryInputArchive>; + + InputArchive archive(s); archive(y); } @@ -48,7 +51,7 @@ return y; } -TEST_CASE("Serialize and deserialize elements", "[renf_class][renf_elem_class]") +TEMPLATE_TEST_CASE("Serialize and deserialize elements", "[renf_class][renf_elem_class]", ::cereal::JSONOutputArchive, ::cereal::BinaryOutputArchive) { flint_rand_t& state = GENERATE(rands()); const auto& K = GENERATE_REF(take(128, renf_classs(state))); @@ -57,8 +60,8 @@ CAPTURE(K); - test_serialization(a); - test_serialization(std::vector{a, a, b}); + test_serialization(a); + test_serialization(std::vector{a, a, b}); } TEST_CASE("Deserialize elements which were created with e-antic <1") { diff -Nru e-antic-1.2.1+ds/libeantic/test/renfxx/t-cmp.cpp e-antic-1.3.0+ds/libeantic/test/renfxx/t-cmp.cpp --- e-antic-1.2.1+ds/libeantic/test/renfxx/t-cmp.cpp 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/libeantic/test/renfxx/t-cmp.cpp 2022-12-11 16:00:27.000000000 +0000 @@ -1,6 +1,6 @@ /* Copyright (C) 2018 Vincent Delecroix - 2021 Julian Rüth + 2022 Julian Rüth This file is part of e-antic @@ -86,7 +86,7 @@ } } -TEMPLATE_TEST_CASE("Relational Operators with Integers", "[renf_elem_class]", int, unsigned int, long, unsigned long, long long, unsigned long long) +TEMPLATE_TEST_CASE("Relational Operators with Integers", "[renf_elem_class]", short, unsigned short, int, unsigned int, long, unsigned long, long long, unsigned long long) { using T = TestType; @@ -94,7 +94,10 @@ const auto& K = GENERATE_REF(take(16, renf_classs(state))); auto a = GENERATE_REF(take(8, renf_elem_classs(state, K))); - T b = GENERATE(0, std::numeric_limits::min(), std::numeric_limits::max()); + // Strangley, GENERATE returns in int/unsigned int when T is a + // short/unsigned short here. We cast explicitly to avoid compiler + // warnings. + T b = static_cast(GENERATE(0, std::numeric_limits::min(), std::numeric_limits::max())); check_relop(a, b); } diff -Nru e-antic-1.2.1+ds/libeantic/test/renfxx/t-constructor.cpp e-antic-1.3.0+ds/libeantic/test/renfxx/t-constructor.cpp --- e-antic-1.2.1+ds/libeantic/test/renfxx/t-constructor.cpp 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/libeantic/test/renfxx/t-constructor.cpp 2022-12-11 16:00:27.000000000 +0000 @@ -34,6 +34,10 @@ SECTION("Construct from extreme integers") { + REQUIRE(renf_elem_class(std::numeric_limits::min()) == std::numeric_limits::min()); + REQUIRE(renf_elem_class(std::numeric_limits::max()) == std::numeric_limits::max()); + REQUIRE(renf_elem_class(std::numeric_limits::min()) == std::numeric_limits::min()); + REQUIRE(renf_elem_class(std::numeric_limits::max()) == std::numeric_limits::max()); REQUIRE(renf_elem_class(std::numeric_limits::min()) == std::numeric_limits::min()); REQUIRE(renf_elem_class(std::numeric_limits::max()) == std::numeric_limits::max()); REQUIRE(renf_elem_class(std::numeric_limits::min()) == std::numeric_limits::min()); @@ -93,6 +97,10 @@ SECTION("Construct from extreme integers with a given field") { + REQUIRE(renf_elem_class(*K, std::numeric_limits::min()) == std::numeric_limits::min()); + REQUIRE(renf_elem_class(*K, std::numeric_limits::max()) == std::numeric_limits::max()); + REQUIRE(renf_elem_class(*K, std::numeric_limits::min()) == std::numeric_limits::min()); + REQUIRE(renf_elem_class(*K, std::numeric_limits::max()) == std::numeric_limits::max()); REQUIRE(renf_elem_class(*K, std::numeric_limits::min()) == std::numeric_limits::min()); REQUIRE(renf_elem_class(*K, std::numeric_limits::max()) == std::numeric_limits::max()); REQUIRE(renf_elem_class(*K, std::numeric_limits::min()) == std::numeric_limits::min()); diff -Nru e-antic-1.2.1+ds/pyeantic/configure.ac e-antic-1.3.0+ds/pyeantic/configure.ac --- e-antic-1.2.1+ds/pyeantic/configure.ac 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/pyeantic/configure.ac 2022-12-11 16:00:27.000000000 +0000 @@ -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], [1.2.1], [julian.rueth@fsfe.org]) +AC_INIT([pyeantic], [1.3.0], [julian.rueth@fsfe.org]) AC_CONFIG_MACRO_DIR([m4]) AM_INIT_AUTOMAKE([1.14.1 tar-pax foreign]) diff -Nru e-antic-1.2.1+ds/pyeantic/src/pyeantic/cppyy_eantic.py e-antic-1.3.0+ds/pyeantic/src/pyeantic/cppyy_eantic.py --- e-antic-1.2.1+ds/pyeantic/src/pyeantic/cppyy_eantic.py 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/pyeantic/src/pyeantic/cppyy_eantic.py 2022-12-11 16:00:27.000000000 +0000 @@ -31,12 +31,11 @@ TypeError: ... """ -# -*- coding: utf-8 -*- ###################################################################### # This file is part of e-antic. # # Copyright (C) 2019 Vincent Delecroix -# 2019-2021 Julian Rüth +# 2019-2022 Julian Rüth # # e-antic is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by @@ -128,8 +127,8 @@ def for_eantic(x): r""" - Attempt to convert ``x`` from something that SageMath understand to - something that the constructor of renf_elem_class understands. + Attempt to convert ``x`` from something that SageMath understands to + something that, e.g., the constructor of renf_elem_class understands. Typically, this is the conversion of a SageMath Integer to a mpz_class and such. diff -Nru e-antic-1.2.1+ds/pyeantic/test/bin/python.in e-antic-1.3.0+ds/pyeantic/test/bin/python.in --- e-antic-1.2.1+ds/pyeantic/test/bin/python.in 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/pyeantic/test/bin/python.in 2022-12-11 16:00:27.000000000 +0000 @@ -32,7 +32,11 @@ # Support libasan loading on macOS when our library has been built with -fsanitize=address. if [ ! -z "$EANTIC_DYLD_INSERT_LIBRARIES" ]; then - export DYLD_INSERT_LIBRARIES="$EANTIC_DYLD_INSERT_LIBRARIES:$DYLD_INSERT_LIBRARIES" + if [ -z "$DYLD_INSERT_LIBRARIES" ]; then + export DYLD_INSERT_LIBRARIES="$EANTIC_DYLD_INSERT_LIBRARIES" + else + export DYLD_INSERT_LIBRARIES="$EANTIC_DYLD_INSERT_LIBRARIES:$DYLD_INSERT_LIBRARIES" + fi fi exec python3 $@ diff -Nru e-antic-1.2.1+ds/README.md e-antic-1.3.0+ds/README.md --- e-antic-1.2.1+ds/README.md 2022-05-22 16:51:20.000000000 +0000 +++ e-antic-1.3.0+ds/README.md 2022-12-11 16:00:27.000000000 +0000 @@ -27,7 +27,7 @@ The dependencies are: - - [FLINT 2.6 or 2.7](https://flintlib.org) + - [FLINT 2.6, 2.7, 2.8, or 2.9](https://flintlib.org) - [Arb](https://arblib.org/) - [ANTIC](https://github.com/wbhart/antic) - [Boost](https://www.boost.org/) for the C++ library @@ -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** [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/flatsurf/e-antic/1.2.1?filepath=binder%2FSample.libeantic.ipynb) -* **pyeantic** [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/flatsurf/e-antic/1.2.1?filepath=binder%2FSample.pyeantic.ipynb) +* **libeantic** [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/flatsurf/e-antic/1.3.0?filepath=binder%2FSample.libeantic.ipynb) +* **pyeantic** [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/flatsurf/e-antic/1.3.0?filepath=binder%2FSample.pyeantic.ipynb) ## Build with conda-forge Dependencies