Merge branch 'c++11' in preparation for version 1.7.0.
authorRichard Kreckel <kreckel@ginac.de>
Tue, 5 Apr 2016 20:51:12 +0000 (22:51 +0200)
committerRichard Kreckel <kreckel@ginac.de>
Tue, 5 Apr 2016 21:40:22 +0000 (23:40 +0200)
1  2 
NEWS
ginac/version.h

diff --cc NEWS
--- 1/NEWS
--- 2/NEWS
+++ b/NEWS
@@@ -1,12 -1,5 +1,45 @@@
  This file records noteworthy changes.
  
++1.7.0 (TDB)
++* Make use of C++11 features:
++  - Use new language features 'auto', 'nullptr', 'constexpr', range-based for
++    loops, the contextual keyword 'override', static 'noexcept' operator, etc.
++  - Add initializer list ctors for container<>, lst and nested initializer
++    lists ctor for class matrix.
++  - Add many rvalue reference overloads for ctors from std containers. (Note
++    that whether they really speed up things depends on whether evaluation
++    leaves the container unchanged or not.)
++  - Rvalue reference overloads for ctors from std containers made it possible
++    to remove the manual 'discardable' hack and std::auto_ptr<T> for good.
++  - New dynallocate<T>(args...) helper functions obsolete manual allocation
++    on the heap and setting the dynallocated status flag.
++  - Got rid of C++98ish algorithm features (bind2nd, etc.) and replaced them
++    with lambdas.
++* Make add::eval(), mul::eval() more careful so they return an evaluated,
++  canonical expression without compromise.
++* Remove 'level' argument of all .eval() methods. This has become possible by
++  ensuring that add::eval() and mul::eval() evaluate their own structure
++  without compromise (this was not guaranteed before). If all ex are evaluated,
++  any object which is an aggregate of such ex will only ever have to
++  evaluate itself, obsoleting the need for recursing.
++* Remove 'level' arguments of all .evalf() and .normal() methods. They were
++  modeled after the .eval() methods.
++* Make relational::rhs() and lhs() nonvirtual.
++* Add support for power::info(info_flags::real).
++* Remove broken info_flags::algebraic.
++* Remove unmaintained support for Cint.
++* Remove unfinished andcode for hash table-based expairseq.
++* Remove deprecated ex::to_rational(lst) and ex::to_polynomial(lst).
++* ginac-excompiler installs in $LIBEXECDIR now, not in $BINDIR.
++* Many minor performance enhancements.
++
 +1.6.7 (29 February 2016)
 +* Fix elusive bug in sqrfree(), normal(), numer(), and denom().
 +
 +1.6.6 (20 December 2015)
 +* Fix elusive bug in add::eval().
 +* Several minor performance enhancements.
 +
  1.6.5 (27 July 2015)
  * Fix pow(+(...),2).expand() where the sum contained roots of expressions.
  * Speed-up pow(+(...),n).expand() where n > 3.
diff --cc ginac/version.h
  #define GINACLIB_MAJOR_VERSION 1
  
  /* Minor version of GiNaC */
--#define GINACLIB_MINOR_VERSION 6
++#define GINACLIB_MINOR_VERSION 7
  
  /* Micro version of GiNaC */
- #define GINACLIB_MICRO_VERSION 7
 -#define GINACLIB_MICRO_VERSION 5
++#define GINACLIB_MICRO_VERSION 0
  
  // GiNaC library version information. It has very little to do with GiNaC
  // version number. In particular, library version is OS dependent. 
@@@ -49,8 -49,8 +49,8 @@@
  // 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. ;-)
--#define GINAC_LT_CURRENT  5
- #define GINAC_LT_REVISION 3
 -#define GINAC_LT_REVISION 1
++#define GINAC_LT_CURRENT  6
++#define GINAC_LT_REVISION 0
  #define GINAC_LT_AGE      0
  
  /*