Finalize 1.8.1 release. release_1-8-1
authorRichard Kreckel <kreckel@ginac.de>
Mon, 9 Aug 2021 09:39:31 +0000 (11:39 +0200)
committerRichard Kreckel <kreckel@ginac.de>
Mon, 9 Aug 2021 10:57:04 +0000 (12:57 +0200)
NEWS
ginac/relational.cpp
ginac/version.h
m4/ax_cxx_compile_stdcxx.m4
m4/host-cpu-c-abi.m4

diff --git a/NEWS b/NEWS
index 0a37b6ec0f0db5e0bf96009ab6d80bd2319619e5..59440fb4b8f8caf74181e867acf05a266fd0b5c5 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,14 @@
 This file records noteworthy changes.
 
+1.8.1 (9 August 2021)
+* Add method relational::canonical() and improve conversion of relational to
+  Boolean (it now works on many simple symbolic cases).
+* Improve normalization of negative exponents.
+* Fix indexing multiply referenced objects with ex::operator[].
+* Make functions evalf() their arguments before doing own evalf().
+* Fix bugs in H_evalf() and in evaluation of iterated integrals.
+* Several portability improvements and compiler warning fixes.
+
 1.8.0 (14 October 2020)
 * New routines for the numerical evaluation of iterated integrals like
   elliptic multiple polylogarithms or iterated integrals of modular forms.
index d050b2e65fffc14c143cccd35bfc9ddf62412ac5..599a26352de202f949eddd9e8aac1fdee0cc6289 100644 (file)
@@ -308,7 +308,7 @@ relational::safe_bool relational::make_safe_bool(bool cond) const
  *  unequal or undecidable). */
 relational::operator relational::safe_bool() const
 {
-       const ex df = lh-rh;
+       const ex df = lh-rh;  // like ::canonical() method
        // We treat numeric and symbolic expression differently
        if (is_exactly_a<numeric>(df)) {
                switch (o) {
index 6d955b3d5824bc8ffbfb8e551a099a68e6bb1c89..bf36a4b1357e3d78ed2f5c0d64c720f3bf2e022d 100644 (file)
@@ -30,7 +30,7 @@
 #define GINACLIB_MINOR_VERSION 8
 
 /* Micro version of GiNaC */
-#define GINACLIB_MICRO_VERSION 0
+#define GINACLIB_MICRO_VERSION 1
 
 // GiNaC library version information. It has very little to do with GiNaC
 // version number. In particular, library version is OS dependent. 
 // increasing. This doesn't matter, though: there is not incurred cost
 // for numbers that are omitted, except for shrinking the available space
 // of leftover numbers. Not something we need to worry about yet. ;-)
-// TODO, when setting GINAC_LT_REVISION to 0:
+//
+// On Linux, the SONAME is libginac.so.$(GINAC_LT_CURRENT)-$(GINAC_LT_AGE).
+//
+// TODO, when breaking the SONAME:
 //  * change matrix inverse to use default argument (twice)
-//  * remove interfaces marked as deprecated
-#define GINAC_LT_CURRENT  11
+//  * check for interfaces marked as deprecated
+#define GINAC_LT_CURRENT  12
 #define GINAC_LT_REVISION 0
-#define GINAC_LT_AGE      0
+#define GINAC_LT_AGE      1
 
 /*
  * GiNaC archive file version information.
index 43087b2e6889ec6f8ebd2f8ba77f4a9a716f8ac2..9413da624d2545123501b7788b7ac6d96fd322e8 100644 (file)
@@ -16,7 +16,7 @@
 #   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.
 #   -std=c++11).  If neither is specified, you get whatever works, with
-#   preference for an extended mode.
+#   preference for no added switch, and then for an extended mode.
 #
 #   The third argument, if specified 'mandatory' or if left unspecified,
 #   indicates that baseline support for the specified C++ standard is
 #   Copyright (c) 2015 Moritz Klammler <moritz@klammler.eu>
 #   Copyright (c) 2016, 2018 Krzesimir Nowak <qdlacz@gmail.com>
 #   Copyright (c) 2019 Enji Cooper <yaneurabeya@gmail.com>
+#   Copyright (c) 2020 Jason Merrill <jason@redhat.com>
 #
 #   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 11
+#serial 12
 
 dnl  This macro is based on the code from the AX_CXX_COMPILE_STDCXX_11 macro
 dnl  (serial version number 13).
@@ -62,6 +63,16 @@ AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl
   AC_LANG_PUSH([C++])dnl
   ac_success=no
 
+  m4_if([$2], [], [dnl
+    AC_CACHE_CHECK(whether $CXX supports C++$1 features by default,
+                  ax_cv_cxx_compile_cxx$1,
+      [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
+        [ax_cv_cxx_compile_cxx$1=yes],
+        [ax_cv_cxx_compile_cxx$1=no])])
+    if test x$ax_cv_cxx_compile_cxx$1 = xyes; then
+      ac_success=yes
+    fi])
+
   m4_if([$2], [noext], [], [dnl
   if test x$ac_success = xno; then
     for alternative in ${ax_cxx_compile_alternatives}; do
index af8c05cad72ca6d9c5b1a6d44b3712163fe65ca1..6db2aa25aeaff9ce9bb0722ea747a65df6cbf628 100644 (file)
@@ -1,5 +1,5 @@
-# host-cpu-c-abi.m4 serial 12
-dnl Copyright (C) 2002-2019 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.
@@ -457,7 +457,8 @@ EOF
 
 
 dnl Sets the HOST_CPU_C_ABI_32BIT variable to 'yes' if the C language ABI
-dnl (application binary interface) is a 32-bit one, or to 'no' otherwise.
+dnl (application binary interface) is a 32-bit one, to 'no' if it is a 64-bit
+dnl one, or to 'unknown' if unknown.
 dnl This is a simplified variant of gl_HOST_CPU_C_ABI.
 AC_DEFUN([gl_HOST_CPU_C_ABI_32BIT],
 [
@@ -467,8 +468,10 @@ AC_DEFUN([gl_HOST_CPU_C_ABI_32BIT],
        case "$gl_cv_host_cpu_c_abi" in
          i386 | x86_64-x32 | arm | armhf | arm64-ilp32 | hppa | ia64-ilp32 | mips | mipsn32 | powerpc | riscv*-ilp32* | s390 | sparc)
            gl_cv_host_cpu_c_abi_32bit=yes ;;
-         *)
+         x86_64 | alpha | arm64 | hppa64 | ia64 | mips64 | powerpc64 | powerpc64-elfv2 | riscv*-lp64* | s390x | sparc64 )
            gl_cv_host_cpu_c_abi_32bit=no ;;
+         *)
+           gl_cv_host_cpu_c_abi_32bit=unknown ;;
        esac
      else
        case "$host_cpu" in
@@ -493,6 +496,14 @@ AC_DEFUN([gl_HOST_CPU_C_ABI_32BIT],
            gl_cv_host_cpu_c_abi_32bit=yes
            ;;
 
+         # CPUs that only support a 64-bit ABI.
+changequote(,)dnl
+         alpha | alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] \
+         | mmix )
+changequote([,])dnl
+           gl_cv_host_cpu_c_abi_32bit=no
+           ;;
+
 changequote(,)dnl
          i[34567]86 )
 changequote([,])dnl
@@ -654,7 +665,7 @@ changequote([,])dnl
            ;;
 
          *)
-           gl_cv_host_cpu_c_abi_32bit=no
+           gl_cv_host_cpu_c_abi_32bit=unknown
            ;;
        esac
      fi